summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/board
diff options
context:
space:
mode:
authorIngo Albrecht <prom@berlin.ccc.de>2010-04-18 09:43:25 +0200
committerIngo Albrecht <prom@berlin.ccc.de>2010-07-20 14:41:20 +0200
commit0eeb05e3ace406c58e8057c1d39fdd7c29d7e990 (patch)
tree8da5b3945ca81520a18165d9152fe326311340dd /src/target/firmware/board
parent8aa4d22f55b99fed696e20acd9a43442178b5e39 (diff)
firmware: proper exception redirect
Diffstat (limited to 'src/target/firmware/board')
-rw-r--r--src/target/firmware/board/compal/exceptions_redirect.S24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/target/firmware/board/compal/exceptions_redirect.S b/src/target/firmware/board/compal/exceptions_redirect.S
index d2d971b8..a216e601 100644
--- a/src/target/firmware/board/compal/exceptions_redirect.S
+++ b/src/target/firmware/board/compal/exceptions_redirect.S
@@ -1,18 +1,24 @@
-/* XXX this should dispatch via 0x80001c */
-
.section .text.exceptions
_undef_instr:
- b _undef_instr
+ ldr pc, _vec_undef_instr
_sw_interr:
- b _sw_interr
+ ldr pc, _vec_sw_interr
_prefetch_abort:
- b _prefetch_abort
+ ldr pc, _vec_prefetch_abort
_data_abort:
- b _data_abort
+ ldr pc, _vec_data_abort
_reserved:
- b _reserved
+ ldr pc, _vec_reserved
_irq:
- b _irq
+ ldr pc, _vec_irq
_fiq:
- b _fiq
+ ldr pc, _vec_fiq
+
+_vec_undef_instr: .word(0x80001c)
+_vec_sw_interr: .word(0x800020)
+_vec_prefetch_abort: .word(0x800024)
+_vec_data_abort: .word(0x800028)
+_vec_reserved: .word(0x80002c)
+_vec_irq: .word(0x800030)
+_vec_fiq: .word(0x800034)