So I'm at the point where I properly parse the acpi irq routing table but I'm still having trouble grasping the concept of pci irq "swizzling" as they call it. So anything that is under a pci bridge isn't working for me right now
Looking at the ACPI DSDT on any PC. What really puzzles me is that you can only see (AFAIK) the main PCI root bridge (bus 0) there is no other buses. I can definitely see the bridges themselves though.
I guess my question is, how can you extract the bus number of a pci express bridge through acpi?
Or am i getting this completely wrong?
acpi dsdt
Re: acpi dsdt
Hi,
I think you can parse the ACPI MCFG table, (PCI Express memory mapped configuration space base address Description Table) and you will get the MMCONFIG address, such as :
PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
Then from the 0xe0000000, you can scan all deivces' PCI configuration spaces.
Regards,
William
I think you can parse the ACPI MCFG table, (PCI Express memory mapped configuration space base address Description Table) and you will get the MMCONFIG address, such as :
PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
Then from the 0xe0000000, you can scan all deivces' PCI configuration spaces.
Regards,
William