mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 02:24:18 +00:00
spmd: skip loading of secure partitions on pre-v8.4 platforms
When SPD=spmd and SPMD_SPM_AT_SEL2=0, that is SPMC sits at S-EL1 then there is no need for TF-A to load secure partitions individually. In this configuration, SPMC handles secure partition loading at S-EL1/EL0 levels. Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I06a0d88a4811274a8c347ce57b56bb5f64e345df
This commit is contained in:
parent
c979685271
commit
c33ff1985e
4 changed files with 14 additions and 7 deletions
9
Makefile
9
Makefile
|
@ -938,13 +938,18 @@ $(eval $(call add_define,USE_ARM_LINK))
|
|||
endif
|
||||
|
||||
# Generate and include sp_gen.mk if SPD is spmd and SP_LAYOUT_FILE is defined
|
||||
ifdef SP_LAYOUT_FILE
|
||||
ifeq (${SPD},spmd)
|
||||
ifdef SP_LAYOUT_FILE
|
||||
ifeq (${SPMD_SPM_AT_SEL2},0)
|
||||
$(error "SPMD with SPM at S-EL1 does not require SP_LAYOUT_FILE")
|
||||
endif
|
||||
-include $(BUILD_PLAT)/sp_gen.mk
|
||||
FIP_DEPS += sp
|
||||
NEED_SP_PKG := yes
|
||||
else
|
||||
$(error "SP_LAYOUT_FILE will be used only if SPD=spmd")
|
||||
ifeq (${SPMD_SPM_AT_SEL2},1)
|
||||
$(error "SPMD with SPM at S-EL2 require SP_LAYOUT_FILE")
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
|
|
@ -205,7 +205,7 @@ int arm_bl2_handle_post_image_load(unsigned int image_id)
|
|||
******************************************************************************/
|
||||
int arm_bl2_plat_handle_post_image_load(unsigned int image_id)
|
||||
{
|
||||
#if defined(SPD_spmd)
|
||||
#if defined(SPD_spmd) && SPMD_SPM_AT_SEL2
|
||||
/* For Secure Partitions we don't need post processing */
|
||||
if ((image_id >= (MAX_NUMBER_IDS - MAX_SP_IDS)) &&
|
||||
(image_id < MAX_NUMBER_IDS)) {
|
||||
|
|
|
@ -183,7 +183,9 @@ else
|
|||
ARM_IO_SOURCES += plat/arm/common/arm_fconf_io_storage.c \
|
||||
plat/arm/common/fconf/arm_fconf_io.c
|
||||
ifeq (${SPD},spmd)
|
||||
ARM_IO_SOURCES += plat/arm/common/fconf/arm_fconf_sp.c
|
||||
ifeq (${SPMD_SPM_AT_SEL2},1)
|
||||
ARM_IO_SOURCES += plat/arm/common/fconf/arm_fconf_sp.c
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
|
|
@ -32,11 +32,11 @@ void plat_flush_next_bl_params(void)
|
|||
next_bl_params_cpy_ptr);
|
||||
}
|
||||
|
||||
#if defined(SPD_spmd)
|
||||
#if defined(SPD_spmd) && SPMD_SPM_AT_SEL2
|
||||
/*******************************************************************************
|
||||
* This function appends Secure Partitions to list of loadable images.
|
||||
******************************************************************************/
|
||||
void plat_add_sp_images_load_info(struct bl_load_info *load_info)
|
||||
static void plat_add_sp_images_load_info(struct bl_load_info *load_info)
|
||||
{
|
||||
bl_load_info_node_t *node_info = load_info->head;
|
||||
unsigned int index = 0;
|
||||
|
@ -78,7 +78,7 @@ void plat_add_sp_images_load_info(struct bl_load_info *load_info)
|
|||
******************************************************************************/
|
||||
struct bl_load_info *plat_get_bl_image_load_info(void)
|
||||
{
|
||||
#if defined(SPD_spmd)
|
||||
#if defined(SPD_spmd) && SPMD_SPM_AT_SEL2
|
||||
bl_load_info_t *bl_load_info;
|
||||
|
||||
bl_load_info = get_bl_load_info_from_mem_params_desc();
|
||||
|
|
Loading…
Add table
Reference in a new issue