path: root/bl31/aarch64
diff options
authorVikram Kanigiri <vikram.kanigiri@arm.com>2014-05-15 18:27:15 +0100
committerVikram Kanigiri <vikram.kanigiri@arm.com>2014-05-22 15:43:23 +0100
commit29fb905d5f36a415a170a4bffeadf13b5f084345 (patch)
tree4cf20542c5219393010b1285dd88de5b0e2a519e /bl31/aarch64
parent23ff9baa7e01eac3a451f2e8ed768c9b90d3567a (diff)
Rework handover interface between BL stages
This patch reworks the handover interface from: BL1 to BL2 and BL2 to BL3-1. It removes the raise_el(), change_el(), drop_el() and run_image() functions as they catered for code paths that were never exercised. BL1 calls bl1_run_bl2() to jump into BL2 instead of doing the same by calling run_image(). Similarly, BL2 issues the SMC to transfer execution to BL3-1 through BL1 directly. Only x0 and x1 are used to pass arguments to BL31. These arguments and parameters for running BL3-1 are passed through a reference to a 'el_change_info_t' structure. They were being passed value in general purpose registers earlier. Change-Id: Id4fd019a19a9595de063766d4a66295a2c9307e1
Diffstat (limited to 'bl31/aarch64')
1 files changed, 4 insertions, 13 deletions
diff --git a/bl31/aarch64/bl31_entrypoint.S b/bl31/aarch64/bl31_entrypoint.S
index 763303b..701bca3 100644
--- a/bl31/aarch64/bl31_entrypoint.S
+++ b/bl31/aarch64/bl31_entrypoint.S
@@ -45,12 +45,13 @@
func bl31_entrypoint
/* ---------------------------------------------
- * BL2 has populated x0 with the opcode
- * indicating BL31 should be run, x3 with
- * a pointer to a 'bl31_args' structure & x4
+ * Preceding bootloader has populated x0 with a
+ * pointer to a 'bl31_args' structure & x1
* with any other optional information
* ---------------------------------------------
+ mov x20, x0
+ mov x21, x1
/* ---------------------------------------------
* Set the exception vector to something sane.
@@ -92,16 +93,6 @@ func bl31_entrypoint
/* ---------------------------------------------
- * Check the opcodes out of paranoia.
- * ---------------------------------------------
- */
- mov x19, #RUN_IMAGE
- cmp x0, x19
- b.ne _panic
- mov x20, x3
- mov x21, x4
- /* ---------------------------------------------
* This is BL31 which is expected to be executed
* only by the primary cpu (at least for now).
* So, make sure no secondary has lost its way.