The enhanced configuration mechanism makes use of memory mapped address space range/s to access PCI configuration space.

Put simply, the memory address determines the segment group, bus, device, function and register being accessed. On x86 and x64 platforms, the address of each memory area is determined by the ACPI ‘MCFG’ table. The format of this ACPI table is:

The section of the addressable space is “stolen” so that the accesses from the CPU don’t go to memory but rather reach a given device in the PCI Express fabric. During system initialization, firmware determines the base address for this “stolen” address region and communicates it to the root complex and to the operating system (implementation-specific)


🌱 Back to Garden