mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00

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>
50 lines
1.3 KiB
Makefile
50 lines
1.3 KiB
Makefile
#
|
|
# Copyright (c) 2017-2023, ARM Limited and Contributors. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
ifeq ($(STM32MP13),1)
|
|
$(error "SP_min is not supported on STM32MP13 platform")
|
|
endif
|
|
|
|
SP_MIN_WITH_SECURE_FIQ := 1
|
|
|
|
override ENABLE_PIE := 1
|
|
BL32_CFLAGS += -fpie -DENABLE_PIE
|
|
BL32_LDFLAGS += $(PIE_LDFLAGS)
|
|
|
|
BL32_CFLAGS += -DSTM32MP_SHARED_RESOURCES
|
|
|
|
BL32_SOURCES += drivers/st/etzpc/etzpc.c \
|
|
plat/common/aarch32/platform_mp_stack.S \
|
|
plat/st/stm32mp1/sp_min/sp_min_setup.c \
|
|
plat/st/stm32mp1/stm32mp1_pm.c \
|
|
plat/st/stm32mp1/stm32mp1_shared_resources.c \
|
|
plat/st/stm32mp1/stm32mp1_topology.c
|
|
|
|
# FDT wrappers
|
|
include common/fdt_wrappers.mk
|
|
BL32_SOURCES += ${FDT_WRAPPERS_SOURCES}
|
|
|
|
# Generic GIC v2
|
|
include drivers/arm/gic/v2/gicv2.mk
|
|
|
|
BL32_SOURCES += ${GICV2_SOURCES} \
|
|
plat/common/plat_gicv2.c \
|
|
plat/st/common/stm32mp_gic.c
|
|
|
|
# Generic PSCI
|
|
BL32_SOURCES += plat/common/plat_psci_common.c
|
|
|
|
# SCMI server drivers
|
|
BL32_SOURCES += drivers/scmi-msg/base.c \
|
|
drivers/scmi-msg/clock.c \
|
|
drivers/scmi-msg/entry.c \
|
|
drivers/scmi-msg/reset_domain.c \
|
|
drivers/scmi-msg/smt.c
|
|
|
|
# stm32mp1 specific services
|
|
BL32_SOURCES += plat/st/stm32mp1/services/bsec_svc.c \
|
|
plat/st/stm32mp1/services/stm32mp1_svc_setup.c \
|
|
plat/st/stm32mp1/stm32mp1_scmi.c
|