I ask, since it is very difficult to find solid / official documentation on many issues related to x86 programming outside of the main interruptions of the bootloader / real mode / protected mode / write to VGA memory tasks that could be done when you learn about the main OS development.
After reading the Wikipedia articles on x86 architecture, chipsets, I / O controller hubs, and PCI / PCI Express, to get a better understanding, there are obviously two ways to access PCI interfaces: I / O ports and Mapped IO memory.
I (wrong?) Understand that using the x86 I / O ports is considered a legacy method and is not recommended, therefore it is preferable to use the PCI MMIO access method (through the hole in the PCI "memory), but I can not find any manuals / information / source code, which do not use I / O ports, such as 0xCF8 / 0xCFC, for PCI access / sensing, configuration, etc.
Where is the PCI memory slot? How can I access the PCI / probe only through MMIO?
I tried reading PCI Linux code, but I am too unfamiliar with it and the Linux kernel structure to have any correct idea of ββwhat is going on or how to navigate correctly, so anyone who can understand who can clarify how this is happening , I would be very grateful!