Browse Source

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>
pull/2000/head
Stephan Gerhold 2 years ago
parent
commit
cd0786c73e
  1. 1
      bl32/sp_min/sp_min.mk
  2. 3
      plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk

1
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}

3
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

Loading…
Cancel
Save