0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef __ASM_DEC_INTERRUPTS_H
0015 #define __ASM_DEC_INTERRUPTS_H
0016
0017 #include <irq.h>
0018 #include <asm/mipsregs.h>
0019
0020
0021
0022
0023
0024
0025 #define DEC_IRQ_CASCADE 0
0026
0027
0028 #define DEC_IRQ_AB_RECV 1
0029 #define DEC_IRQ_AB_XMIT 2
0030 #define DEC_IRQ_DZ11 3
0031 #define DEC_IRQ_ASC 4
0032 #define DEC_IRQ_FLOPPY 5
0033 #define DEC_IRQ_FPU 6
0034 #define DEC_IRQ_HALT 7
0035 #define DEC_IRQ_ISDN 8
0036 #define DEC_IRQ_LANCE 9
0037 #define DEC_IRQ_BUS 10
0038 #define DEC_IRQ_PSU 11
0039 #define DEC_IRQ_RTC 12
0040 #define DEC_IRQ_SCC0 13
0041 #define DEC_IRQ_SCC1 14
0042 #define DEC_IRQ_SII 15
0043 #define DEC_IRQ_TC0 16
0044 #define DEC_IRQ_TC1 17
0045 #define DEC_IRQ_TC2 18
0046 #define DEC_IRQ_TIMER 19
0047 #define DEC_IRQ_VIDEO 20
0048
0049
0050 #define DEC_IRQ_ASC_MERR 21
0051 #define DEC_IRQ_ASC_ERR 22
0052 #define DEC_IRQ_ASC_DMA 23
0053 #define DEC_IRQ_FLOPPY_ERR 24
0054 #define DEC_IRQ_ISDN_ERR 25
0055 #define DEC_IRQ_ISDN_RXDMA 26
0056 #define DEC_IRQ_ISDN_TXDMA 27
0057 #define DEC_IRQ_LANCE_MERR 28
0058 #define DEC_IRQ_SCC0A_RXERR 29
0059 #define DEC_IRQ_SCC0A_RXDMA 30
0060 #define DEC_IRQ_SCC0A_TXERR 31
0061 #define DEC_IRQ_SCC0A_TXDMA 32
0062 #define DEC_IRQ_AB_RXERR 33
0063 #define DEC_IRQ_AB_RXDMA 34
0064 #define DEC_IRQ_AB_TXERR 35
0065 #define DEC_IRQ_AB_TXDMA 36
0066 #define DEC_IRQ_SCC1A_RXERR 37
0067 #define DEC_IRQ_SCC1A_RXDMA 38
0068 #define DEC_IRQ_SCC1A_TXERR 39
0069 #define DEC_IRQ_SCC1A_TXDMA 40
0070
0071
0072 #define DEC_IRQ_TC5 DEC_IRQ_ASC
0073 #define DEC_IRQ_TC6 DEC_IRQ_LANCE
0074
0075 #define DEC_NR_INTS 41
0076
0077
0078
0079 #define DEC_MAX_CPU_INTS 6
0080
0081 #define DEC_MAX_ASIC_INTS 9
0082
0083
0084
0085
0086
0087 #define DEC_CPU_INR_FPU 7
0088 #define DEC_CPU_INR_SW1 1
0089 #define DEC_CPU_INR_SW0 0
0090
0091 #define DEC_CPU_IRQ_BASE MIPS_CPU_IRQ_BASE
0092
0093 #define DEC_CPU_IRQ_NR(n) ((n) + DEC_CPU_IRQ_BASE)
0094 #define DEC_CPU_IRQ_MASK(n) (1 << ((n) + CAUSEB_IP))
0095 #define DEC_CPU_IRQ_ALL (0xff << CAUSEB_IP)
0096
0097
0098 #ifndef __ASSEMBLY__
0099
0100
0101
0102
0103 typedef union { int i; void *p; } int_ptr;
0104 extern int dec_interrupt[DEC_NR_INTS];
0105 extern int_ptr cpu_mask_nr_tbl[DEC_MAX_CPU_INTS][2];
0106 extern int_ptr asic_mask_nr_tbl[DEC_MAX_ASIC_INTS][2];
0107 extern int cpu_fpu_mask;
0108
0109
0110
0111
0112
0113 extern void kn02_io_int(void);
0114 extern void kn02xa_io_int(void);
0115 extern void kn03_io_int(void);
0116 extern void asic_dma_int(void);
0117 extern void asic_all_int(void);
0118 extern void kn02_all_int(void);
0119 extern void cpu_all_int(void);
0120
0121 extern void dec_intr_unimplemented(void);
0122 extern void asic_intr_unimplemented(void);
0123
0124 #endif
0125
0126 #endif