path: root/bl31/aarch64
diff options
authorAchin Gupta <achin.gupta@arm.com>2014-02-19 17:18:23 +0000
committerDan Handley <dan.handley@arm.com>2014-02-20 19:06:34 +0000
commite4d084ea9629703166e59d116d4aefbd6f2be531 (patch)
tree68e863ffaea93a977f7590e2e52139d0ea96a0fb /bl31/aarch64
parenta7934d69508872919787742c7680b68807c24361 (diff)
Rework BL2 to BL3-1 hand over interface
This patch reworks BL2 to BL3-1 hand over interface by introducing a composite structure (bl31_args) that holds the superset of information that needs to be passed from BL2 to BL3-1. - The extents of secure memory available to BL3-1 - The extents of memory available to BL3-2 (not yet implemented) and BL3-3 - Information to execute BL3-2 (not yet implemented) and BL3-3 images This patch also introduces a new platform API (bl2_get_bl31_args_ptr) that needs to be implemented by the platform code to export reference to bl31_args structure which has been allocated in platform-defined memory. The platform will initialize the extents of memory available to BL3-3 during early platform setup in bl31_args structure. This obviates the need for bl2_get_ns_mem_layout platform API. BL2 calls the bl2_get_bl31_args_ptr function to get a reference to bl31_args structure. It uses the 'bl33_meminfo' field of this structure to load the BL3-3 image. It sets the entry point information for the BL3-3 image in the 'bl33_image_info' field of this structure. The reference to this structure is passed to the BL3-1 image. Also fixes issue ARM-software/tf-issues#25 Change-Id: Ic36426196dd5ebf89e60ff42643bed01b3500517
Diffstat (limited to 'bl31/aarch64')
1 files changed, 4 insertions, 5 deletions
diff --git a/bl31/aarch64/bl31_entrypoint.S b/bl31/aarch64/bl31_entrypoint.S
index 1b8488d..c72b363 100644
--- a/bl31/aarch64/bl31_entrypoint.S
+++ b/bl31/aarch64/bl31_entrypoint.S
@@ -47,11 +47,10 @@
bl31_entrypoint: ; .type bl31_entrypoint, %function
/* ---------------------------------------------
- * BL2 has populated x0,x3,x4 with the opcode
- * indicating BL31 should be run, memory layout
- * of the trusted SRAM available to BL31 and
- * information about running the non-trusted
- * software already loaded by BL2.
+ * BL2 has populated x0 with the opcode
+ * indicating BL31 should be run, x3 with
+ * a pointer to a 'bl31_args' structure & x4
+ * with any other optional information
* ---------------------------------------------