xref: /netbsd-src/sys/arch/mvme68k/docs/Interrupts (revision 5cabdd3709d6bc5280ca2fe65fea9a0fe2989ee3)
1*5cabdd37Sscw$NetBSD: Interrupts,v 1.1 2000/12/14 20:30:14 scw Exp $
2*5cabdd37Sscw
3*5cabdd37SscwNetBSD/mvme68k Interrupt Levels
4*5cabdd37Sscw~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5*5cabdd37Sscw
6*5cabdd37SscwNetBSD/mvme68k interrupts are dependent on the type of device which
7*5cabdd37Sscwgenerates them. This holds true regardless of what bus the device is
8*5cabdd37Sscwsituated on (eg. local, VMEbus or IndustryPack site).
9*5cabdd37Sscw
10*5cabdd37SscwOn MVME147, there is a fixed 1:1 mapping of VMEbus interrupt level
11*5cabdd37Sscwto CPU interrupt level. This implies that VMEbus devices must be
12*5cabdd37Sscwset to interrupt at the correct level for that type of device.
13*5cabdd37Sscw
14*5cabdd37SscwOn the other boards, each VMEbus interrupt level can be mapped to a
15*5cabdd37Sscwspecific CPU interrupt level so the above restriction does not apply.
16*5cabdd37SscwHowever, note that the mapping can only be done once. Therefore it is
17*5cabdd37Sscwnot possible to have two VMEbus devices which require different CPU
18*5cabdd37Sscwinterrupt levels sharing the same VMEbus interrupt level.
19*5cabdd37Sscw
20*5cabdd37SscwThe mapping of device type to CPU interrupt levels is as follows:
21*5cabdd37Sscw
22*5cabdd37Sscw	CPU Irq		Device Type
23*5cabdd37Sscw	~~~~~~~		~~~~~~~~~~~
24*5cabdd37Sscw	<Highest>
25*5cabdd37Sscw	6 - 7		Anything which generates an exceptional condition
26*5cabdd37Sscw			which *must* be responded to immediately. For
27*5cabdd37Sscw			example, a memory parity/uncorrectable data error.
28*5cabdd37Sscw
29*5cabdd37Sscw	5		Reserved for the system clock/scheduler. Do not use.
30*5cabdd37Sscw
31*5cabdd37Sscw	4		Serial port devices (rs232, rs422 etc).
32*5cabdd37Sscw
33*5cabdd37Sscw	3		Network interfaces.
34*5cabdd37Sscw
35*5cabdd37Sscw	2		Disk/Block device interfaces.
36*5cabdd37Sscw
37*5cabdd37Sscw	1		Anything else.
38*5cabdd37Sscw	<Lowest>
39*5cabdd37Sscw
40*5cabdd37Sscw
41*5cabdd37Sscw
42*5cabdd37SscwInterrupt Vectors
43*5cabdd37Sscw~~~~~~~~~~~~~~~~~
44*5cabdd37Sscw
45*5cabdd37SscwNetBSD/mvme68k does not use or generate `auto-vectored' interrupts.
46*5cabdd37Sscw
47*5cabdd37SscwAll vectored interrupts up to and including vector 0x7f are reserved
48*5cabdd37Sscwfor use by onboard devices.
49*5cabdd37Sscw
50*5cabdd37SscwVMEbus cards and IndustryPack modules are free to use vectors 0x80 -> 0xff.
51*5cabdd37Sscw
52*5cabdd37SscwThe onboard devices' vectors are as follows:
53*5cabdd37Sscw
54*5cabdd37SscwMVME147:
55*5cabdd37Sscw	0x40		PCC: ACFAIL
56*5cabdd37Sscw	0x41		PCC: BERR
57*5cabdd37Sscw	0x42		PCC: ABORT Switch
58*5cabdd37Sscw	0x43		PCC: ZS Chips shared vector
59*5cabdd37Sscw	0x44		PCC: Lance Ethernet
60*5cabdd37Sscw	0x45		PCC: WD33C93 SCSI
61*5cabdd37Sscw	0x46		PCC: DMA
62*5cabdd37Sscw	0x47		PCC: Printer
63*5cabdd37Sscw	0x48		PCC: Timer1
64*5cabdd37Sscw	0x49		PCC: Timer2
65*5cabdd37Sscw	0x4a		PCC: Soft Interrupt 1
66*5cabdd37Sscw	0x4b		PCC: Soft Interrupt 2
67*5cabdd37Sscw	0x4c -> 0x4f	PCC: <unused>
68*5cabdd37Sscw
69*5cabdd37Sscw
70*5cabdd37SscwMVME167/177:
71*5cabdd37Sscw	0x50		PCC2: Printer `BUSY'
72*5cabdd37Sscw	0x51		PCC2: Printer `Paper Empty'
73*5cabdd37Sscw	0x52		PCC2: Printer `Select'
74*5cabdd37Sscw	0x53		PCC2: Printer `Fault'
75*5cabdd37Sscw	0x54		PCC2: Printer `ACK'
76*5cabdd37Sscw	0x55		PCC2: SCSI
77*5cabdd37Sscw	0x56		PCC2: Ethernet `Error'
78*5cabdd37Sscw	0x57		PCC2: Ethernet
79*5cabdd37Sscw	0x58		PCC2: Timer 2
80*5cabdd37Sscw	0x59		PCC2: Timer 1
81*5cabdd37Sscw	0x5a		PCC2: GPIO
82*5cabdd37Sscw	0x5b		PCC2: <unused>
83*5cabdd37Sscw	0x5c		PCC2: CD2401 Rx Exception
84*5cabdd37Sscw	0x5d		PCC2: CD2401 Modem
85*5cabdd37Sscw	0x5e		PCC2: CD2401 Tx
86*5cabdd37Sscw	0x5f		PCC2: CD2401 Rx
87*5cabdd37Sscw
88*5cabdd37Sscw	0x60 -> 0x67	VME2: <unused>
89*5cabdd37Sscw	0x68		VME2: Software Interrupt #0
90*5cabdd37Sscw	0x69		VME2: Software Interrupt #1
91*5cabdd37Sscw	0x6a		VME2: Software Interrupt #2
92*5cabdd37Sscw	0x6b		VME2: Software Interrupt #3
93*5cabdd37Sscw	0x6c		VME2: Software Interrupt #4
94*5cabdd37Sscw	0x6d		VME2: Software Interrupt #5
95*5cabdd37Sscw	0x6e		VME2: Software Interrupt #6
96*5cabdd37Sscw	0x6f		VME2: Software Interrupt #7
97*5cabdd37Sscw	0x70		VME2: GCSR Location Monitor #0
98*5cabdd37Sscw	0x71		VME2: GCSR Location Monitor #1
99*5cabdd37Sscw	0x72		VME2: GCSR SIG #0
100*5cabdd37Sscw	0x73		VME2: GCSR SIG #1
101*5cabdd37Sscw	0x74		VME2: GCSR SIG #2
102*5cabdd37Sscw	0x75		VME2: GCSR SIG #3
103*5cabdd37Sscw	0x76		VME2: DMA Controller
104*5cabdd37Sscw	0x77		VME2: VIA
105*5cabdd37Sscw	0x78		VME2: Tick Timer #1
106*5cabdd37Sscw	0x79		VME2: Tick Timer #2
107*5cabdd37Sscw	0x7a		VME2: `IRQ1' feature
108*5cabdd37Sscw	0x7b		VME2: Parity/ECC Error
109*5cabdd37Sscw	0x7c		VME2: Master Write Post Error
110*5cabdd37Sscw	0x7d		VME2: SYSFAIL
111*5cabdd37Sscw	0x7e		VME2: ABORT Switch
112*5cabdd37Sscw	0x7f		VME2: ACFAIL
113*5cabdd37Sscw
114*5cabdd37Sscw
115*5cabdd37SscwMVME162/172:
116*5cabdd37Sscw	0x40		IPACK: DMA_a
117*5cabdd37Sscw	0x41		IPACK: DMA_b
118*5cabdd37Sscw	0x42		IPACK: DMA_c
119*5cabdd37Sscw	0x43		IPACK: DMA_d
120*5cabdd37Sscw	0x44		IPACK: Programmable Clock
121*5cabdd37Sscw
122*5cabdd37Sscw	0x50 -> 0x52	MC2: <unused>
123*5cabdd37Sscw	0x53		MC2: Timer 4
124*5cabdd37Sscw	0x54		MC2: Timer 3
125*5cabdd37Sscw	0x55		MC2: SCSI
126*5cabdd37Sscw	0x56		MC2: Ethernet `Error'
127*5cabdd37Sscw	0x57		MC2: Ethernet
128*5cabdd37Sscw	0x58		MC2: Timer 2
129*5cabdd37Sscw	0x59		MC2: Timer 1
130*5cabdd37Sscw	0x5a		MC2: <unused>
131*5cabdd37Sscw	0x5b		MC2: Parity/ECC Error
132*5cabdd37Sscw	0x5c		MC2: ZS #1 (vector supplied by ZS chip)
133*5cabdd37Sscw	0x5d		MC2: ZS #2 (vector supplied by ZS chip)
134*5cabdd37Sscw	0x5e		MC2: Abort Switch
135*5cabdd37Sscw	0x5f		MC2: <unused>
136*5cabdd37Sscw
137*5cabdd37Sscw	0x60 -> 0x67	VME2: <unused>
138*5cabdd37Sscw	0x68		VME2: Software Interrupt #0
139*5cabdd37Sscw	0x69		VME2: Software Interrupt #1
140*5cabdd37Sscw	0x6a		VME2: Software Interrupt #2
141*5cabdd37Sscw	0x6b		VME2: Software Interrupt #3
142*5cabdd37Sscw	0x6c		VME2: Software Interrupt #4
143*5cabdd37Sscw	0x6d		VME2: Software Interrupt #5
144*5cabdd37Sscw	0x6e		VME2: Software Interrupt #6
145*5cabdd37Sscw	0x6f		VME2: Software Interrupt #7
146*5cabdd37Sscw	0x70		VME2: GCSR Location Monitor #0
147*5cabdd37Sscw	0x71		VME2: GCSR Location Monitor #1
148*5cabdd37Sscw	0x72		VME2: GCSR SIG #0
149*5cabdd37Sscw	0x73		VME2: GCSR SIG #1
150*5cabdd37Sscw	0x74		VME2: GCSR SIG #2
151*5cabdd37Sscw	0x75		VME2: GCSR SIG #3
152*5cabdd37Sscw	0x76		VME2: DMA Controller
153*5cabdd37Sscw	0x77		VME2: VIA
154*5cabdd37Sscw	0x78		VME2: Tick Timer #1
155*5cabdd37Sscw	0x79		VME2: Tick Timer #2
156*5cabdd37Sscw	0x7a		VME2: `IRQ1' feature
157*5cabdd37Sscw	0x7b		VME2: Parity/ECC Error
158*5cabdd37Sscw	0x7c		VME2: Master Write Post Error
159*5cabdd37Sscw	0x7d		VME2: SYSFAIL
160*5cabdd37Sscw	0x7e		VME2: <unused>
161*5cabdd37Sscw	0x7f		VME2: ACFAIL
162