$NetBSD: Interrupts,v 1.1 2000/12/14 20:30:14 scw Exp $
NetBSD/mvme68k Interrupt Levels
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetBSD/mvme68k interrupts are dependent on the type of device which
generates them. This holds true regardless of what bus the device is
situated on (eg. local, VMEbus or IndustryPack site).
On MVME147, there is a fixed 1:1 mapping of VMEbus interrupt level
to CPU interrupt level. This implies that VMEbus devices must be
set to interrupt at the correct level for that type of device.
On the other boards, each VMEbus interrupt level can be mapped to a
specific CPU interrupt level so the above restriction does not apply.
However, note that the mapping can only be done once. Therefore it is
not possible to have two VMEbus devices which require different CPU
interrupt levels sharing the same VMEbus interrupt level.
The mapping of device type to CPU interrupt levels is as follows:
CPU Irq Device Type
~~~~~~~ ~~~~~~~~~~~
<Highest>
6 - 7 Anything which generates an exceptional condition
which *must* be responded to immediately. For
example, a memory parity/uncorrectable data error.
5 Reserved for the system clock/scheduler. Do not use.
4 Serial port devices (rs232, rs422 etc).
3 Network interfaces.
2 Disk/Block device interfaces.
1 Anything else.
<Lowest>
Interrupt Vectors
~~~~~~~~~~~~~~~~~
NetBSD/mvme68k does not use or generate `auto-vectored' interrupts.
All vectored interrupts up to and including vector 0x7f are reserved
for use by onboard devices.
VMEbus cards and IndustryPack modules are free to use vectors 0x80 -> 0xff.
The onboard devices' vectors are as follows:
MVME147:
0x40 PCC: ACFAIL
0x41 PCC: BERR
0x42 PCC: ABORT Switch
0x43 PCC: ZS Chips shared vector
0x44 PCC: Lance Ethernet
0x45 PCC: WD33C93 SCSI
0x46 PCC: DMA
0x47 PCC: Printer
0x48 PCC: Timer1
0x49 PCC: Timer2
0x4a PCC: Soft Interrupt 1
0x4b PCC: Soft Interrupt 2
0x4c -> 0x4f PCC: <unused>
MVME167/177:
0x50 PCC2: Printer `BUSY'
0x51 PCC2: Printer `Paper Empty'
0x52 PCC2: Printer `Select'
0x53 PCC2: Printer `Fault'
0x54 PCC2: Printer `ACK'
0x55 PCC2: SCSI
0x56 PCC2: Ethernet `Error'
0x57 PCC2: Ethernet
0x58 PCC2: Timer 2
0x59 PCC2: Timer 1
0x5a PCC2: GPIO
0x5b PCC2: <unused>
0x5c PCC2: CD2401 Rx Exception
0x5d PCC2: CD2401 Modem
0x5e PCC2: CD2401 Tx
0x5f PCC2: CD2401 Rx
0x60 -> 0x67 VME2: <unused>
0x68 VME2: Software Interrupt #0
0x69 VME2: Software Interrupt #1
0x6a VME2: Software Interrupt #2
0x6b VME2: Software Interrupt #3
0x6c VME2: Software Interrupt #4
0x6d VME2: Software Interrupt #5
0x6e VME2: Software Interrupt #6
0x6f VME2: Software Interrupt #7
0x70 VME2: GCSR Location Monitor #0
0x71 VME2: GCSR Location Monitor #1
0x72 VME2: GCSR SIG #0
0x73 VME2: GCSR SIG #1
0x74 VME2: GCSR SIG #2
0x75 VME2: GCSR SIG #3
0x76 VME2: DMA Controller
0x77 VME2: VIA
0x78 VME2: Tick Timer #1
0x79 VME2: Tick Timer #2
0x7a VME2: `IRQ1' feature
0x7b VME2: Parity/ECC Error
0x7c VME2: Master Write Post Error
0x7d VME2: SYSFAIL
0x7e VME2: ABORT Switch
0x7f VME2: ACFAIL
MVME162/172:
0x40 IPACK: DMA_a
0x41 IPACK: DMA_b
0x42 IPACK: DMA_c
0x43 IPACK: DMA_d
0x44 IPACK: Programmable Clock
0x50 -> 0x52 MC2: <unused>
0x53 MC2: Timer 4
0x54 MC2: Timer 3
0x55 MC2: SCSI
0x56 MC2: Ethernet `Error'
0x57 MC2: Ethernet
0x58 MC2: Timer 2
0x59 MC2: Timer 1
0x5a MC2: <unused>
0x5b MC2: Parity/ECC Error
0x5c MC2: ZS #1 (vector supplied by ZS chip)
0x5d MC2: ZS #2 (vector supplied by ZS chip)
0x5e MC2: Abort Switch
0x5f MC2: <unused>
0x60 -> 0x67 VME2: <unused>
0x68 VME2: Software Interrupt #0
0x69 VME2: Software Interrupt #1
0x6a VME2: Software Interrupt #2
0x6b VME2: Software Interrupt #3
0x6c VME2: Software Interrupt #4
0x6d VME2: Software Interrupt #5
0x6e VME2: Software Interrupt #6
0x6f VME2: Software Interrupt #7
0x70 VME2: GCSR Location Monitor #0
0x71 VME2: GCSR Location Monitor #1
0x72 VME2: GCSR SIG #0
0x73 VME2: GCSR SIG #1
0x74 VME2: GCSR SIG #2
0x75 VME2: GCSR SIG #3
0x76 VME2: DMA Controller
0x77 VME2: VIA
0x78 VME2: Tick Timer #1
0x79 VME2: Tick Timer #2
0x7a VME2: `IRQ1' feature
0x7b VME2: Parity/ECC Error
0x7c VME2: Master Write Post Error
0x7d VME2: SYSFAIL
0x7e VME2: <unused>
0x7f VME2: ACFAIL