aboutsummaryrefslogtreecommitdiff
path: root/bl31
diff options
context:
space:
mode:
Diffstat (limited to 'bl31')
-rw-r--r--bl31/aarch64/bl31_entrypoint.S10
-rw-r--r--bl31/aarch64/runtime_exceptions.S4
-rw-r--r--bl31/bl31.ld.S1
-rw-r--r--bl31/bl31.mk3
4 files changed, 14 insertions, 4 deletions
diff --git a/bl31/aarch64/bl31_entrypoint.S b/bl31/aarch64/bl31_entrypoint.S
index 57f6551..cd0c023 100644
--- a/bl31/aarch64/bl31_entrypoint.S
+++ b/bl31/aarch64/bl31_entrypoint.S
@@ -58,7 +58,7 @@ bl31_entrypoint: ; .type bl31_entrypoint, %function
* Set the exception vector to something sane.
* ---------------------------------------------
*/
- adr x1, runtime_exceptions
+ adr x1, early_exceptions
msr vbar_el3, x1
/* ---------------------------------------------------------------------
@@ -155,6 +155,14 @@ bl31_entrypoint: ; .type bl31_entrypoint, %function
bl platform_set_stack
/* ---------------------------------------------
+ * Use the more complex exception vectors now
+ * the stacks are setup.
+ * ---------------------------------------------
+ */
+ adr x1, runtime_exceptions
+ msr vbar_el3, x1
+
+ /* ---------------------------------------------
* Use SP_EL0 to initialize BL31. It allows us
* to jump to the next image without having to
* come back here to ensure all of the stack's
diff --git a/bl31/aarch64/runtime_exceptions.S b/bl31/aarch64/runtime_exceptions.S
index ce0af74..92835dc 100644
--- a/bl31/aarch64/runtime_exceptions.S
+++ b/bl31/aarch64/runtime_exceptions.S
@@ -37,8 +37,8 @@
#include <asm_macros.S>
- .section .text, "ax"; .align 11
-
+ .section .vectors, "ax"; .align 11
+
.align 7
runtime_exceptions:
/* -----------------------------------------------------
diff --git a/bl31/bl31.ld.S b/bl31/bl31.ld.S
index 7cc8527..2583c9a 100644
--- a/bl31/bl31.ld.S
+++ b/bl31/bl31.ld.S
@@ -50,6 +50,7 @@ SECTIONS
*bl31_entrypoint.o(.text)
*(.text)
*(.rodata*)
+ *(.vectors)
__RO_END_UNALIGNED__ = .;
/*
* Memory page(s) mapped to this section will be marked as read-only,
diff --git a/bl31/bl31.mk b/bl31/bl31.mk
index 5c374aa..f7c2168 100644
--- a/bl31/bl31.mk
+++ b/bl31/bl31.mk
@@ -62,7 +62,8 @@ BL31_OBJS += bl31_arch_setup.o \
spinlock.o \
gic_v3_sysregs.o \
bakery_lock.o \
- runtime_svc.o
+ runtime_svc.o \
+ early_exceptions.o
BL31_ENTRY_POINT := bl31_entrypoint
BL31_MAPFILE := bl31.map