IRQ number | meaning | connected to | notes | reset by |
0 | 977 | |||
1 | SWI | 977.1 | write 0 to IrqSoft/FiqSoft | |
2 | UART_DEBUG | FB.2 & FB.3 | ||
4 | TIMER0 | FB.timer0 | 10ms system tick | FB.Timer0Clear |
5 | TIMER1 | FB.timer | FB.Timer1Clear | |
6 | TIMER2 | FB.timer | FB.Timer2Clear | |
7 | WATCHDOG | FB.7 | ||
8 | ETHER10 | FB.8 | ETHER10 chip, IRE register | |
9 | ETHER100 | FB.9 | ||
11 | EXTERN_IRQ | FB.11 | chained from the PIC; never disable this! | |
15 | PCI_PERR1
PCI_PERR PCI_MABORT PCI_TABORT |
FB.pci | general parity error or pci error detected | read FB.pci status |
16 | TIMER0 | 553.0 internal | not used | |
17 | KEYBOARD | 553.1 | ||
18 | PIC_HI | conneted to the high PIC; never disable this! | ||
19 | UART_2 | 553.3 | read UART.ISR | |
20 | UART | 553.4 | read UART_CON.ISR | |
21 | MOUSE | 553.5 | ||
22 | UART_IR | 553.6 | ||
23 | PRINTER | 553.7 | ||
24 | RTC alarm | 553.8 | ||
26 | USER_BUTTON | actually, this is a button press by the user | ||
27 | MODEM | 553.11 | ||
28 | sound transfer finished | 553.12 | ||
30 | IDE | 553 internal | read IDE status | |
31 | POWERLOW | 553.15 |
To hide all of this from the OS, the include/asm/arch/irq.h and include/asm/arch/irqs.h
presents the
OS with a short list of about 25 interrupts. Several of these irq's
have multiple sources,
and multiple meanings. In general, however, an irq deals with all aspects
of a certain
device, and the OS will probably want to turn irq's on or off, all
together.
The irq.h file declares 4 bytes of static data, which keep a ghost of
which irq's are on
and which are off. NOTE: when the OS calls:
get_enabled_irqs()it is going to get back the ghost of what it previously set, which may not reflect the