From c3fb00d93ee734e60dea4f13f7f7a80eadb9cfa9 Mon Sep 17 00:00:00 2001 From: Achin Gupta Date: Fri, 11 Oct 2019 15:50:43 +0100 Subject: [PATCH] SPMD: enable SPM dispatcher support This patch adds support to the build system to include support for the SPM dispatcher when the SPD configuration option is spmd. Signed-off-by: Achin Gupta Signed-off-by: Artsem Artsemenka Change-Id: Ic1ae50ecd7403fcbcf1d318abdbd6ebdc642f732 --- Makefile | 15 ++++++++++++--- bl31/bl31.mk | 1 + plat/arm/common/arm_common.mk | 7 +++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 5167d2e53..0d8ddd8e1 100644 --- a/Makefile +++ b/Makefile @@ -418,11 +418,20 @@ ifdef EL3_PAYLOAD_BASE $(warning "SPD and EL3_PAYLOAD_BASE are incompatible build options.") $(warning "The SPD and its BL32 companion will be present but ignored.") endif - # We expect to locate an spd.mk under the specified SPD directory - SPD_MAKE := $(wildcard services/spd/${SPD}/${SPD}.mk) + ifeq (${SPD},spmd) + # SPMD is located in std_svc directory + SPD_DIR := std_svc + else + # All other SPDs in spd directory + SPD_DIR := spd + endif + + # We expect to locate an spd.mk under the specified SPD directory + SPD_MAKE := $(wildcard services/${SPD_DIR}/${SPD}/${SPD}.mk) + ifeq (${SPD_MAKE},) - $(error Error: No services/spd/${SPD}/${SPD}.mk located) + $(error Error: No services/${SPD_DIR}/${SPD}/${SPD}.mk located) endif $(info Including ${SPD_MAKE}) include ${SPD_MAKE} diff --git a/bl31/bl31.mk b/bl31/bl31.mk index 58909e84a..0948e94e0 100644 --- a/bl31/bl31.mk +++ b/bl31/bl31.mk @@ -31,6 +31,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/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk index 9f4bc2107..d2578b777 100644 --- a/plat/arm/common/arm_common.mk +++ b/plat/arm/common/arm_common.mk @@ -265,6 +265,13 @@ PLAT_BL_COMMON_SOURCES += plat/arm/common/aarch64/arm_pauth.c \ lib/extensions/pauth/pauth_helpers.S endif +ifeq (${SPD},spmd) +BL31_SOURCES += plat/common/plat_spmd_manifest.c \ + common/fdt_wrappers.c \ + ${LIBFDT_SRCS} + +endif + ifneq (${TRUSTED_BOARD_BOOT},0) # Include common TBB sources