summaryrefslogtreecommitdiff
path: root/bl1
diff options
context:
space:
mode:
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 /bl1
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 'bl1')
-rw-r--r--bl1/bl1.ld.S2
-rw-r--r--bl1/bl1_main.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/bl1/bl1.ld.S b/bl1/bl1.ld.S
index ac52e529..7a00a3fb 100644
--- a/bl1/bl1.ld.S
+++ b/bl1/bl1.ld.S
@@ -116,5 +116,5 @@ SECTIONS
__COHERENT_RAM_UNALIGNED_SIZE__ =
__COHERENT_RAM_END_UNALIGNED__ - __COHERENT_RAM_START__;
- ASSERT(. <= BL31_BASE, "BL31 image overlaps BL1 image.")
+ ASSERT(. <= BL31_BASE, "BL1 image overlaps BL31 image.")
}
diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c
index 06ab4e59..b3adc251 100644
--- a/bl1/bl1_main.c
+++ b/bl1/bl1_main.c
@@ -104,7 +104,11 @@ void bl1_main(void)
printf("BL2 memory layout address = 0x%llx \n\r",
(unsigned long long) bl2_tzram_layout);
#endif
- run_image(bl2_base, spsr, SECURE, bl2_tzram_layout, 0);
+ run_image(bl2_base,
+ spsr,
+ SECURE,
+ (void *) bl2_tzram_layout,
+ NULL);
}
/*