aboutsummaryrefslogtreecommitdiff
path: root/bl1/aarch64/early_exceptions.S
diff options
context:
space:
mode:
authorAchin Gupta <achin.gupta@arm.com>2014-01-18 16:50:09 +0000
committerDan Handley <dan.handley@arm.com>2014-02-17 18:51:44 +0000
commitb739f22a99c96d5a295f083125505b5b5ec2f8b6 (patch)
treefaed79c3d8e505d3168aa0299aa68099cc3f4fe6 /bl1/aarch64/early_exceptions.S
parent65f0730ba34d5e22d3372cef76f048339d9c4588 (diff)
Setup VBAR_EL3 incrementally
This patch ensures that VBAR_EL3 points to the simple stack-less 'early_exceptions' when the C runtime stack is not correctly setup to use the more complex 'runtime_exceptions'. It is initialised to 'runtime_exceptions' once this is done. This patch also moves all exception vectors into a '.vectors' section and modifies linker scripts to place all such sections together. This will minimize space wastage from alignment restrictions. Change-Id: I8c3e596ea3412c8bd582af9e8d622bb1cb2e049d
Diffstat (limited to 'bl1/aarch64/early_exceptions.S')
-rw-r--r--bl1/aarch64/early_exceptions.S9
1 files changed, 5 insertions, 4 deletions
diff --git a/bl1/aarch64/early_exceptions.S b/bl1/aarch64/early_exceptions.S
index ef47f9e..84bdae1 100644
--- a/bl1/aarch64/early_exceptions.S
+++ b/bl1/aarch64/early_exceptions.S
@@ -37,12 +37,12 @@
.globl early_exceptions
.weak display_boot_progress
- .section .text, "ax"; .align 11
+ .section .vectors, "ax"; .align 11
/* -----------------------------------------------------
- * Very simple exception handlers used by BL1 and BL2.
- * Apart from one SMC exception all other traps loop
- * endlessly.
+ * Very simple stackless exception handlers used by all
+ * bootloader stages. BL31 uses them before stacks are
+ * setup. BL1/BL2 use them throughout.
* -----------------------------------------------------
*/
.align 7
@@ -164,6 +164,7 @@ SErrorA32:
.align 7
+ .section .text, "ax"
process_exception:
sub sp, sp, #0x40
stp x0, x1, [sp, #0x0]