summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/rtl22xx/start/start.S
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/rtl22xx/start/start.S')
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/start/start.S97
1 files changed, 26 insertions, 71 deletions
diff --git a/c/src/lib/libbsp/arm/rtl22xx/start/start.S b/c/src/lib/libbsp/arm/rtl22xx/start/start.S
index 0afd3ff1da..c038198aff 100644
--- a/c/src/lib/libbsp/arm/rtl22xx/start/start.S
+++ b/c/src/lib/libbsp/arm/rtl22xx/start/start.S
@@ -123,80 +123,35 @@ _hang: b _hang
********************************************************/
vector_block:
- LDR PC, Reset_Addr
- LDR PC, Undefined_Addr
- LDR PC, SWI_Addr
- LDR PC, Prefetch_Addr
- LDR PC, Abort_Addr
- NOP
- LDR PC, IRQ_Addr
- LDR PC, FIQ_Addr
-
- .globl Reset_Addr
-Reset_Addr: .long _start
-Undefined_Addr: .long Undefined_Handler
-SWI_Addr: .long SWI_Handler
-Prefetch_Addr: .long Prefetch_Handler
-Abort_Addr: .long Abort_Handler
- .long 0
-IRQ_Addr: .long IRQ_Handler
-FIQ_Addr: .long FIQ_Handler
-
-/* The following handlers do not do anything useful */
- .globl Undefined_Handler
-Undefined_Handler:
- B Undefined_Handler
- .globl SWI_Handler
-SWI_Handler:
- B SWI_Handler
- .globl Prefetch_Handler
-Prefetch_Handler:
- B Prefetch_Handler
- .globl Abort_Handler
-Abort_Handler:
- B Abort_Handler
- .globl IRQ_Handler
-IRQ_Handler:
- B IRQ_Handler
- .globl FIQ_Handler
-FIQ_Handler:
- B FIQ_Handler
+ ldr pc, handler_addr_reset
+ ldr pc, handler_addr_undef
+ ldr pc, handler_addr_swi
+ ldr pc, handler_addr_prefetch
+ ldr pc, handler_addr_abort
+ nop
+ ldr pc, handler_addr_irq
+ ldr pc, handler_addr_fiq
+handler_addr_reset:
+ .word _start
+handler_addr_undef:
+ .word _ARMV4_Exception_undef_default
+handler_addr_swi:
+ .word _ARMV4_Exception_swi_default
-/*
- * This is the exception vector table and the pointers to
- * the functions that handle the exceptions. It's a total
- * of 16 words (64 bytes)
- */
+handler_addr_prefetch:
+ .word _ARMV4_Exception_pref_abort_default
- /*******************************************************
+handler_addr_abort:
+ .word _ARMV4_Exception_data_abort_default
-vector_block:
- ldr pc, Reset_Handler
- ldr pc, Undefined_Handler
- ldr pc, SWI_Handler
- ldr pc, Prefetch_Handler
- ldr pc, Abort_Handler
- nop
- ldr pc, IRQ_Handler
- ldr pc, FIQ_Handler
-
-Reset_Handler: b bsp_reset
-Undefined_Handler: b Undefined_Handler
-SWI_Handler: b SWI_Handler
-Prefetch_Handler: b Prefetch_Handler
-Abort_Handler: b Abort_Handler
- nop
-IRQ_Handler: b IRQ_Handler
-FIQ_Handler: b FIQ_Handler
-
-.globl Reset_Handler
-.globl Undefined_Handler
-.globl SWI_Handler
-.globl Prefetch_Handler
-.globl Abort_Handler
-.globl IRQ_Handler
-.globl FIQ_Handler
- */
+handler_addr_reserved:
+ .word _ARMV4_Exception_reserved_default
+
+handler_addr_irq:
+ .word _ARMV4_Exception_interrupt
+
+handler_addr_fiq:
+ .word _ARMV4_Exception_fiq_default