From 93d81d64d3947aa7712fab602a16b781a12c78bb Mon Sep 17 00:00:00 2001 From: Sandrine Bailleux Date: Tue, 24 Jun 2014 14:19:36 +0100 Subject: Add support for BL3-0 image - Add support for loading a BL3-0 image in BL2. Information about memory extents is populated by platform-specific code. Subsequent handling of BL3-0 is also platform specific. The BL2 main function has been broken down to improve readability. The BL3-2 image is now loaded before the BL3-3 image to align with the boot flow. - Build system: Add support for specifying a BL3-0 image that will be included into the FIP image. - IO FIP driver: Add support for identifying a BL3-0 image inside a FIP image. - Update the documentation to reflect the above changes. Change-Id: I067c184afd52ccaa86569f13664757570c86fc48 --- include/plat/common/platform.h | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) (limited to 'include/plat/common') diff --git a/include/plat/common/platform.h b/include/plat/common/platform.h index c130ae78..1eeaac27 100644 --- a/include/plat/common/platform.h +++ b/include/plat/common/platform.h @@ -120,25 +120,42 @@ struct entry_point_info *bl2_plat_get_bl31_ep_info(void); void bl2_plat_flush_bl31_params(void); /* - * The next 3 functions allow the platform to change the entrypoint - * information for the 3rd level BL images, after BL2 has loaded the 3rd - * level BL images into memory but before BL3-1 is executed. + * The next 2 functions allow the platform to change the entrypoint information + * for the mandatory 3rd level BL images, BL3-1 and BL3-3. This is done after + * BL2 has loaded those images into memory but before BL3-1 is executed. */ void bl2_plat_set_bl31_ep_info(struct image_info *image, struct entry_point_info *ep); -void bl2_plat_set_bl32_ep_info(struct image_info *image, +void bl2_plat_set_bl33_ep_info(struct image_info *image, struct entry_point_info *ep); -void bl2_plat_set_bl33_ep_info(struct image_info *image, +/* Gets the memory layout for BL3-3 */ +void bl2_plat_get_bl33_meminfo(struct meminfo *mem_info); + +/******************************************************************************* + * Conditionally mandatory BL2 functions: must be implemented if BL3-0 image + * is supported + ******************************************************************************/ +/* Gets the memory layout for BL3-0 */ +void bl2_plat_get_bl30_meminfo(struct meminfo *mem_info); + +/* + * This function is called after loading BL3-0 image and it is used to perform + * any platform-specific actions required to handle the SCP firmware. + */ +int bl2_plat_handle_bl30(struct image_info *bl30_image_info); + +/******************************************************************************* + * Conditionally mandatory BL2 functions: must be implemented if BL3-2 image + * is supported + ******************************************************************************/ +void bl2_plat_set_bl32_ep_info(struct image_info *image, struct entry_point_info *ep); -/* Gets the memory layout for BL32 */ +/* Gets the memory layout for BL3-2 */ void bl2_plat_get_bl32_meminfo(struct meminfo *mem_info); -/* Gets the memory layout for BL33 */ -void bl2_plat_get_bl33_meminfo(struct meminfo *mem_info); - /******************************************************************************* * Optional BL2 functions (may be overridden) ******************************************************************************/ -- cgit v1.2.3