Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | 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 |
| 199 | |