refactor(smccc): refactor vendor-el3 build

Currently we are building vendor-specific EL3 by default similar to
arm-sip but unfortunately this causes few troubles for now.

- Few model builds configuration like 'fvp-dynamiq-aarch64-only'
  is on 256KB SRAM border and this configuration is also run on some
  older models like A710 and N2, so we cant move them to 384KB SRAM size
  and to new model.

- Not able to move some older model builds to new model due to known
  issue in power modelling in some of the models, making it difficult to
  transition.

However vendor-specific EL3 is currently using PMF, DEBUGFS so building
the vendor EL3 support only when any of this sub-service is built also
helps to avoid bloating BL31 image size in certain configurations.

However this is not end of road, we will monitor how vendor-specific EL3
grows with sub-service and if needed will make this interface to built
by default like arm-sip range. Also this doesn't stop platform owners to
make vendor-specific EL3 to be enabled by default for their platform
configuration.

Change-Id: I23322574bdeb7179441a580ad4f093216a948bbf
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
This commit is contained in:
Govindraj Raja 2024-05-01 12:23:47 -05:00
parent 320fb2939b
commit 3c225878ee
2 changed files with 8 additions and 5 deletions

View file

@ -45,7 +45,6 @@ BL31_SOURCES += bl31/bl31_main.c \
lib/cpus/aarch64/dsu_helpers.S \ lib/cpus/aarch64/dsu_helpers.S \
plat/common/aarch64/platform_mp_stack.S \ plat/common/aarch64/platform_mp_stack.S \
services/arm_arch_svc/arm_arch_svc_setup.c \ services/arm_arch_svc/arm_arch_svc_setup.c \
services/el3/ven_el3_svc.c \
services/std_svc/std_svc_setup.c \ services/std_svc/std_svc_setup.c \
${PSCI_LIB_SOURCES} \ ${PSCI_LIB_SOURCES} \
${SPMD_SOURCES} \ ${SPMD_SOURCES} \
@ -53,13 +52,17 @@ BL31_SOURCES += bl31/bl31_main.c \
${SPMC_SOURCES} \ ${SPMC_SOURCES} \
${SPM_SOURCES} ${SPM_SOURCES}
VENDOR_EL3_SRCS += services/el3/ven_el3_svc.c
ifeq (${ENABLE_PMF}, 1) ifeq (${ENABLE_PMF}, 1)
BL31_SOURCES += lib/pmf/pmf_main.c BL31_SOURCES += lib/pmf/pmf_main.c \
${VENDOR_EL3_SRCS}
endif endif
include lib/debugfs/debugfs.mk include lib/debugfs/debugfs.mk
ifeq (${USE_DEBUGFS},1) ifeq (${USE_DEBUGFS},1)
BL31_SOURCES += $(DEBUGFS_SRCS) BL31_SOURCES += ${DEBUGFS_SRCS} \
${VENDOR_EL3_SRCS}
endif endif
ifeq (${PLATFORM_REPORT_CTX_MEM_USE},1) ifeq (${PLATFORM_REPORT_CTX_MEM_USE},1)

View file

@ -18,12 +18,12 @@ BL32_SOURCES += bl32/sp_min/sp_min_main.c \
common/runtime_svc.c \ common/runtime_svc.c \
plat/common/aarch32/plat_sp_min_common.c \ plat/common/aarch32/plat_sp_min_common.c \
services/arm_arch_svc/arm_arch_svc_setup.c \ services/arm_arch_svc/arm_arch_svc_setup.c \
services/el3/ven_el3_svc.c \
services/std_svc/std_svc_setup.c \ services/std_svc/std_svc_setup.c \
${PSCI_LIB_SOURCES} ${PSCI_LIB_SOURCES}
ifeq (${ENABLE_PMF}, 1) ifeq (${ENABLE_PMF}, 1)
BL32_SOURCES += lib/pmf/pmf_main.c BL32_SOURCES += services/el3/ven_el3_svc.c \
lib/pmf/pmf_main.c
endif endif
ifneq (${ENABLE_FEAT_AMU},0) ifneq (${ENABLE_FEAT_AMU},0)