1
2
3
4
5
6
7
8
9
10
11
12#include <asm/hardware/iomd.h>
13
14 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
15 ldrb \irqstat, [\base,
16 ldr \tmp, =irq_prio_h
17 teq \irqstat,
18#ifdef IOMD_BASE
19 ldreqb \irqstat, [\base,
20 addeq \tmp, \tmp,
21 teqeq \irqstat,
22 bne 2406f
23#endif
24 ldreqb \irqstat, [\base,
25 addeq \tmp, \tmp,
26 teqeq \irqstat,
27#ifdef IOMD_IRQREQC
28 ldreqb \irqstat, [\base,
29 addeq \tmp, \tmp,
30 teqeq \irqstat,
31#endif
32#ifdef IOMD_IRQREQD
33 ldreqb \irqstat, [\base,
34 addeq \tmp, \tmp,
35 teqeq \irqstat,
36#endif
372406: ldrneb \irqnr, [\tmp, \irqstat] @ get IRQ number
38 .endm
39
40
41
42
43
44 .align 5
45irq_prio_h: .byte 0, 8, 9, 8,10,10,10,10,11,11,11,11,10,10,10,10
46 .byte 12, 8, 9, 8,10,10,10,10,11,11,11,11,10,10,10,10
47 .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
48 .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
49 .byte 14,14,14,14,10,10,10,10,11,11,11,11,10,10,10,10
50 .byte 14,14,14,14,10,10,10,10,11,11,11,11,10,10,10,10
51 .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
52 .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
53 .byte 15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10
54 .byte 15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10
55 .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
56 .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
57 .byte 15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10
58 .byte 15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10
59 .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
60 .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
61#ifdef IOMD_BASE
62irq_prio_d: .byte 0,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
63 .byte 20,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
64 .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
65 .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
66 .byte 22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
67 .byte 22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
68 .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
69 .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
70 .byte 23,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
71 .byte 23,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
72 .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
73 .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
74 .byte 22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
75 .byte 22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
76 .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
77 .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
78#endif
79irq_prio_l: .byte 0, 0, 1, 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3
80 .byte 4, 0, 1, 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3
81 .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
82 .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
83 .byte 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3
84 .byte 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3
85 .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
86 .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
87 .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
88 .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
89 .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
90 .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
91 .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
92 .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
93 .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
94 .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
95#ifdef IOMD_IRQREQC
96irq_prio_lc: .byte 24,24,25,24,26,26,26,26,27,27,27,27,27,27,27,27
97 .byte 28,24,25,24,26,26,26,26,27,27,27,27,27,27,27,27
98 .byte 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
99 .byte 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
100 .byte 30,30,30,30,30,30,30,30,27,27,27,27,27,27,27,27
101 .byte 30,30,30,30,30,30,30,30,27,27,27,27,27,27,27,27
102 .byte 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
103 .byte 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
104 .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
105 .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
106 .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
107 .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
108 .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
109 .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
110 .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
111 .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
112#endif
113#ifdef IOMD_IRQREQD
114irq_prio_ld: .byte 40,40,41,40,42,42,42,42,43,43,43,43,43,43,43,43
115 .byte 44,40,41,40,42,42,42,42,43,43,43,43,43,43,43,43
116 .byte 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
117 .byte 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
118 .byte 46,46,46,46,46,46,46,46,43,43,43,43,43,43,43,43
119 .byte 46,46,46,46,46,46,46,46,43,43,43,43,43,43,43,43
120 .byte 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
121 .byte 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
122 .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
123 .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
124 .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
125 .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
126 .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
127 .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
128 .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
129 .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
130#endif
131
132