Handling interrupt routing cleanly...
Eric W. Biederman
ebiederman at lnxi.com
Sun Feb 1 18:44:01 CET 2004
For random reasons I have been reading through the Open Firmware
specifications. One in particular caught my attention the interrupt
mapping specification. I really liked the basic structure, although
I don't think the details themselves will map cleanly to LinuxBIOS.
The basic structure was:
Each device has it's interrupt.
Each device has an interrupt parent.
If not specified explicitly the interrupt parent is simply up
the device tree but that was not required.
An interrupt parent can have an interrupt mapping table
that maps interrupts maps device#/interrupt pairs to ids
consumed by devices up the interrupt tree.
The interrupt mapping table can have a mask to reduce the
size of the mapping table needed.
It is a very clean structure and it maps well to the LinuxBIOS
device tree. There are few interesting complications that we
need to handle like ACPI mode versus legacy PIC mode but those
details should not be too difficult.
Once that infrastructure is implemented we should be able
to auto generate pci-irq tables, mptables, acpi interrupt tables,
and open firmware tables (Assuming we manage to export it all cleanly
from the LinuxBIOS table).
Stefan how close is the open firmware code that we could
test a port to generic LinuxBIOS. With the LinuxBIOS table
providing this information?
More information about the coreboot