Which ACPI table for IRQ info?
Posted: Mon Nov 26, 2007 11:09 pm
This is one of those questions I hate to ask because I just know I've missed something stupid. I've been banging my head against the ACPI spec, google, the forums and the wiki for a few days, so here we go:
Which ACPI table has the IRQ routing/triggering/polarity info? Between my actual machine and qemu, I've hunted up the MADT, FADT, MCFG, DSDT and OEMB tables. The MADT on my real box has LAPIC structs, an IOAPIC struct and a couple interrupt override structs. I can see in linux's dmesg a whole list of PCI interrupt routings, I just can't tell where the blasted things are being parsed. They look like this:
I also see things like this, a little earlier on:
I've found documentation on the ACPI _PRT object, but I can't figure out how to turn that into information I can make C understand. I'm in the middle of wading through the linux source, but haven't managed to sort my way through all the function calls and macros yet. Thanks in advance for any help.
Which ACPI table has the IRQ routing/triggering/polarity info? Between my actual machine and qemu, I've hunted up the MADT, FADT, MCFG, DSDT and OEMB tables. The MADT on my real box has LAPIC structs, an IOAPIC struct and a couple interrupt override structs. I can see in linux's dmesg a whole list of PCI interrupt routings, I just can't tell where the blasted things are being parsed. They look like this:
Code: Select all
ACPI: PCI Interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 16
Code: Select all
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P9._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12 14 15)