Linux-2.6.12-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / arch / sh / kernel / cpu / sh3 / ex.S
blob966c0858b71494b21f0bc4ddddc44f8d46037d70
1 /*
2  *  arch/sh/kernel/cpu/sh3/ex.S
3  *
4  *  The SH-3 exception vector table.
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>
17         .align 2
18         .data
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         .long   exception_error ! fpu_exception /* 120 */
41         .long   exception_error                 /* 140 */
42         .long   system_call     ! Unconditional Trap     /* 160 */
43         .long   exception_error ! reserved_instruction (filled by trap_init) /* 180 */
44         .long   exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
45 ENTRY(nmi_slot)
46 #if defined (CONFIG_KGDB_NMI)
47         .long   debug_enter     /* 1C0 */       ! Allow trap to debugger
48 #else
49         .long   exception_none  /* 1C0 */       ! Not implemented yet
50 #endif
51 ENTRY(user_break_point_trap)
52         .long   break_point_trap        /* 1E0 */
53 ENTRY(interrupt_table)
54         ! external hardware
55         .long   do_IRQ  ! 0000          /* 200 */
56         .long   do_IRQ  ! 0001
57         .long   do_IRQ  ! 0010
58         .long   do_IRQ  ! 0011
59         .long   do_IRQ  ! 0100
60         .long   do_IRQ  ! 0101
61         .long   do_IRQ  ! 0110
62         .long   do_IRQ  ! 0111
63         .long   do_IRQ  ! 1000          /* 300 */
64         .long   do_IRQ  ! 1001
65         .long   do_IRQ  ! 1010
66         .long   do_IRQ  ! 1011
67         .long   do_IRQ  ! 1100
68         .long   do_IRQ  ! 1101
69         .long   do_IRQ  ! 1110
70         .long   exception_error         
71         ! Internal hardware
72         .long   do_IRQ  ! TMU0 tuni0    /* 400 */
73         .long   do_IRQ  ! TMU1 tuni1
74         .long   do_IRQ  ! TMU2 tuni2
75         .long   do_IRQ  !      ticpi2
76         .long   do_IRQ  ! RTC  ati
77         .long   do_IRQ  !      pri
78         .long   do_IRQ  !      cui
79         .long   do_IRQ  ! SCI  eri
80         .long   do_IRQ  !      rxi      /* 500 */
81         .long   do_IRQ  !      txi
82         .long   do_IRQ  !      tei
83         .long   do_IRQ  ! WDT  iti      /* 560 */
84         .long   do_IRQ  ! REF  rcmi
85         .long   do_IRQ  !      rovi
86         .long   do_IRQ                  
87         .long   do_IRQ                  /* 5E0 */
88 #if  defined(CONFIG_CPU_SUBTYPE_SH7707) || defined(CONFIG_CPU_SUBTYPE_SH7709) || \
89      defined(CONFIG_CPU_SUBTYPE_SH7300) || defined(CONFIG_CPU_SUBTYPE_SH7705)
90         .long   do_IRQ  ! 32 IRQ  irq0  /* 600 */
91         .long   do_IRQ  ! 33      irq1
92         .long   do_IRQ  ! 34      irq2
93         .long   do_IRQ  ! 35      irq3
94         .long   do_IRQ  ! 36      irq4
95         .long   do_IRQ  ! 37      irq5
96         .long   do_IRQ  ! 38
97         .long   do_IRQ  ! 39
98         .long   do_IRQ  ! 40 PINT pint0-7       /* 700 */
99         .long   do_IRQ  ! 41      pint8-15
100         .long   do_IRQ  ! 42
101         .long   do_IRQ  ! 43
102         .long   do_IRQ  ! 44
103         .long   do_IRQ  ! 45    
104         .long   do_IRQ  ! 46
105         .long   do_IRQ  ! 47
106         .long   do_IRQ  ! 48 DMAC dei0  /* 800 */
107         .long   do_IRQ  ! 49      dei1
108         .long   do_IRQ  ! 50      dei2
109         .long   do_IRQ  ! 51      dei3
110         .long   do_IRQ  ! 52 IrDA eri1
111         .long   do_IRQ  ! 53      rxi1
112         .long   do_IRQ  ! 54      bri1
113         .long   do_IRQ  ! 55      txi1
114         .long   do_IRQ  ! 56 SCIF eri2
115         .long   do_IRQ  ! 57      rxi2
116         .long   do_IRQ  ! 58      bri2
117         .long   do_IRQ  ! 59      txi2
118         .long   do_IRQ  ! 60 ADC  adi   /* 980 */
119 #if defined(CONFIG_CPU_SUBTYPE_SH7705)
120         .long   exception_none  ! 61    /* 9A0 */
121         .long   exception_none  ! 62
122         .long   exception_none  ! 63
123         .long   exception_none  ! 64    /* A00 */
124         .long   do_IRQ  ! 65 USB  usi0
125         .long   do_IRQ  ! 66      usi1
126         .long   exception_none  ! 67
127         .long   exception_none  ! 68
128         .long   exception_none  ! 69
129         .long   exception_none  ! 70
130         .long   exception_none  ! 71
131         .long   exception_none  ! 72    /* B00 */
132         .long   exception_none  ! 73
133         .long   exception_none  ! 74
134         .long   exception_none  ! 75
135         .long   exception_none  ! 76
136         .long   exception_none  ! 77
137         .long   exception_none  ! 78
138         .long   exception_none  ! 79
139         .long   do_IRQ  ! 80 TPU0 tpi0  /* C00 */
140         .long   do_IRQ  ! 81 TPU1 tpi1
141         .long   exception_none  ! 82
142         .long   exception_none  ! 83
143         .long   do_IRQ  ! 84 TPU2 tpi2
144         .long   do_IRQ  ! 85 TPU3 tpi3  /* CA0 */
145 #endif
146 #if defined(CONFIG_CPU_SUBTYPE_SH7707) || defined(CONFIG_CPU_SUBTYPE_SH7300)
147         .long   do_IRQ  ! 61 LCDC lcdi  /* 9A0 */
148         .long   do_IRQ  ! 62 PCC  pcc0i
149         .long   do_IRQ  ! 63      pcc1i /* 9E0 */
150 #endif
151 #if defined(CONFIG_CPU_SUBTYPE_SH7300)
152         .long   do_IRQ  ! 64
153         .long   do_IRQ  ! 65
154         .long   do_IRQ  ! 66
155         .long   do_IRQ  ! 67
156         .long   do_IRQ  ! 68
157         .long   do_IRQ  ! 69
158         .long   do_IRQ  ! 70
159         .long   do_IRQ  ! 71
160         .long   do_IRQ  ! 72
161         .long   do_IRQ  ! 73
162         .long   do_IRQ  ! 74
163         .long   do_IRQ  ! 75
164         .long   do_IRQ  ! 76
165         .long   do_IRQ  ! 77
166         .long   do_IRQ  ! 78
167         .long   do_IRQ  ! 79
168         .long   do_IRQ  ! 80 SCIF0(SH7300)
169         .long   do_IRQ  ! 81
170         .long   do_IRQ  ! 82
171         .long   do_IRQ  ! 83
172         .long   do_IRQ  ! 84
173         .long   do_IRQ  ! 85
174         .long   do_IRQ  ! 86
175         .long   do_IRQ  ! 87
176         .long   do_IRQ  ! 88
177         .long   do_IRQ  ! 89
178         .long   do_IRQ  ! 90
179         .long   do_IRQ  ! 91
180         .long   do_IRQ  ! 92
181         .long   do_IRQ  ! 93
182         .long   do_IRQ  ! 94
183         .long   do_IRQ  ! 95
184         .long   do_IRQ  ! 96
185         .long   do_IRQ  ! 97
186         .long   do_IRQ  ! 98
187         .long   do_IRQ  ! 99
188         .long   do_IRQ  ! 100
189         .long   do_IRQ  ! 101
190         .long   do_IRQ  ! 102
191         .long   do_IRQ  ! 103
192         .long   do_IRQ  ! 104
193         .long   do_IRQ  ! 105
194         .long   do_IRQ  ! 106
195         .long   do_IRQ  ! 107
196         .long   do_IRQ  ! 108
197 #endif
198 #endif