diff options
author | Paul Beesley <paul.beesley@arm.com> | 2019-09-16 11:29:03 +0000 |
---|---|---|
committer | Manish Pandey <manish.pandey2@arm.com> | 2019-12-20 16:03:02 +0000 |
commit | 3f3c341ae58321ec1b86162916d80b6db9187759 (patch) | |
tree | 827da02849f34af25a043b72170ce50dc2d36a57 /include | |
parent | b8e17967bb4eaf0a28870ecb3f3b45a1e5479fe0 (diff) | |
download | arm-trusted-firmware-3f3c341ae58321ec1b86162916d80b6db9187759.tar.gz |
Remove dependency between SPM_MM and ENABLE_SPM build flags
There are two different implementations of Secure Partition
management in TF-A. One is based on the "Management Mode" (MM)
design, the other is based on the Secure Partition Client Interface
(SPCI) specification. Currently there is a dependency between their
build flags that shouldn't exist, making further development
harder than it should be. This patch removes that
dependency, making the two flags function independently.
Before: ENABLE_SPM=1 is required for using either implementation.
By default, the SPCI-based implementation is enabled and
this is overridden if SPM_MM=1.
After: ENABLE_SPM=1 enables the SPCI-based implementation.
SPM_MM=1 enables the MM-based implementation.
The two build flags are mutually exclusive.
Note that the name of the ENABLE_SPM flag remains a bit
ambiguous - this will be improved in a subsequent patch. For this
patch the intention was to leave the name as-is so that it is
easier to track the changes that were made.
Change-Id: I8e64ee545d811c7000f27e8dc8ebb977d670608a
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/plat/arm/common/arm_def.h | 4 | ||||
-rw-r--r-- | include/plat/arm/common/plat_arm.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/include/plat/arm/common/arm_def.h b/include/plat/arm/common/arm_def.h index 941190fdc..8095bed70 100644 --- a/include/plat/arm/common/arm_def.h +++ b/include/plat/arm/common/arm_def.h @@ -500,9 +500,9 @@ * SPD and no SPM, as they are the only ones that can be used as BL32. */ #if defined(__aarch64__) && !JUNO_AARCH32_EL3_RUNTIME -# if defined(SPD_none) && !ENABLE_SPM +# if defined(SPD_none) && !ENABLE_SPM && !SPM_MM # undef BL32_BASE -# endif /* defined(SPD_none) && !ENABLE_SPM */ +# endif /* defined(SPD_none) && !ENABLE_SPM && !SPM_MM*/ #endif /* defined(__aarch64__) && !JUNO_AARCH32_EL3_RUNTIME */ /******************************************************************************* diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h index c00a04126..02feec708 100644 --- a/include/plat/arm/common/plat_arm.h +++ b/include/plat/arm/common/plat_arm.h @@ -38,7 +38,7 @@ typedef struct arm_tzc_regions_info { * - Region 1 with secure access only; * - the remaining DRAM regions access from the given Non-Secure masters. ******************************************************************************/ -#if ENABLE_SPM && SPM_MM +#if SPM_MM #define ARM_TZC_REGIONS_DEF \ {ARM_AP_TZC_DRAM1_BASE, ARM_EL3_TZC_DRAM1_END, \ TZC_REGION_S_RDWR, 0}, \ |