162 lines
4.3 KiB
Plaintext
162 lines
4.3 KiB
Plaintext
$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
|