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