How do you find the PCI memory slot on x86?

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!

+4

Source: https://habr.com/ru/post/1665062/


All Articles