Page 1 of 1

Which ACPI table for IRQ info?

Posted: Mon Nov 26, 2007 11:09 pm
by slide_rule
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:

Code: Select all

ACPI: PCI Interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 16
I also see things like this, a little earlier on:

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)
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.

Re: Which ACPI table for IRQ info?

Posted: Mon Nov 26, 2007 11:34 pm
by Brendan
Hi,
slide_rule wrote: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.
You're on the right track then.. :)

The problem is that the information (e.g. the _PRT object) is in AML (or "ACPI Machine Language") which is a portable byte-code language. You need an AML interpretter to execute the AML code to get the information you want. :(


Cheers,

Brendan

Re: Which ACPI table for IRQ info?

Posted: Tue Nov 27, 2007 7:26 am
by slide_rule
Brendan wrote: The problem is that the information (e.g. the _PRT object) is in AML (or "ACPI Machine Language") which is a portable byte-code language. You need an AML interpretter to execute the AML code to get the information you want. :(
Brendan
That's what I was afraid of. :( indeed. Ok, thanks very much. And all that is in the "n bytes of AML code" in the DSDT?

Re: Which ACPI table for IRQ info?

Posted: Tue Nov 27, 2007 8:40 am
by Brendan
Hi,
slide_rule wrote:And all that is in the "n bytes of AML code" in the DSDT?
Yes - all the AML is in the DSDT.

There's also an open source package made by Intel that (AFAIK) includes an AML interpretter, called "ACPI CA" (or ACPI Component Architecture). This is the same stuff Linux uses for it's ACPI support...


Cheers,

Brendan