Page 1 of 1

How to find PCI APIC routing ?

Posted: Mon Jan 13, 2014 7:54 am
by Anon5710
Hello,

My current APIC implementation requires me to write the correct IRQ to the Interrupt Line registers, for-each pci device.

For most devices i able to find the correct IRQ using the Interrupt Pin registers and Interrupt Route registers. (datasheet information) A de-compile of the DSDT table results in the same information.

But i'm stuck on finding out IRQ information for pci devices that are not listed in the chipset datasheet. When i check my decompiled DSDT table i can't find any reference to devices higher than pci bus 0. So for pci devices on bus 1 or higher, I end up checking all IRQ untill it works. Not exactly optimal ...

Can anyone explain how i can find the correct IRQ for such pci devices ?
Thanks in advance !

(i've attached my decompiled DSDT table, most of it is Gibberish to me. Maybe someone can see more than i could :) )

Re: How to find PCI APIC routing ?

Posted: Mon Jan 13, 2014 10:14 am
by rdos
Short answer: You need a full ACPI with AML support to be able to figure out IRQs for PCI (unless you probe them). In fact, that is about the only important use of ACPI (which is a very complex thing).

Re: How to find PCI APIC routing ?

Posted: Wed Jan 29, 2014 9:29 pm
by palk
Read this: http://people.freebsd.org/~jhb/papers/b ... ticle.html. It's a guide to how FreeBSD handles PCI IRQ Routing.