2 * arch/sh/kernel/cpu/sh4/ex.S
4 * The SH-4 exception vector table.
6 * Copyright (C) 1999, 2000, 2002 Niibe Yutaka
7 * Copyright (C) 2003 Paul Mundt
9 * This file is subject to the terms and conditions of the GNU General Public
10 * License. See the file "COPYING" in the main directory of this archive
14 #include <linux/linkage.h>
15 #include <linux/config.h>
20 ENTRY(exception_handling_table)
21 .long exception_error /* 000 */
23 #if defined(CONFIG_MMU)
24 .long tlb_miss_load /* 040 */
26 .long initial_page_write
27 .long tlb_protection_violation_load
28 .long tlb_protection_violation_store
29 .long address_error_load
30 .long address_error_store /* 100 */
32 .long exception_error ! tlb miss load /* 040 */
33 .long exception_error ! tlb miss store
34 .long exception_error ! initial page write
35 .long exception_error ! tlb prot violation load
36 .long exception_error ! tlb prot violation store
37 .long exception_error ! address error load
38 .long exception_error ! address error store /* 100 */
41 .long do_fpu_error /* 120 */
42 .long exception_error /* 140 */
43 .long system_call ! Unconditional Trap /* 160 */
44 .long exception_error ! reserved_instruction (filled by trap_init) /* 180 */
45 .long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
47 #if defined (CONFIG_KGDB_NMI)
48 .long debug_enter /* 1C0 */ ! Allow trap to debugger
50 .long exception_none /* 1C0 */ ! Not implemented yet
52 ENTRY(user_break_point_trap)
53 .long break_point_trap /* 1E0 */
54 ENTRY(interrupt_table)
56 .long do_IRQ ! 0000 /* 200 */
64 .long do_IRQ ! 1000 /* 300 */
73 .long do_IRQ ! TMU0 tuni0 /* 400 */
74 .long do_IRQ ! TMU1 tuni1
75 .long do_IRQ ! TMU2 tuni2
77 #if defined(CONFIG_CPU_SUBTYPE_SH7760)
82 .long exception_error /* 500 */
86 .long do_IRQ ! RTC ati
89 .long do_IRQ ! SCI eri
90 .long do_IRQ ! rxi /* 500 */
94 .long do_IRQ ! WDT iti /* 560 */
95 .long do_IRQ ! REF rcmi
98 .long do_IRQ /* 5E0 */
99 .long do_IRQ ! 32 Hitachi UDI /* 600 */
100 .long do_IRQ ! 33 GPIO
101 .long do_IRQ ! 34 DMAC dmte0
102 .long do_IRQ ! 35 dmte1
103 .long do_IRQ ! 36 dmte2
104 .long do_IRQ ! 37 dmte3
105 .long do_IRQ ! 38 dmae
106 .long exception_error ! 39 /* 6E0 */
107 #if defined(CONFIG_CPU_SUBTYPE_SH7760)
108 .long exception_error /* 700 */
109 .long exception_error
110 .long exception_error
111 .long exception_error /* 760 */
113 .long do_IRQ ! 40 SCIF eri /* 700 */
114 .long do_IRQ ! 41 rxi
115 .long do_IRQ ! 42 bri
116 .long do_IRQ ! 43 txi
118 #if CONFIG_NR_ONCHIP_DMA_CHANNELS == 8
119 .long do_IRQ ! 44 DMAC dmte4 /* 780 */
120 .long do_IRQ ! 45 dmte5
121 .long do_IRQ ! 46 dmte6
122 .long do_IRQ ! 47 dmte7 /* 7E0 */
124 .long exception_error ! 44 /* 780 */
125 .long exception_error ! 45
126 .long exception_error ! 46
127 .long exception_error ! 47
129 .long do_fpu_state_restore ! 48 /* 800 */
130 .long do_fpu_state_restore ! 49 /* 820 */
131 #if defined(CONFIG_CPU_SUBTYPE_SH7751)
132 .long exception_error /* 840 */
133 .long exception_error
134 .long exception_error
135 .long exception_error
136 .long exception_error
137 .long exception_error
138 .long exception_error /* 900 */
139 .long exception_error
140 .long exception_error
141 .long exception_error
142 .long exception_error
143 .long exception_error
144 .long exception_error
145 .long exception_error
146 .long do_IRQ ! PCI serr /* A00 */
154 .long do_IRQ ! TMU3 tuni3 /* B00 */
155 .long exception_error
156 .long exception_error
157 .long exception_error
158 .long do_IRQ ! TMU4 tuni4 /* B80 */
159 #elif defined(CONFIG_CPU_SUBTYPE_SH7760)
160 .long do_IRQ ! IRQ irq6 /* 840 */
162 .long do_IRQ ! SCIF eri0
166 .long do_IRQ ! HCAN2 cani0 /* 900 */
168 .long do_IRQ ! SSI ssii0
170 .long do_IRQ ! HAC haci0
172 .long do_IRQ ! IIC iici0
174 .long do_IRQ ! USB usbi /* A00 */
175 .long do_IRQ ! LCDC vint
176 .long exception_error
177 .long exception_error
178 .long do_IRQ ! DMABRG dmabrgi0
179 .long do_IRQ ! dmabrgi1
180 .long do_IRQ ! dmabrgi2
181 .long exception_error
182 .long do_IRQ ! SCIF eri1 /* B00 */
190 .long do_IRQ ! SIM simeri /* C00 */
191 .long do_IRQ ! simrxi
192 .long do_IRQ ! simtxi
193 .long do_IRQ ! simtei
194 .long do_IRQ ! HSPI spii
195 .long exception_error
196 .long exception_error
197 .long exception_error
198 .long do_IRQ ! MMCIF mmci0 /* D00 */
202 .long exception_error
203 .long exception_error
204 .long exception_error
205 .long exception_error
206 .long exception_error /* E00 */
207 .long exception_error
208 .long exception_error
209 .long exception_error
210 .long do_IRQ ! MFI mfii
211 .long exception_error
212 .long exception_error
213 .long exception_error
214 .long exception_error /* F00 */
215 .long exception_error
216 .long exception_error
217 .long exception_error
218 .long do_IRQ ! ADC adi
219 .long do_IRQ ! CMT cmti /* FA0 */
220 #elif defined(CONFIG_CPU_SUBTYPE_ST40STB1)
221 .long exception_error ! 50 0x840
222 .long exception_error ! 51 0x860
223 .long exception_error ! 52 0x880
224 .long exception_error ! 53 0x8a0
225 .long exception_error ! 54 0x8c0
226 .long exception_error ! 55 0x8e0
227 .long exception_error ! 56 0x900
228 .long exception_error ! 57 0x920
229 .long exception_error ! 58 0x940
230 .long exception_error ! 59 0x960
231 .long exception_error ! 60 0x980
232 .long exception_error ! 61 0x9a0
233 .long exception_error ! 62 0x9c0
234 .long exception_error ! 63 0x9e0
235 .long do_IRQ ! 64 0xa00 PCI serr
236 .long do_IRQ ! 65 0xa20 err
237 .long do_IRQ ! 66 0xa40 ad
238 .long do_IRQ ! 67 0xa60 pwr_dwn
239 .long exception_error ! 68 0xa80
240 .long exception_error ! 69 0xaa0
241 .long exception_error ! 70 0xac0
242 .long exception_error ! 71 0xae0
243 .long do_IRQ ! 72 0xb00 DMA INT0
244 .long do_IRQ ! 73 0xb20 INT1
245 .long do_IRQ ! 74 0xb40 INT2
246 .long do_IRQ ! 75 0xb60 INT3
247 .long do_IRQ ! 76 0xb80 INT4
248 .long exception_error ! 77 0xba0
249 .long do_IRQ ! 78 0xbc0 DMA ERR
250 .long exception_error ! 79 0xbe0
251 .long do_IRQ ! 80 0xc00 PIO0
252 .long do_IRQ ! 81 0xc20 PIO1
253 .long do_IRQ ! 82 0xc40 PIO2
254 .long exception_error ! 83 0xc60
255 .long exception_error ! 84 0xc80
256 .long exception_error ! 85 0xca0
257 .long exception_error ! 86 0xcc0
258 .long exception_error ! 87 0xce0
259 .long exception_error ! 88 0xd00
260 .long exception_error ! 89 0xd20
261 .long exception_error ! 90 0xd40
262 .long exception_error ! 91 0xd60
263 .long exception_error ! 92 0xd80
264 .long exception_error ! 93 0xda0
265 .long exception_error ! 94 0xdc0
266 .long exception_error ! 95 0xde0
267 .long exception_error ! 96 0xe00
268 .long exception_error ! 97 0xe20
269 .long exception_error ! 98 0xe40
270 .long exception_error ! 99 0xe60
271 .long exception_error ! 100 0xe80
272 .long exception_error ! 101 0xea0
273 .long exception_error ! 102 0xec0
274 .long exception_error ! 103 0xee0
275 .long exception_error ! 104 0xf00
276 .long exception_error ! 105 0xf20
277 .long exception_error ! 106 0xf40
278 .long exception_error ! 107 0xf60
279 .long exception_error ! 108 0xf80
280 .long exception_error ! 109 0xfa0
281 .long exception_error ! 110 0xfc0
282 .long exception_error ! 111 0xfe0
283 .long do_IRQ ! 112 0x1000 Mailbox
284 .long exception_error ! 113 0x1020
285 .long exception_error ! 114 0x1040
286 .long exception_error ! 115 0x1060
287 .long exception_error ! 116 0x1080
288 .long exception_error ! 117 0x10a0
289 .long exception_error ! 118 0x10c0
290 .long exception_error ! 119 0x10e0
291 .long exception_error ! 120 0x1100
292 .long exception_error ! 121 0x1120
293 .long exception_error ! 122 0x1140
294 .long exception_error ! 123 0x1160
295 .long exception_error ! 124 0x1180
296 .long exception_error ! 125 0x11a0
297 .long exception_error ! 126 0x11c0
298 .long exception_error ! 127 0x11e0
299 .long exception_error ! 128 0x1200
300 .long exception_error ! 129 0x1220
301 .long exception_error ! 130 0x1240
302 .long exception_error ! 131 0x1260
303 .long exception_error ! 132 0x1280
304 .long exception_error ! 133 0x12a0
305 .long exception_error ! 134 0x12c0
306 .long exception_error ! 135 0x12e0
307 .long exception_error ! 136 0x1300
308 .long exception_error ! 137 0x1320
309 .long exception_error ! 138 0x1340
310 .long exception_error ! 139 0x1360
311 .long do_IRQ ! 140 0x1380 EMPI INV_ADDR
312 .long exception_error ! 141 0x13a0
313 .long exception_error ! 142 0x13c0
314 .long exception_error ! 143 0x13e0