11.1Sscw$NetBSD: Interrupts,v 1.1 2000/12/14 20:30:14 scw Exp $
21.1Sscw
31.1SscwNetBSD/mvme68k Interrupt Levels
41.1Sscw~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
51.1Sscw
61.1SscwNetBSD/mvme68k interrupts are dependent on the type of device which
71.1Sscwgenerates them. This holds true regardless of what bus the device is
81.1Sscwsituated on (eg. local, VMEbus or IndustryPack site).
91.1Sscw
101.1SscwOn MVME147, there is a fixed 1:1 mapping of VMEbus interrupt level
111.1Sscwto CPU interrupt level. This implies that VMEbus devices must be
121.1Sscwset to interrupt at the correct level for that type of device.
131.1Sscw
141.1SscwOn the other boards, each VMEbus interrupt level can be mapped to a
151.1Sscwspecific CPU interrupt level so the above restriction does not apply.
161.1SscwHowever, note that the mapping can only be done once. Therefore it is
171.1Sscwnot possible to have two VMEbus devices which require different CPU
181.1Sscwinterrupt levels sharing the same VMEbus interrupt level.
191.1Sscw
201.1SscwThe mapping of device type to CPU interrupt levels is as follows:
211.1Sscw
221.1Sscw	CPU Irq		Device Type
231.1Sscw	~~~~~~~		~~~~~~~~~~~
241.1Sscw	<Highest>
251.1Sscw	6 - 7		Anything which generates an exceptional condition
261.1Sscw			which *must* be responded to immediately. For
271.1Sscw			example, a memory parity/uncorrectable data error.
281.1Sscw
291.1Sscw	5		Reserved for the system clock/scheduler. Do not use.
301.1Sscw
311.1Sscw	4		Serial port devices (rs232, rs422 etc).
321.1Sscw
331.1Sscw	3		Network interfaces.
341.1Sscw
351.1Sscw	2		Disk/Block device interfaces.
361.1Sscw
371.1Sscw	1		Anything else.
381.1Sscw	<Lowest>
391.1Sscw
401.1Sscw
411.1Sscw
421.1SscwInterrupt Vectors
431.1Sscw~~~~~~~~~~~~~~~~~
441.1Sscw
451.1SscwNetBSD/mvme68k does not use or generate `auto-vectored' interrupts.
461.1Sscw
471.1SscwAll vectored interrupts up to and including vector 0x7f are reserved
481.1Sscwfor use by onboard devices.
491.1Sscw
501.1SscwVMEbus cards and IndustryPack modules are free to use vectors 0x80 -> 0xff.
511.1Sscw
521.1SscwThe onboard devices' vectors are as follows:
531.1Sscw
541.1SscwMVME147:
551.1Sscw	0x40		PCC: ACFAIL
561.1Sscw	0x41		PCC: BERR
571.1Sscw	0x42		PCC: ABORT Switch
581.1Sscw	0x43		PCC: ZS Chips shared vector
591.1Sscw	0x44		PCC: Lance Ethernet
601.1Sscw	0x45		PCC: WD33C93 SCSI
611.1Sscw	0x46		PCC: DMA
621.1Sscw	0x47		PCC: Printer
631.1Sscw	0x48		PCC: Timer1
641.1Sscw	0x49		PCC: Timer2
651.1Sscw	0x4a		PCC: Soft Interrupt 1
661.1Sscw	0x4b		PCC: Soft Interrupt 2
671.1Sscw	0x4c -> 0x4f	PCC: <unused>
681.1Sscw
691.1Sscw
701.1SscwMVME167/177:
711.1Sscw	0x50		PCC2: Printer `BUSY'
721.1Sscw	0x51		PCC2: Printer `Paper Empty'
731.1Sscw	0x52		PCC2: Printer `Select'
741.1Sscw	0x53		PCC2: Printer `Fault'
751.1Sscw	0x54		PCC2: Printer `ACK'
761.1Sscw	0x55		PCC2: SCSI
771.1Sscw	0x56		PCC2: Ethernet `Error'
781.1Sscw	0x57		PCC2: Ethernet
791.1Sscw	0x58		PCC2: Timer 2
801.1Sscw	0x59		PCC2: Timer 1
811.1Sscw	0x5a		PCC2: GPIO
821.1Sscw	0x5b		PCC2: <unused>
831.1Sscw	0x5c		PCC2: CD2401 Rx Exception
841.1Sscw	0x5d		PCC2: CD2401 Modem
851.1Sscw	0x5e		PCC2: CD2401 Tx
861.1Sscw	0x5f		PCC2: CD2401 Rx
871.1Sscw
881.1Sscw	0x60 -> 0x67	VME2: <unused>
891.1Sscw	0x68		VME2: Software Interrupt #0
901.1Sscw	0x69		VME2: Software Interrupt #1
911.1Sscw	0x6a		VME2: Software Interrupt #2
921.1Sscw	0x6b		VME2: Software Interrupt #3
931.1Sscw	0x6c		VME2: Software Interrupt #4
941.1Sscw	0x6d		VME2: Software Interrupt #5
951.1Sscw	0x6e		VME2: Software Interrupt #6
961.1Sscw	0x6f		VME2: Software Interrupt #7
971.1Sscw	0x70		VME2: GCSR Location Monitor #0
981.1Sscw	0x71		VME2: GCSR Location Monitor #1
991.1Sscw	0x72		VME2: GCSR SIG #0
1001.1Sscw	0x73		VME2: GCSR SIG #1
1011.1Sscw	0x74		VME2: GCSR SIG #2
1021.1Sscw	0x75		VME2: GCSR SIG #3
1031.1Sscw	0x76		VME2: DMA Controller
1041.1Sscw	0x77		VME2: VIA
1051.1Sscw	0x78		VME2: Tick Timer #1
1061.1Sscw	0x79		VME2: Tick Timer #2
1071.1Sscw	0x7a		VME2: `IRQ1' feature
1081.1Sscw	0x7b		VME2: Parity/ECC Error
1091.1Sscw	0x7c		VME2: Master Write Post Error
1101.1Sscw	0x7d		VME2: SYSFAIL
1111.1Sscw	0x7e		VME2: ABORT Switch
1121.1Sscw	0x7f		VME2: ACFAIL
1131.1Sscw
1141.1Sscw
1151.1SscwMVME162/172:
1161.1Sscw	0x40		IPACK: DMA_a
1171.1Sscw	0x41		IPACK: DMA_b
1181.1Sscw	0x42		IPACK: DMA_c
1191.1Sscw	0x43		IPACK: DMA_d
1201.1Sscw	0x44		IPACK: Programmable Clock
1211.1Sscw
1221.1Sscw	0x50 -> 0x52	MC2: <unused>
1231.1Sscw	0x53		MC2: Timer 4
1241.1Sscw	0x54		MC2: Timer 3
1251.1Sscw	0x55		MC2: SCSI
1261.1Sscw	0x56		MC2: Ethernet `Error'
1271.1Sscw	0x57		MC2: Ethernet
1281.1Sscw	0x58		MC2: Timer 2
1291.1Sscw	0x59		MC2: Timer 1
1301.1Sscw	0x5a		MC2: <unused>
1311.1Sscw	0x5b		MC2: Parity/ECC Error
1321.1Sscw	0x5c		MC2: ZS #1 (vector supplied by ZS chip)
1331.1Sscw	0x5d		MC2: ZS #2 (vector supplied by ZS chip)
1341.1Sscw	0x5e		MC2: Abort Switch
1351.1Sscw	0x5f		MC2: <unused>
1361.1Sscw
1371.1Sscw	0x60 -> 0x67	VME2: <unused>
1381.1Sscw	0x68		VME2: Software Interrupt #0
1391.1Sscw	0x69		VME2: Software Interrupt #1
1401.1Sscw	0x6a		VME2: Software Interrupt #2
1411.1Sscw	0x6b		VME2: Software Interrupt #3
1421.1Sscw	0x6c		VME2: Software Interrupt #4
1431.1Sscw	0x6d		VME2: Software Interrupt #5
1441.1Sscw	0x6e		VME2: Software Interrupt #6
1451.1Sscw	0x6f		VME2: Software Interrupt #7
1461.1Sscw	0x70		VME2: GCSR Location Monitor #0
1471.1Sscw	0x71		VME2: GCSR Location Monitor #1
1481.1Sscw	0x72		VME2: GCSR SIG #0
1491.1Sscw	0x73		VME2: GCSR SIG #1
1501.1Sscw	0x74		VME2: GCSR SIG #2
1511.1Sscw	0x75		VME2: GCSR SIG #3
1521.1Sscw	0x76		VME2: DMA Controller
1531.1Sscw	0x77		VME2: VIA
1541.1Sscw	0x78		VME2: Tick Timer #1
1551.1Sscw	0x79		VME2: Tick Timer #2
1561.1Sscw	0x7a		VME2: `IRQ1' feature
1571.1Sscw	0x7b		VME2: Parity/ECC Error
1581.1Sscw	0x7c		VME2: Master Write Post Error
1591.1Sscw	0x7d		VME2: SYSFAIL
1601.1Sscw	0x7e		VME2: <unused>
1611.1Sscw	0x7f		VME2: ACFAIL
162