aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchin Gupta <achin.gupta@arm.com>2019-10-11 15:50:43 +0100
committerAchin Gupta <achin.gupta@arm.com>2019-10-28 14:23:35 +0000
commitdd06a5a43a123e9ffb9319eb59332c7f839572a3 (patch)
tree0d2eec231742e1bf6d56b052040a666a078a973a
parentaf3fef474909018e1f6ed3631606af128f350d5d (diff)
downloadtrusted-firmware-a-dd06a5a43a123e9ffb9319eb59332c7f839572a3.tar.gz
SPMD: enable SPM dispatcher support
This patch adds support to the build system to include support for the SPM dispatcher when the ENABLE_SPMD configuration option is 1. Signed-off-by: Achin Gupta <achin.gupta@arm.com>
-rw-r--r--Makefile2
-rw-r--r--bl31/bl31.mk9
-rw-r--r--make_helpers/defaults.mk3
-rw-r--r--plat/arm/common/arm_common.mk11
4 files changed, 25 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 721246d518..80c7421b09 100644
--- a/Makefile
+++ b/Makefile
@@ -673,6 +673,7 @@ $(eval $(call assert_boolean,ENABLE_PSCI_STAT))
$(eval $(call assert_boolean,ENABLE_RUNTIME_INSTRUMENTATION))
$(eval $(call assert_boolean,ENABLE_SPE_FOR_LOWER_ELS))
$(eval $(call assert_boolean,ENABLE_SPM))
+$(eval $(call assert_boolean,ENABLE_SPMD))
$(eval $(call assert_boolean,ENABLE_SVE_FOR_NS))
$(eval $(call assert_boolean,ERROR_DEPRECATED))
$(eval $(call assert_boolean,FAULT_INJECTION_SUPPORT))
@@ -738,6 +739,7 @@ $(eval $(call add_define,ENABLE_PSCI_STAT))
$(eval $(call add_define,ENABLE_RUNTIME_INSTRUMENTATION))
$(eval $(call add_define,ENABLE_SPE_FOR_LOWER_ELS))
$(eval $(call add_define,ENABLE_SPM))
+$(eval $(call add_define,ENABLE_SPMD))
$(eval $(call add_define,ENABLE_SVE_FOR_NS))
$(eval $(call add_define,ERROR_DEPRECATED))
$(eval $(call add_define,FAULT_INJECTION_SUPPORT))
diff --git a/bl31/bl31.mk b/bl31/bl31.mk
index c9ba926c59..f9d481f8c0 100644
--- a/bl31/bl31.mk
+++ b/bl31/bl31.mk
@@ -20,6 +20,14 @@ ifeq (${ENABLE_SPM},1)
endif
endif
+################################################################################
+# Include SPMD Makefile
+################################################################################
+ifeq (${ENABLE_SPMD},1)
+ $(info Including SPMD makefile)
+ include services/std_svc/spmd/spmd.mk
+endif
+
include lib/psci/psci_lib.mk
@@ -36,6 +44,7 @@ BL31_SOURCES += bl31/bl31_main.c \
services/arm_arch_svc/arm_arch_svc_setup.c \
services/std_svc/std_svc_setup.c \
${PSCI_LIB_SOURCES} \
+ ${SPMD_SOURCES} \
${SPM_SOURCES}
diff --git a/make_helpers/defaults.mk b/make_helpers/defaults.mk
index b7fb173b16..30a49712e5 100644
--- a/make_helpers/defaults.mk
+++ b/make_helpers/defaults.mk
@@ -184,6 +184,9 @@ ENABLE_SPM := 0
# Use the SPM based on MM
SPM_MM := 1
+# For including the Secure Partition Manager dispatcher
+ENABLE_SPMD := 0
+
# Flag to introduce an infinite loop in BL1 just before it exits into the next
# image. This is meant to help debugging the post-BL2 phase.
SPIN_ON_BL1_EXIT := 0
diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk
index a4a29bf74a..0a246edaa8 100644
--- a/plat/arm/common/arm_common.mk
+++ b/plat/arm/common/arm_common.mk
@@ -248,6 +248,17 @@ BL31_SOURCES += common/fdt_wrappers.c \
endif
endif
+ifeq (${ENABLE_SPMD},1)
+ ifeq (${ENABLE_SPM},1)
+ $(error "ENABLE_SPMD must be enabled only when ENABLE_SPM is not enabled")
+ endif
+
+BL31_SOURCES += plat/common/plat_spmd_manifest.c \
+ common/fdt_wrappers.c \
+ ${LIBFDT_SRCS}
+
+endif
+
ifneq (${TRUSTED_BOARD_BOOT},0)
# Include common TBB sources