/* * arch/sh/kernel/cpu/sh3/ex.S * * The SH-3 exception vector table. * Copyright (C) 1999, 2000, 2002 Niibe Yutaka * Copyright (C) 2003 Paul Mundt * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * */ #include #include .align 2 .data ENTRY(exception_handling_table) .long exception_error /* 000 */ .long exception_error #if defined(CONFIG_MMU) .long tlb_miss_load /* 040 */ .long tlb_miss_store .long initial_page_write .long tlb_protection_violation_load .long tlb_protection_violation_store .long address_error_load .long address_error_store /* 100 */ #else .long exception_error ! tlb miss load /* 040 */ .long exception_error ! tlb miss store .long exception_error ! initial page write .long exception_error ! tlb prot violation load .long exception_error ! tlb prot violation store .long exception_error ! address error load .long exception_error ! address error store /* 100 */ #endif .long exception_error ! fpu_exception /* 120 */ .long exception_error /* 140 */ .long system_call ! Unconditional Trap /* 160 */ .long exception_error ! reserved_instruction (filled by trap_init) /* 180 */ .long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/ ENTRY(nmi_slot) #if defined (CONFIG_KGDB_NMI) .long debug_enter /* 1C0 */ ! Allow trap to debugger #else .long exception_none /* 1C0 */ ! Not implemented yet #endif ENTRY(user_break_point_trap) .long break_point_trap /* 1E0 */ ENTRY(interrupt_table) ! external hardware .long do_IRQ ! 0000 /* 200 */ .long do_IRQ ! 0001 .long do_IRQ ! 0010 .long do_IRQ ! 0011 .long do_IRQ ! 0100 .long do_IRQ ! 0101 .long do_IRQ ! 0110 .long do_IRQ ! 0111 .long do_IRQ ! 1000 /* 300 */ .long do_IRQ ! 1001 .long do_IRQ ! 1010 .long do_IRQ ! 1011 .long do_IRQ ! 1100 .long do_IRQ ! 1101 .long do_IRQ ! 1110 .long exception_error ! Internal hardware .long do_IRQ ! TMU0 tuni0 /* 400 */ .long do_IRQ ! TMU1 tuni1 .long do_IRQ ! TMU2 tuni2 .long do_IRQ ! ticpi2 .long do_IRQ ! RTC ati .long do_IRQ ! pri .long do_IRQ ! cui .long do_IRQ ! SCI eri .long do_IRQ ! rxi /* 500 */ .long do_IRQ ! txi .long do_IRQ ! tei .long do_IRQ ! WDT iti /* 560 */ .long do_IRQ ! REF rcmi .long do_IRQ ! rovi .long do_IRQ .long do_IRQ /* 5E0 */ #if defined(CONFIG_CPU_SUBTYPE_SH7707) || defined(CONFIG_CPU_SUBTYPE_SH7709) .long do_IRQ ! 32 IRQ irq0 /* 600 */ .long do_IRQ ! 33 irq1 .long do_IRQ ! 34 irq2 .long do_IRQ ! 35 irq3 .long do_IRQ ! 36 irq4 .long do_IRQ ! 37 irq5 .long do_IRQ ! 38 .long do_IRQ ! 39 .long do_IRQ ! 40 PINT pint0-7 /* 700 */ .long do_IRQ ! 41 pint8-15 .long do_IRQ ! 42 .long do_IRQ ! 43 .long do_IRQ ! 44 .long do_IRQ ! 45 .long do_IRQ ! 46 .long do_IRQ ! 47 .long do_IRQ ! 48 DMAC dei0 /* 800 */ .long do_IRQ ! 49 dei1 .long do_IRQ ! 50 dei2 .long do_IRQ ! 51 dei3 .long do_IRQ ! 52 IrDA eri1 .long do_IRQ ! 53 rxi1 .long do_IRQ ! 54 bri1 .long do_IRQ ! 55 txi1 .long do_IRQ ! 56 SCIF eri2 .long do_IRQ ! 57 rxi2 .long do_IRQ ! 58 bri2 .long do_IRQ ! 59 txi2 .long do_IRQ ! 60 ADC adi /* 980 */ #if defined(CONFIG_CPU_SUBTYPE_SH7707) .long do_IRQ ! 61 LCDC lcdi /* 9A0 */ .long do_IRQ ! 62 PCC pcc0i .long do_IRQ ! 63 pcc1i /* 9E0 */ #endif #endif