diff --git a/docs/secure-partition-manager-design.rst b/docs/secure-partition-manager-design.rst index 3dd1e0c..fec7c00 100644 --- a/docs/secure-partition-manager-design.rst +++ b/docs/secure-partition-manager-design.rst @@ -126,8 +126,7 @@ To enable SPM support in TF-A, the source code must be compiled with the build flag ``ENABLE_SPM=1``. On Arm platforms the build option ``ARM_BL31_IN_DRAM`` -can be used to select the location of BL31, both SRAM and DRAM are supported. -Also, the location of the binary that contains the BL32 image +must be set to 1. Also, the location of the binary that contains the BL32 image (``BL32=path/to/image.bin``) must be specified. First, build the Standalone MM Secure Partition. To build it, refer to the @@ -139,7 +138,7 @@ :: BL32=path/to/standalone/mm/sp BL33=path/to/bl33.bin \ - make PLAT=fvp ENABLE_SPM=1 fip all + make PLAT=fvp ENABLE_SPM=1 ARM_BL31_IN_DRAM=1 fip all Describing Secure Partition resources ------------------------------------- diff --git a/include/plat/arm/board/common/board_arm_def.h b/include/plat/arm/board/common/board_arm_def.h index 845f140..e9e1731 100644 --- a/include/plat/arm/board/common/board_arm_def.h +++ b/include/plat/arm/board/common/board_arm_def.h @@ -30,7 +30,9 @@ #elif defined(IMAGE_BL2U) # define PLATFORM_STACK_SIZE 0x200 #elif defined(IMAGE_BL31) -#ifdef PLAT_XLAT_TABLES_DYNAMIC +#if ENABLE_SPM +# define PLATFORM_STACK_SIZE 0x500 +#elif PLAT_XLAT_TABLES_DYNAMIC # define PLATFORM_STACK_SIZE 0x800 #else # define PLATFORM_STACK_SIZE 0x400 @@ -94,7 +96,11 @@ * PLAT_ARM_MAX_BL31_SIZE is calculated using the current BL31 debug size plus a * little space for growth. */ -#define PLAT_ARM_MAX_BL31_SIZE 0x20000 +#if ENABLE_SPM +# define PLAT_ARM_MAX_BL31_SIZE 0x40000 +#else +# define PLAT_ARM_MAX_BL31_SIZE 0x20000 +#endif #ifdef AARCH32 /* diff --git a/include/plat/arm/common/arm_spm_def.h b/include/plat/arm/common/arm_spm_def.h index 3f5c958..83277a6 100644 --- a/include/plat/arm/common/arm_spm_def.h +++ b/include/plat/arm/common/arm_spm_def.h @@ -98,12 +98,6 @@ /* Total number of memory regions with distinct properties */ #define ARM_SP_IMAGE_NUM_MEM_REGIONS 6 -/* - * Name of the section to put the translation tables used by the S-EL1/S-EL0 - * context of a Secure Partition. - */ -#define PLAT_SP_IMAGE_XLAT_SECTION_NAME "arm_el3_tzc_dram" - /* Cookies passed to the Secure Partition at boot. Not used by ARM platforms. */ #define PLAT_SPM_COOKIE_0 ULL(0) #define PLAT_SPM_COOKIE_1 ULL(0) diff --git a/plat/arm/board/fvp/platform.mk b/plat/arm/board/fvp/platform.mk index bb77538..2abd9e9 100644 --- a/plat/arm/board/fvp/platform.mk +++ b/plat/arm/board/fvp/platform.mk @@ -206,5 +206,11 @@ override BL1_SOURCES = endif +ifeq (${ENABLE_SPM},1) +ifneq (${ARM_BL31_IN_DRAM},1) + $(error "Error: SPM needs BL31 to be located in DRAM.") +endif +endif + include plat/arm/board/common/board_common.mk include plat/arm/common/arm_common.mk