diff options
author | Achin Gupta <achin.gupta@arm.com> | 2014-02-19 17:18:23 +0000 |
---|---|---|
committer | Dan Handley <dan.handley@arm.com> | 2014-02-20 19:06:34 +0000 |
commit | e4d084ea9629703166e59d116d4aefbd6f2be531 (patch) | |
tree | 68e863ffaea93a977f7590e2e52139d0ea96a0fb /bl31 | |
parent | a7934d69508872919787742c7680b68807c24361 (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')
-rw-r--r-- | bl31/aarch64/bl31_entrypoint.S | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/bl31/aarch64/bl31_entrypoint.S b/bl31/aarch64/bl31_entrypoint.S index 1b8488d6..c72b3633 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 * --------------------------------------------- */ |