[coreboot] v3 interrupt tables...
Rudolf Marek
r.marek at assembler.cz
Mon Feb 11 11:06:46 CET 2008
> Who understands ACPI interrupt
> specification? I still don't.
It depends what you need. If you care only about APIC interrupt based routing
then it is quite easy.
Just create a _PRT method for all PCI bridges:
Package (0x04) { 0x000BFFFF, 0x00, 0x00, 0x10 }, //slot 0xB
Package (0x04) { 0x000BFFFF, 0x01, 0x00, 0x11 },
Package (0x04) { 0x000BFFFF, 0x02, 0x00, 0x12 },
Package (0x04) { 0x000BFFFF, 0x03, 0x00, 0x13 },
0x0B is slot 0x00 0xffff means all functions 0x00-0x03 is INTA-INTD and
0x10-0x13 are so called GSI (global system interrupt). All your interrupts
routed through first APIC will start with 0x00, second APIC will perhaps start
at IRQ24 etc etc.
If you want to support also PIC based routing and let OS choose, then you need
to put there instead 0f 0x00 on third position PIRQA-PIRQD special devices and
create some method which will either return APIC based table like abobe or PIC
based table if IOAPIC is "disabled". I dont care about DOS and very legacy
systems so I have implemented just APIC based _PRTs.
In other words you dont need PIR if you implement the _PRT with legacy PIRQ entries.
http://www.microsoft.com/whdc/system/CEC/ACPI-MP.mspx
Maybe we can add this link to wiki?
Rudolf
More information about the coreboot
mailing list