diff --git a/Makefile b/Makefile index 47a544d..289fc00 100644 --- a/Makefile +++ b/Makefile @@ -938,13 +938,18 @@ 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 diff --git a/plat/arm/common/arm_bl2_setup.c b/plat/arm/common/arm_bl2_setup.c index d9fc84e..6c3f64f 100644 --- a/plat/arm/common/arm_bl2_setup.c +++ b/plat/arm/common/arm_bl2_setup.c @@ -205,7 +205,7 @@ ******************************************************************************/ 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)) { diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk index 65f6bf3..deecb3a 100644 --- a/plat/arm/common/arm_common.mk +++ b/plat/arm/common/arm_common.mk @@ -183,7 +183,9 @@ 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 diff --git a/plat/arm/common/arm_image_load.c b/plat/arm/common/arm_image_load.c index 593199d..ed7f1f5 100644 --- a/plat/arm/common/arm_image_load.c +++ b/plat/arm/common/arm_image_load.c @@ -32,11 +32,11 @@ 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 @@ ******************************************************************************/ 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();