Interrupts revision 1.1
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