Merge "spmd: skip loading of secure partitions on pre-v8.4 platforms" into integration

This commit is contained in:
Alexei Fedorov 2020-03-24 11:06:08 +00:00 committed by TrustedFirmware Code Review
commit 0d5864d91e
4 changed files with 14 additions and 7 deletions

View File

@ -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

View File

@ -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)) {

View File

@ -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

View File

@ -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();