summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Gerhold <stephan@gerhold.net>2023-03-14 11:15:05 +0100
committerStephan Gerhold <stephan@gerhold.net>2023-08-04 16:02:59 +0200
commitcd0786c73e536a1d2507d77ce49e2ae2b8ee71a1 (patch)
tree080413b69e49f71f946ffcfd3d8736583a1fbb38
parentd1f2748ed25748237e894c68c5a163326a8c33b9 (diff)
fix(bl32): always include arm_arch_svc in SP_MIN
The PSCI_FEATURES call implementation in TF-A always indicates support for SMCCC_VERSION, but only BL31 ensures that the corresponding Arm Architecture Service (arm_arch_svc) is really included in the build. For SP_MIN only stm32mp1 currently includes it in the platform-specific make file. This means that it is easily possible to build configurations that violate the PSCI/SMCCC specification. On Linux this leads to incorrect detection of the SMC Calling Convention when using SP_MIN: [ 0.000000] psci: SMC Calling Convention v65535.65535 Fix this by always including the Arm Architecture Service in SP_MIN builds. This allows Linux to detect the convention correctly: [ 0.000000] psci: SMC Calling Convention v1.4 Change-Id: Iaa3076c162b7a55633ec1e27eb5c44d22f8eb2a1 Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
-rw-r--r--bl32/sp_min/sp_min.mk1
-rw-r--r--plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk3
2 files changed, 1 insertions, 3 deletions
diff --git a/bl32/sp_min/sp_min.mk b/bl32/sp_min/sp_min.mk
index 0b7bc5763..065468c58 100644
--- a/bl32/sp_min/sp_min.mk
+++ b/bl32/sp_min/sp_min.mk
@@ -17,6 +17,7 @@ BL32_SOURCES += bl32/sp_min/sp_min_main.c \
bl32/sp_min/aarch32/entrypoint.S \
common/runtime_svc.c \
plat/common/aarch32/plat_sp_min_common.c\
+ services/arm_arch_svc/arm_arch_svc_setup.c \
services/std_svc/std_svc_setup.c \
${PSCI_LIB_SOURCES}
diff --git a/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk b/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk
index f5184e749..9695c9ba3 100644
--- a/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk
+++ b/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk
@@ -48,6 +48,3 @@ BL32_SOURCES += drivers/scmi-msg/base.c \
BL32_SOURCES += plat/st/stm32mp1/services/bsec_svc.c \
plat/st/stm32mp1/services/stm32mp1_svc_setup.c \
plat/st/stm32mp1/stm32mp1_scmi.c
-
-# Arm Archtecture services
-BL32_SOURCES += services/arm_arch_svc/arm_arch_svc_setup.c