diff options
author | Yatharth Kochar <yatharth.kochar@arm.com> | 2016-09-13 17:07:57 +0100 |
---|---|---|
committer | Yatharth Kochar <yatharth.kochar@arm.com> | 2016-09-21 16:12:48 +0100 |
commit | a8aa7fec1d4a6df8617c0d0463f1e10f1827a609 (patch) | |
tree | 55db8f068970ed4859cf8c57c973c6b98a364567 /include | |
parent | 42019bf4e93a111984af9dc44608d8d5203a3b1d (diff) |
ARM platform changes for new version of image loading
This patch adds changes in ARM platform code to use new
version of image loading.
Following are the major changes:
-Refactor the signatures for bl31_early_platform_setup()
and arm_bl31_early_platform_setup() function to use
`void *` instead of `bl31_params_t *`.
-Introduce `plat_arm_bl2_handle_scp_bl2()` to handle
loading of SCP_BL2 image from BL2.
-Remove usage of reserve_mem() function from
`arm_bl1_early_platform_setup()`
-Extract BL32 & BL33 entrypoint info, from the link list
passed by BL2, in `arm_bl31_early_platform_setup()`
-Provides weak definitions for following platform functions:
plat_get_bl_image_load_info
plat_get_next_bl_params
plat_flush_next_bl_params
bl2_plat_handle_post_image_load
-Instantiates a descriptor array for ARM platforms
describing image and entrypoint information for
`SCP_BL2`, `BL31`, `BL32` and `BL33` images.
All the above changes are conditionally compiled using the
`LOAD_IMAGE_V2` flag.
Change-Id: I5e88b9785a3df1a2b2bbbb37d85b8e353ca61049
Diffstat (limited to 'include')
-rw-r--r-- | include/plat/arm/common/plat_arm.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h index d2e8729b..581573b2 100644 --- a/include/plat/arm/common/plat_arm.h +++ b/include/plat/arm/common/plat_arm.h @@ -42,6 +42,7 @@ ******************************************************************************/ struct bl31_params; struct meminfo; +struct image_info; #define ARM_CASSERT_MMAP \ CASSERT((ARRAY_SIZE(plat_arm_mmap) + ARM_BL_REGIONS) \ @@ -164,8 +165,13 @@ void arm_bl2u_platform_setup(void); void arm_bl2u_plat_arch_setup(void); /* BL31 utility functions */ +#if LOAD_IMAGE_V2 +void arm_bl31_early_platform_setup(void *from_bl2, + void *plat_params_from_bl2); +#else void arm_bl31_early_platform_setup(struct bl31_params *from_bl2, void *plat_params_from_bl2); +#endif /* LOAD_IMAGE_V2 */ void arm_bl31_platform_setup(void); void arm_bl31_plat_runtime_setup(void); void arm_bl31_plat_arch_setup(void); @@ -194,6 +200,14 @@ void plat_arm_interconnect_init(void); void plat_arm_interconnect_enter_coherency(void); void plat_arm_interconnect_exit_coherency(void); +#if LOAD_IMAGE_V2 +/* + * This function is called after loading SCP_BL2 image and it is used to perform + * any platform-specific actions required to handle the SCP firmware. + */ +int plat_arm_bl2_handle_scp_bl2(struct image_info *scp_bl2_image_info); +#endif + /* * Optional functions required in ARM standard platforms */ |