diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /arch/sh/kernel/cpu/sh4/ex.S |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'arch/sh/kernel/cpu/sh4/ex.S')
-rw-r--r-- | arch/sh/kernel/cpu/sh4/ex.S | 384 |
1 files changed, 384 insertions, 0 deletions
diff --git a/arch/sh/kernel/cpu/sh4/ex.S b/arch/sh/kernel/cpu/sh4/ex.S new file mode 100644 index 000000000000..8221e9d15515 --- /dev/null +++ b/arch/sh/kernel/cpu/sh4/ex.S | |||
@@ -0,0 +1,384 @@ | |||
1 | /* | ||
2 | * arch/sh/kernel/cpu/sh4/ex.S | ||
3 | * | ||
4 | * The SH-4 exception vector table. | ||
5 | |||
6 | * Copyright (C) 1999, 2000, 2002 Niibe Yutaka | ||
7 | * Copyright (C) 2003 Paul Mundt | ||
8 | * | ||
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 | ||
11 | * for more details. | ||
12 | * | ||
13 | */ | ||
14 | #include <linux/linkage.h> | ||
15 | #include <linux/config.h> | ||
16 | |||
17 | .align 2 | ||
18 | .data | ||
19 | |||
20 | ENTRY(exception_handling_table) | ||
21 | .long exception_error /* 000 */ | ||
22 | .long exception_error | ||
23 | #if defined(CONFIG_MMU) | ||
24 | .long tlb_miss_load /* 040 */ | ||
25 | .long tlb_miss_store | ||
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 */ | ||
31 | #else | ||
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 */ | ||
39 | #endif | ||
40 | #if defined(CONFIG_SH_FPU) | ||
41 | .long do_fpu_error /* 120 */ | ||
42 | #else | ||
43 | .long exception_error /* 120 */ | ||
44 | #endif | ||
45 | .long exception_error /* 140 */ | ||
46 | .long system_call ! Unconditional Trap /* 160 */ | ||
47 | .long exception_error ! reserved_instruction (filled by trap_init) /* 180 */ | ||
48 | .long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/ | ||
49 | ENTRY(nmi_slot) | ||
50 | #if defined (CONFIG_KGDB_NMI) | ||
51 | .long debug_enter /* 1C0 */ ! Allow trap to debugger | ||
52 | #else | ||
53 | .long exception_none /* 1C0 */ ! Not implemented yet | ||
54 | #endif | ||
55 | ENTRY(user_break_point_trap) | ||
56 | .long break_point_trap /* 1E0 */ | ||
57 | ENTRY(interrupt_table) | ||
58 | ! external hardware | ||
59 | .long do_IRQ ! 0000 /* 200 */ | ||
60 | .long do_IRQ ! 0001 | ||
61 | .long do_IRQ ! 0010 | ||
62 | .long do_IRQ ! 0011 | ||
63 | .long do_IRQ ! 0100 | ||
64 | .long do_IRQ ! 0101 | ||
65 | .long do_IRQ ! 0110 | ||
66 | .long do_IRQ ! 0111 | ||
67 | .long do_IRQ ! 1000 /* 300 */ | ||
68 | .long do_IRQ ! 1001 | ||
69 | .long do_IRQ ! 1010 | ||
70 | .long do_IRQ ! 1011 | ||
71 | .long do_IRQ ! 1100 | ||
72 | .long do_IRQ ! 1101 | ||
73 | .long do_IRQ ! 1110 | ||
74 | .long exception_error | ||
75 | ! Internal hardware | ||
76 | .long do_IRQ ! TMU0 tuni0 /* 400 */ | ||
77 | .long do_IRQ ! TMU1 tuni1 | ||
78 | .long do_IRQ ! TMU2 tuni2 | ||
79 | .long do_IRQ ! ticpi2 | ||
80 | #if defined(CONFIG_CPU_SUBTYPE_SH7760) | ||
81 | .long exception_error | ||
82 | .long exception_error | ||
83 | .long exception_error | ||
84 | .long exception_error | ||
85 | .long exception_error /* 500 */ | ||
86 | .long exception_error | ||
87 | .long exception_error | ||
88 | #else | ||
89 | .long do_IRQ ! RTC ati | ||
90 | .long do_IRQ ! pri | ||
91 | .long do_IRQ ! cui | ||
92 | .long do_IRQ ! SCI eri | ||
93 | .long do_IRQ ! rxi /* 500 */ | ||
94 | .long do_IRQ ! txi | ||
95 | .long do_IRQ ! tei | ||
96 | #endif | ||
97 | .long do_IRQ ! WDT iti /* 560 */ | ||
98 | .long do_IRQ ! REF rcmi | ||
99 | .long do_IRQ ! rovi | ||
100 | .long do_IRQ | ||
101 | .long do_IRQ /* 5E0 */ | ||
102 | .long do_IRQ ! 32 Hitachi UDI /* 600 */ | ||
103 | .long do_IRQ ! 33 GPIO | ||
104 | .long do_IRQ ! 34 DMAC dmte0 | ||
105 | .long do_IRQ ! 35 dmte1 | ||
106 | .long do_IRQ ! 36 dmte2 | ||
107 | .long do_IRQ ! 37 dmte3 | ||
108 | .long do_IRQ ! 38 dmae | ||
109 | .long exception_error ! 39 /* 6E0 */ | ||
110 | #if defined(CONFIG_CPU_SUBTYPE_SH7760) | ||
111 | .long exception_error /* 700 */ | ||
112 | .long exception_error | ||
113 | .long exception_error | ||
114 | .long exception_error /* 760 */ | ||
115 | #else | ||
116 | .long do_IRQ ! 40 SCIF eri /* 700 */ | ||
117 | .long do_IRQ ! 41 rxi | ||
118 | .long do_IRQ ! 42 bri | ||
119 | .long do_IRQ ! 43 txi | ||
120 | #endif | ||
121 | #if CONFIG_NR_ONCHIP_DMA_CHANNELS == 8 | ||
122 | .long do_IRQ ! 44 DMAC dmte4 /* 780 */ | ||
123 | .long do_IRQ ! 45 dmte5 | ||
124 | .long do_IRQ ! 46 dmte6 | ||
125 | .long do_IRQ ! 47 dmte7 /* 7E0 */ | ||
126 | #else | ||
127 | .long exception_error ! 44 /* 780 */ | ||
128 | .long exception_error ! 45 | ||
129 | .long exception_error ! 46 | ||
130 | .long exception_error ! 47 | ||
131 | #endif | ||
132 | #if defined(CONFIG_SH_FPU) | ||
133 | .long do_fpu_state_restore ! 48 /* 800 */ | ||
134 | .long do_fpu_state_restore ! 49 /* 820 */ | ||
135 | #else | ||
136 | .long exception_error | ||
137 | .long exception_error | ||
138 | #endif | ||
139 | #if defined(CONFIG_CPU_SUBTYPE_SH7751) | ||
140 | .long exception_error /* 840 */ | ||
141 | .long exception_error | ||
142 | .long exception_error | ||
143 | .long exception_error | ||
144 | .long exception_error | ||
145 | .long exception_error | ||
146 | .long exception_error /* 900 */ | ||
147 | .long exception_error | ||
148 | .long exception_error | ||
149 | .long exception_error | ||
150 | .long exception_error | ||
151 | .long exception_error | ||
152 | .long exception_error | ||
153 | .long exception_error | ||
154 | .long do_IRQ ! PCI serr /* A00 */ | ||
155 | .long do_IRQ ! dma3 | ||
156 | .long do_IRQ ! dma2 | ||
157 | .long do_IRQ ! dma1 | ||
158 | .long do_IRQ ! dma0 | ||
159 | .long do_IRQ ! pwon | ||
160 | .long do_IRQ ! pwdwn | ||
161 | .long do_IRQ ! err | ||
162 | .long do_IRQ ! TMU3 tuni3 /* B00 */ | ||
163 | .long exception_error | ||
164 | .long exception_error | ||
165 | .long exception_error | ||
166 | .long do_IRQ ! TMU4 tuni4 /* B80 */ | ||
167 | #elif defined(CONFIG_CPU_SUBTYPE_SH7760) | ||
168 | .long do_IRQ ! IRQ irq6 /* 840 */ | ||
169 | .long do_IRQ ! irq7 | ||
170 | .long do_IRQ ! SCIF eri0 | ||
171 | .long do_IRQ ! rxi0 | ||
172 | .long do_IRQ ! bri0 | ||
173 | .long do_IRQ ! txi0 | ||
174 | .long do_IRQ ! HCAN2 cani0 /* 900 */ | ||
175 | .long do_IRQ ! cani1 | ||
176 | .long do_IRQ ! SSI ssii0 | ||
177 | .long do_IRQ ! ssii1 | ||
178 | .long do_IRQ ! HAC haci0 | ||
179 | .long do_IRQ ! haci1 | ||
180 | .long do_IRQ ! IIC iici0 | ||
181 | .long do_IRQ ! iici1 | ||
182 | .long do_IRQ ! USB usbi /* A00 */ | ||
183 | .long do_IRQ ! LCDC vint | ||
184 | .long exception_error | ||
185 | .long exception_error | ||
186 | .long do_IRQ ! DMABRG dmabrgi0 | ||
187 | .long do_IRQ ! dmabrgi1 | ||
188 | .long do_IRQ ! dmabrgi2 | ||
189 | .long exception_error | ||
190 | .long do_IRQ ! SCIF eri1 /* B00 */ | ||
191 | .long do_IRQ ! rxi1 | ||
192 | .long do_IRQ ! bri1 | ||
193 | .long do_IRQ ! txi1 | ||
194 | .long do_IRQ ! eri2 | ||
195 | .long do_IRQ ! rxi2 | ||
196 | .long do_IRQ ! bri2 | ||
197 | .long do_IRQ ! txi2 | ||
198 | .long do_IRQ ! SIM simeri /* C00 */ | ||
199 | .long do_IRQ ! simrxi | ||
200 | .long do_IRQ ! simtxi | ||
201 | .long do_IRQ ! simtei | ||
202 | .long do_IRQ ! HSPI spii | ||
203 | .long exception_error | ||
204 | .long exception_error | ||
205 | .long exception_error | ||
206 | .long do_IRQ ! MMCIF mmci0 /* D00 */ | ||
207 | .long do_IRQ ! mmci1 | ||
208 | .long do_IRQ ! mmci2 | ||
209 | .long do_IRQ ! mmci3 | ||
210 | .long exception_error | ||
211 | .long exception_error | ||
212 | .long exception_error | ||
213 | .long exception_error | ||
214 | .long exception_error /* E00 */ | ||
215 | .long exception_error | ||
216 | .long exception_error | ||
217 | .long exception_error | ||
218 | .long do_IRQ ! MFI mfii | ||
219 | .long exception_error | ||
220 | .long exception_error | ||
221 | .long exception_error | ||
222 | .long exception_error /* F00 */ | ||
223 | .long exception_error | ||
224 | .long exception_error | ||
225 | .long exception_error | ||
226 | .long do_IRQ ! ADC adi | ||
227 | .long do_IRQ ! CMT cmti /* FA0 */ | ||
228 | #elif defined(CONFIG_CPU_SUBTYPE_SH73180) | ||
229 | .long do_IRQ ! 50 0x840 | ||
230 | .long do_IRQ ! 51 0x860 | ||
231 | .long do_IRQ ! 52 0x880 | ||
232 | .long do_IRQ ! 53 0x8a0 | ||
233 | .long do_IRQ ! 54 0x8c0 | ||
234 | .long do_IRQ ! 55 0x8e0 | ||
235 | .long do_IRQ ! 56 0x900 | ||
236 | .long do_IRQ ! 57 0x920 | ||
237 | .long do_IRQ ! 58 0x940 | ||
238 | .long do_IRQ ! 59 0x960 | ||
239 | .long do_IRQ ! 60 0x980 | ||
240 | .long do_IRQ ! 61 0x9a0 | ||
241 | .long do_IRQ ! 62 0x9c0 | ||
242 | .long do_IRQ ! 63 0x9e0 | ||
243 | .long do_IRQ ! 64 0xa00 | ||
244 | .long do_IRQ ! 65 0xa20 | ||
245 | .long do_IRQ ! 66 0xa40 | ||
246 | .long do_IRQ ! 67 0xa60 | ||
247 | .long do_IRQ ! 68 0xa80 | ||
248 | .long do_IRQ ! 69 0xaa0 | ||
249 | .long do_IRQ ! 70 0xac0 | ||
250 | .long do_IRQ ! 71 0xae0 | ||
251 | .long do_IRQ ! 72 0xb00 | ||
252 | .long do_IRQ ! 73 0xb20 | ||
253 | .long do_IRQ ! 74 0xb40 | ||
254 | .long do_IRQ ! 75 0xb60 | ||
255 | .long do_IRQ ! 76 0xb80 | ||
256 | .long do_IRQ ! 77 0xba0 | ||
257 | .long do_IRQ ! 78 0xbc0 | ||
258 | .long do_IRQ ! 79 0xbe0 | ||
259 | .long do_IRQ ! 80 0xc00 | ||
260 | .long do_IRQ ! 81 0xc20 | ||
261 | .long do_IRQ ! 82 0xc40 | ||
262 | .long do_IRQ ! 83 0xc60 | ||
263 | .long do_IRQ ! 84 0xc80 | ||
264 | .long do_IRQ ! 85 0xca0 | ||
265 | .long do_IRQ ! 86 0xcc0 | ||
266 | .long do_IRQ ! 87 0xce0 | ||
267 | .long do_IRQ ! 88 0xd00 | ||
268 | .long do_IRQ ! 89 0xd20 | ||
269 | .long do_IRQ ! 90 0xd40 | ||
270 | .long do_IRQ ! 91 0xd60 | ||
271 | .long do_IRQ ! 92 0xd80 | ||
272 | .long do_IRQ ! 93 0xda0 | ||
273 | .long do_IRQ ! 94 0xdc0 | ||
274 | .long do_IRQ ! 95 0xde0 | ||
275 | .long do_IRQ ! 96 0xe00 | ||
276 | .long do_IRQ ! 97 0xe20 | ||
277 | .long do_IRQ ! 98 0xe40 | ||
278 | .long do_IRQ ! 99 0xe60 | ||
279 | .long do_IRQ ! 100 0xe80 | ||
280 | .long do_IRQ ! 101 0xea0 | ||
281 | .long do_IRQ ! 102 0xec0 | ||
282 | .long do_IRQ ! 103 0xee0 | ||
283 | .long do_IRQ ! 104 0xf00 | ||
284 | .long do_IRQ ! 105 0xf20 | ||
285 | .long do_IRQ ! 106 0xf40 | ||
286 | .long do_IRQ ! 107 0xf60 | ||
287 | .long do_IRQ ! 108 0xf80 | ||
288 | #elif defined(CONFIG_CPU_SUBTYPE_ST40STB1) | ||
289 | .long exception_error ! 50 0x840 | ||
290 | .long exception_error ! 51 0x860 | ||
291 | .long exception_error ! 52 0x880 | ||
292 | .long exception_error ! 53 0x8a0 | ||
293 | .long exception_error ! 54 0x8c0 | ||
294 | .long exception_error ! 55 0x8e0 | ||
295 | .long exception_error ! 56 0x900 | ||
296 | .long exception_error ! 57 0x920 | ||
297 | .long exception_error ! 58 0x940 | ||
298 | .long exception_error ! 59 0x960 | ||
299 | .long exception_error ! 60 0x980 | ||
300 | .long exception_error ! 61 0x9a0 | ||
301 | .long exception_error ! 62 0x9c0 | ||
302 | .long exception_error ! 63 0x9e0 | ||
303 | .long do_IRQ ! 64 0xa00 PCI serr | ||
304 | .long do_IRQ ! 65 0xa20 err | ||
305 | .long do_IRQ ! 66 0xa40 ad | ||
306 | .long do_IRQ ! 67 0xa60 pwr_dwn | ||
307 | .long exception_error ! 68 0xa80 | ||
308 | .long exception_error ! 69 0xaa0 | ||
309 | .long exception_error ! 70 0xac0 | ||
310 | .long exception_error ! 71 0xae0 | ||
311 | .long do_IRQ ! 72 0xb00 DMA INT0 | ||
312 | .long do_IRQ ! 73 0xb20 INT1 | ||
313 | .long do_IRQ ! 74 0xb40 INT2 | ||
314 | .long do_IRQ ! 75 0xb60 INT3 | ||
315 | .long do_IRQ ! 76 0xb80 INT4 | ||
316 | .long exception_error ! 77 0xba0 | ||
317 | .long do_IRQ ! 78 0xbc0 DMA ERR | ||
318 | .long exception_error ! 79 0xbe0 | ||
319 | .long do_IRQ ! 80 0xc00 PIO0 | ||
320 | .long do_IRQ ! 81 0xc20 PIO1 | ||
321 | .long do_IRQ ! 82 0xc40 PIO2 | ||
322 | .long exception_error ! 83 0xc60 | ||
323 | .long exception_error ! 84 0xc80 | ||
324 | .long exception_error ! 85 0xca0 | ||
325 | .long exception_error ! 86 0xcc0 | ||
326 | .long exception_error ! 87 0xce0 | ||
327 | .long exception_error ! 88 0xd00 | ||
328 | .long exception_error ! 89 0xd20 | ||
329 | .long exception_error ! 90 0xd40 | ||
330 | .long exception_error ! 91 0xd60 | ||
331 | .long exception_error ! 92 0xd80 | ||
332 | .long exception_error ! 93 0xda0 | ||
333 | .long exception_error ! 94 0xdc0 | ||
334 | .long exception_error ! 95 0xde0 | ||
335 | .long exception_error ! 96 0xe00 | ||
336 | .long exception_error ! 97 0xe20 | ||
337 | .long exception_error ! 98 0xe40 | ||
338 | .long exception_error ! 99 0xe60 | ||
339 | .long exception_error ! 100 0xe80 | ||
340 | .long exception_error ! 101 0xea0 | ||
341 | .long exception_error ! 102 0xec0 | ||
342 | .long exception_error ! 103 0xee0 | ||
343 | .long exception_error ! 104 0xf00 | ||
344 | .long exception_error ! 105 0xf20 | ||
345 | .long exception_error ! 106 0xf40 | ||
346 | .long exception_error ! 107 0xf60 | ||
347 | .long exception_error ! 108 0xf80 | ||
348 | .long exception_error ! 109 0xfa0 | ||
349 | .long exception_error ! 110 0xfc0 | ||
350 | .long exception_error ! 111 0xfe0 | ||
351 | .long do_IRQ ! 112 0x1000 Mailbox | ||
352 | .long exception_error ! 113 0x1020 | ||
353 | .long exception_error ! 114 0x1040 | ||
354 | .long exception_error ! 115 0x1060 | ||
355 | .long exception_error ! 116 0x1080 | ||
356 | .long exception_error ! 117 0x10a0 | ||
357 | .long exception_error ! 118 0x10c0 | ||
358 | .long exception_error ! 119 0x10e0 | ||
359 | .long exception_error ! 120 0x1100 | ||
360 | .long exception_error ! 121 0x1120 | ||
361 | .long exception_error ! 122 0x1140 | ||
362 | .long exception_error ! 123 0x1160 | ||
363 | .long exception_error ! 124 0x1180 | ||
364 | .long exception_error ! 125 0x11a0 | ||
365 | .long exception_error ! 126 0x11c0 | ||
366 | .long exception_error ! 127 0x11e0 | ||
367 | .long exception_error ! 128 0x1200 | ||
368 | .long exception_error ! 129 0x1220 | ||
369 | .long exception_error ! 130 0x1240 | ||
370 | .long exception_error ! 131 0x1260 | ||
371 | .long exception_error ! 132 0x1280 | ||
372 | .long exception_error ! 133 0x12a0 | ||
373 | .long exception_error ! 134 0x12c0 | ||
374 | .long exception_error ! 135 0x12e0 | ||
375 | .long exception_error ! 136 0x1300 | ||
376 | .long exception_error ! 137 0x1320 | ||
377 | .long exception_error ! 138 0x1340 | ||
378 | .long exception_error ! 139 0x1360 | ||
379 | .long do_IRQ ! 140 0x1380 EMPI INV_ADDR | ||
380 | .long exception_error ! 141 0x13a0 | ||
381 | .long exception_error ! 142 0x13c0 | ||
382 | .long exception_error ! 143 0x13e0 | ||
383 | #endif | ||
384 | |||