ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.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 #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         .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         .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_SH7707)
119         .long   do_IRQ  ! 61 LCDC lcdi  /* 9A0 */
120         .long   do_IRQ  ! 62 PCC  pcc0i
121         .long   do_IRQ  ! 63      pcc1i /* 9E0 */
122 #endif
123 #endif
124