I've noticed an issue on some physical PC's as well as VMware that the some interrupts do not map 1:1 with the IO-APIC. Legacy IRQs like the keyboard and RTC seem to be fine. For my network card driver I query the PCI space to grab the Interrupt Line but that is no longer enough.
Do I need to be concerned about the Interrupt PIN as well (if set)? Do the ACPI tables contain the data for the GSI to hardware interrupt mappings?
Thanks,
-Ian
PCI interrupts and the IO-APIC
PCI interrupts and the IO-APIC
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: PCI interrupts and the IO-APIC
You will need to worry about the pins, especially on larger systems that might have multiple IOAPICS. Unfortunately the ACPI tables do not contain information on PCI Pin to Global Interrupt line mappings. That's done the AML via the _PRT method. The _PRT method and it's invocation is covered in the ACPI spec, but you will need an AML interpreter (ACPICA being the most practical) to access the ACPI namespace, devices and methods. You should also read up on the _PIC method as can impact interrupt resources methods in the namespace may return.
Reserved for OEM use.