summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-03-11 16:53:03 +0000
committerian <ian@FreeBSD.org>2014-03-11 16:53:03 +0000
commit537be6292992897fefd4922dc1fe5859d47d0df8 (patch)
treef05a1b8e9ac84bfafa0c5393a2070cab22d974a5
parent8fbaac8eb6153dd5805ef3a5df029acc95c1ff01 (diff)
downloadFreeBSD-src-537be6292992897fefd4922dc1fe5859d47d0df8.zip
FreeBSD-src-537be6292992897fefd4922dc1fe5859d47d0df8.tar.gz
Use panic rather than printf to "handle" an arm26 address exception
(should never happen on arm32). Pass the right arguments to panic for the reset exception (which also should never happen).
-rw-r--r--sys/arm/arm/exception.S11
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/arm/arm/exception.S b/sys/arm/arm/exception.S
index ffb63d4..d49e20d 100644
--- a/sys/arm/arm/exception.S
+++ b/sys/arm/arm/exception.S
@@ -379,7 +379,6 @@ END(irq_entry)
* install itself in the FIQ vector using code (that may or may not work
* these days) in fiq.c. If nobody does that and an FIQ happens, this
* default handler just disables FIQs and otherwise ignores it.
-
*/
ASENTRY_NP(fiq_entry)
mrs r8, cpsr /* FIQ handling isn't supported, */
@@ -393,12 +392,11 @@ END(fiq_entry)
* This is an arm26 exception that should never happen.
*/
ASENTRY_NP(addr_exception_entry)
- mrs r1, cpsr
- mrs r2, spsr
mov r3, lr
+ mrs r2, spsr
+ mrs r1, cpsr
adr r0, Laddr_exception_msg
- bl _C_LABEL(printf) /* XXX CLOBBERS LR!! */
- b data_abort_entry
+ b _C_LABEL(panic)
Laddr_exception_msg:
.asciz "Address Exception CPSR=0x%08x SPSR=0x%08x LR=0x%08x\n"
.balign 4
@@ -409,8 +407,9 @@ END(addr_exception_entry)
* This should never happen, so panic.
*/
ASENTRY_NP(reset_entry)
+ mov r1, lr
adr r0, Lreset_panicmsg
- bl _C_LABEL(panic)
+ b _C_LABEL(panic)
/* NOTREACHED */
Lreset_panicmsg:
.asciz "Reset vector called, LR = 0x%08x"
OpenPOWER on IntegriCloud