summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Guittot <vincent.guittot@linaro.org>2023-11-28 15:52:21 +0100
committerVincent Guittot <vincent.guittot@linaro.org>2024-02-09 09:58:51 +0100
commit2ea7a07db77131a0f7e4291fe7e695a19384c28a (patch)
tree959e4130fec3b1f66114226857f08074372a26b1
parentd02b394e6544ea9c457094b2ccc81a92cdabde85 (diff)
Include scmi compilation entry
Include scmi compilation. Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
-rw-r--r--Makefile44
-rw-r--r--plat/arm/fvp/platform.mk6
2 files changed, 48 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 90f8037..b9bb8b6 100644
--- a/Makefile
+++ b/Makefile
@@ -144,6 +144,7 @@ endif
ifeq (${ARCH}-${PLAT},$(filter ${ARCH}-${PLAT},aarch64-fvp aarch64-tc))
include spm/cactus/cactus.mk
include spm/ivy/ivy.mk
+include spm/scmi/cactus.mk
endif
################################################################################
@@ -312,6 +313,7 @@ NS_BL1U_CFLAGS += -mbranch-protection=${BP_OPTION}
NS_BL2U_CFLAGS += -mbranch-protection=${BP_OPTION}
CACTUS_MM_CFLAGS += -mbranch-protection=${BP_OPTION}
CACTUS_CFLAGS += -mbranch-protection=${BP_OPTION}
+SCMI_CFLAGS += -mbranch-protection=${BP_OPTION}
IVY_CFLAGS += -mbranch-protection=${BP_OPTION}
REALM_CFLAGS += -mbranch-protection=${BP_OPTION}
endif
@@ -352,6 +354,12 @@ CACTUS_CFLAGS += ${COMMON_CFLAGS} -fpie
CACTUS_ASFLAGS += ${COMMON_ASFLAGS}
CACTUS_LDFLAGS += ${COMMON_LDFLAGS} $(PIE_LDFLAGS)
+#SCMI_SOURCES += ${LIBC_SRCS}
+#SCMI_INCLUDES += ${PLAT_INCLUDES}
+SCMI_CFLAGS += ${COMMON_CFLAGS} -fpie
+SCMI_ASFLAGS += ${COMMON_ASFLAGS}
+SCMI_LDFLAGS += ${COMMON_LDFLAGS} $(PIE_LDFLAGS)
+
IVY_SOURCES += ${LIBC_SRCS}
IVY_INCLUDES += ${PLAT_INCLUDES}
IVY_CFLAGS += ${COMMON_CFLAGS} -fpie
@@ -452,6 +460,11 @@ cactus:
@echo "ERROR: $@ is supported only on AArch64 FVP or TC."
@exit 1
+.PHONY: scmi
+scmi:
+ @echo "ERROR: $@ is supported only on AArch64 FVP or TC."
+ @exit 1
+
.PHONY: ivy
ivy:
@echo "ERROR: $@ is supported only on AArch64 FVP or TC."
@@ -546,8 +559,9 @@ $(ELF) : $(OBJS) $(LINKERFILE)
@echo 'const char build_message[] = "Built : "__TIME__", "__DATE__; \
const char version_string[] = "${VERSION_STRING}";' | \
$$(CC) $$(${IMG_PREFIX}_CFLAGS) ${${IMG_PREFIX}_INCLUDES} ${${IMG_PREFIX}_DEFINES} -c -xc - -o $(BUILD_DIR)/build_message.o
- $$(Q)$$(LD) -o $$@ $$(${IMG_PREFIX}_LDFLAGS) -Map=$(MAPFILE) \
- -T $(LINKERFILE) $(BUILD_DIR)/build_message.o $(OBJS)
+ $$(Q)$$(LD) -o $$@ -Map=$(MAPFILE) \
+ -T $(LINKERFILE) $(BUILD_DIR)/build_message.o $(OBJS) \
+ $$(${IMG_PREFIX}_LDFLAGS)
$(DUMP) : $(ELF)
@echo " OD $$@"
@@ -567,6 +581,28 @@ all : $(1)
endef
+define COPY_IMG
+ $(eval IMG_PREFIX := $(call uppercase, $(1)))
+ $(eval BUILD_DIR := ${BUILD_PLAT}/$(1))
+ $(eval BIN := $(BUILD_PLAT)/$(1).bin)
+
+$(BUILD_DIR) :
+ $$(Q)mkdir -p "$$@"
+
+$(BIN) :
+ @echo " BIN $$@"
+ cp ${EXTERNAL_SCMI}/scmi.bin $$@
+ cp ${EXTERNAL_SCMI}/scmi.dtb ${BUILD_PLAT}/
+ cp ${EXTERNAL_SCMI}/scmi.dts ${BUILD_PLAT}/
+ @echo
+ @echo "Built $$@ successfully"
+ @echo
+
+.PHONY : $(1)
+$(1) : $(BUILD_DIR) $(BIN)
+
+endef
+
ifeq (${ARCH},aarch32)
ARCH_TESTS_SKIP_LIST := tftf/tests/aarch32_tests_to_skip.txt
endif
@@ -596,6 +632,10 @@ endif
ifeq (${ARCH}-${PLAT},aarch64-fvp)
$(eval $(call MAKE_IMG,cactus_mm))
$(eval $(call MAKE_IMG,cactus))
+ $(eval $(call MAKE_IMG,scmi))
+ifneq (${EXTERNAL_SCMI},)
+ $(eval $(call COPY_IMG,scmi))
+endif
$(eval $(call MAKE_IMG,ivy))
endif
diff --git a/plat/arm/fvp/platform.mk b/plat/arm/fvp/platform.mk
index 28bac18..d7d69ee 100644
--- a/plat/arm/fvp/platform.mk
+++ b/plat/arm/fvp/platform.mk
@@ -60,6 +60,10 @@ $(eval $(call add_define,CACTUS_DEFINES,FVP_CLUSTER_COUNT))
$(eval $(call add_define,CACTUS_DEFINES,FVP_MAX_CPUS_PER_CLUSTER))
$(eval $(call add_define,CACTUS_DEFINES,FVP_MAX_PE_PER_CPU))
+$(eval $(call add_define,SCMI_DEFINES,FVP_CLUSTER_COUNT))
+$(eval $(call add_define,SCMI_DEFINES,FVP_MAX_CPUS_PER_CLUSTER))
+$(eval $(call add_define,SCMI_DEFINES,FVP_MAX_PE_PER_CPU))
+
$(eval $(call add_define,CACTUS_MM_DEFINES,FVP_CLUSTER_COUNT))
$(eval $(call add_define,CACTUS_MM_DEFINES,FVP_MAX_CPUS_PER_CLUSTER))
$(eval $(call add_define,CACTUS_MM_DEFINES,FVP_MAX_PE_PER_CPU))
@@ -84,6 +88,7 @@ $(eval $(call add_define,TFTF_DEFINES,FVP_MAX_PE_PER_CPU))
PA_SIZE := 36
$(eval $(call add_define,CACTUS_DEFINES,PA_SIZE))
+$(eval $(call add_define,SCMI_DEFINES,PA_SIZE))
$(eval $(call add_define,IVY_DEFINES,PA_SIZE))
$(eval $(call add_define,NS_BL1U_DEFINES,PA_SIZE))
$(eval $(call add_define,NS_BL2U_DEFINES,PA_SIZE))
@@ -105,6 +110,7 @@ PLAT_SOURCES := drivers/arm/gic/arm_gic_v2v3.c \
plat/arm/fvp/plat_setup.c
CACTUS_SOURCES += plat/arm/fvp/${ARCH}/plat_helpers.S
+#SCMI_SOURCES += plat/arm/fvp/${ARCH}/plat_helpers.S
IVY_SOURCES += plat/arm/fvp/${ARCH}/plat_helpers.S
# Firmware update is implemented on FVP.