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