aboutsummaryrefslogtreecommitdiff
path: root/bl31
diff options
context:
space:
mode:
authorPaul Beesley <paul.beesley@arm.com>2019-09-16 11:29:03 +0000
committerManish Pandey <manish.pandey2@arm.com>2019-12-20 16:03:02 +0000
commit3f3c341ae58321ec1b86162916d80b6db9187759 (patch)
tree827da02849f34af25a043b72170ce50dc2d36a57 /bl31
parentb8e17967bb4eaf0a28870ecb3f3b45a1e5479fe0 (diff)
downloadtrusted-firmware-a-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 'bl31')
-rw-r--r--bl31/bl31.ld.S2
-rw-r--r--bl31/bl31.mk20
2 files changed, 11 insertions, 11 deletions
diff --git a/bl31/bl31.ld.S b/bl31/bl31.ld.S
index 708ee329f4..a4be3b2345 100644
--- a/bl31/bl31.ld.S
+++ b/bl31/bl31.ld.S
@@ -142,7 +142,7 @@ SECTIONS
ASSERT(__CPU_OPS_END__ > __CPU_OPS_START__,
"cpu_ops not defined for this platform.")
-#if ENABLE_SPM
+#if ENABLE_SPM || SPM_MM
#ifndef SPM_SHIM_EXCEPTIONS_VMA
#define SPM_SHIM_EXCEPTIONS_VMA RAM
#endif
diff --git a/bl31/bl31.mk b/bl31/bl31.mk
index c9ba926c59..7ff054a7e5 100644
--- a/bl31/bl31.mk
+++ b/bl31/bl31.mk
@@ -5,22 +5,22 @@
#
################################################################################
-# Include SPM Makefile
+# Include Makefile for either of the supported SPM implementations
################################################################################
ifeq (${ENABLE_SPM},1)
- ifeq (${SPM_MM},1)
- ifeq (${EL3_EXCEPTION_HANDLING},0)
- $(error EL3_EXCEPTION_HANDLING must be 1 for SPM support)
- endif
- $(info Including makefile of SPM based on MM)
- include services/std_svc/spm_mm/spm.mk
+ $(info Including SPM (SPCI) makefile)
+ include services/std_svc/spm/spm.mk
+endif
+
+ifeq (${SPM_MM},1)
+ ifeq (${EL3_EXCEPTION_HANDLING},0)
+ $(error EL3_EXCEPTION_HANDLING must be 1 for SPM support)
else
- $(info Including SPM makefile)
- include services/std_svc/spm/spm.mk
+ $(info Including SPM Management Mode (MM) makefile)
+ include services/std_svc/spm_mm/spm.mk
endif
endif
-
include lib/psci/psci_lib.mk
BL31_SOURCES += bl31/bl31_main.c \