From 1fa05dab070274eede406a5c33bb00b4c5a81fd0 Mon Sep 17 00:00:00 2001 From: Chris Kay Date: Tue, 28 Sep 2021 15:52:14 +0100 Subject: [PATCH] build(fdt-wrappers): introduce FDT wrappers makefile This has been introduced to simplify dependencies on the FDT wrappers. We generally want to avoid pulling in components on a file-by-file basis, particularly as we are trying to draw conceptual boxes around components in preparation for transitioning the build system to CMake, where dependencies are modelled on libraries rather than files. Signed-off-by: Chris Kay Change-Id: Idb7ee05a9b54a8caa3e07f36e608867e20b6dcd5 --- common/fdt_wrappers.mk | 7 +++++++ plat/arm/board/a5ds/platform.mk | 8 +++++--- plat/arm/board/arm_fpga/platform.mk | 6 ++++-- plat/arm/board/fvp/platform.mk | 7 +++++-- plat/arm/board/fvp/sp_min/sp_min-fvp.mk | 9 ++++++--- plat/arm/board/fvp_ve/platform.mk | 8 +++++--- plat/arm/board/juno/platform.mk | 5 ++++- plat/arm/board/tc/platform.mk | 5 ++++- plat/arm/common/arm_common.mk | 7 +++++-- plat/nvidia/tegra/soc/t194/platform_t194.mk | 8 +++++--- plat/qemu/qemu_sbsa/platform.mk | 8 ++++++-- plat/st/stm32mp1/platform.mk | 6 ++++-- 12 files changed, 60 insertions(+), 24 deletions(-) create mode 100644 common/fdt_wrappers.mk diff --git a/common/fdt_wrappers.mk b/common/fdt_wrappers.mk new file mode 100644 index 000000000..62b8c6e70 --- /dev/null +++ b/common/fdt_wrappers.mk @@ -0,0 +1,7 @@ +# +# Copyright (c) 2021, Arm Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-3-Clause +# + +FDT_WRAPPERS_SOURCES := common/fdt_wrappers.c diff --git a/plat/arm/board/a5ds/platform.mk b/plat/arm/board/a5ds/platform.mk index 8b0dc5cf3..88c92bd89 100644 --- a/plat/arm/board/a5ds/platform.mk +++ b/plat/arm/board/a5ds/platform.mk @@ -1,18 +1,20 @@ # -# Copyright (c) 2019-2020, Arm Limited. All rights reserved. +# Copyright (c) 2019-2021, Arm Limited. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # # Firmware Configuration Framework sources +include common/fdt_wrappers.mk include lib/fconf/fconf.mk # Add `libfdt` and Arm common helpers required for Dynamic Config include lib/libfdt/libfdt.mk DYN_CFG_SOURCES += plat/arm/common/arm_dyn_cfg.c \ - plat/arm/common/arm_dyn_cfg_helpers.c \ - common/fdt_wrappers.c + plat/arm/common/arm_dyn_cfg_helpers.c + +DYN_CFG_SOURCES += ${FDT_WRAPPERS_SOURCES} # Include GICv2 driver files include drivers/arm/gic/v2/gicv2.mk diff --git a/plat/arm/board/arm_fpga/platform.mk b/plat/arm/board/arm_fpga/platform.mk index 901fabf37..084532ce2 100644 --- a/plat/arm/board/arm_fpga/platform.mk +++ b/plat/arm/board/arm_fpga/platform.mk @@ -4,6 +4,7 @@ # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk include lib/libfdt/libfdt.mk RESET_TO_BL31 := 1 @@ -104,8 +105,7 @@ PLAT_INCLUDES := -Iplat/arm/board/arm_fpga/include PLAT_BL_COMMON_SOURCES := plat/arm/board/arm_fpga/${ARCH}/fpga_helpers.S -BL31_SOURCES += common/fdt_wrappers.c \ - common/fdt_fixup.c \ +BL31_SOURCES += common/fdt_fixup.c \ drivers/delay_timer/delay_timer.c \ drivers/delay_timer/generic_delay_timer.c \ drivers/arm/pl011/${ARCH}/pl011_console.S \ @@ -117,6 +117,8 @@ BL31_SOURCES += common/fdt_wrappers.c \ ${FPGA_CPU_LIBS} \ ${FPGA_GIC_SOURCES} +BL31_SOURCES += ${FDT_WRAPPERS_SOURCES} + $(eval $(call MAKE_S,$(BUILD_PLAT),plat/arm/board/arm_fpga/rom_trampoline.S,bl31)) $(eval $(call MAKE_S,$(BUILD_PLAT),plat/arm/board/arm_fpga/kernel_trampoline.S,bl31)) $(eval $(call MAKE_LD,$(BUILD_PLAT)/build_axf.ld,plat/arm/board/arm_fpga/build_axf.ld.S,bl31)) diff --git a/plat/arm/board/fvp/platform.mk b/plat/arm/board/fvp/platform.mk index fd27acb58..0d2c31971 100644 --- a/plat/arm/board/fvp/platform.mk +++ b/plat/arm/board/fvp/platform.mk @@ -4,6 +4,8 @@ # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk + # Use the GICv3 driver on the FVP by default FVP_USE_GIC_DRIVER := FVP_GICV3 @@ -228,11 +230,12 @@ BL31_SOURCES += drivers/arm/fvp/fvp_pwrc.c \ # Support for fconf in BL31 # Added separately from the above list for better readability ifeq ($(filter 1,${BL2_AT_EL3} ${RESET_TO_BL31}),) -BL31_SOURCES += common/fdt_wrappers.c \ - lib/fconf/fconf.c \ +BL31_SOURCES += lib/fconf/fconf.c \ lib/fconf/fconf_dyn_cfg_getter.c \ plat/arm/board/fvp/fconf/fconf_hw_config_getter.c +BL31_SOURCES += ${FDT_WRAPPERS_SOURCES} + ifeq (${SEC_INT_DESC_IN_FCONF},1) BL31_SOURCES += plat/arm/common/fconf/fconf_sec_intr_config.c endif diff --git a/plat/arm/board/fvp/sp_min/sp_min-fvp.mk b/plat/arm/board/fvp/sp_min/sp_min-fvp.mk index 64cb7add5..0d8cca597 100644 --- a/plat/arm/board/fvp/sp_min/sp_min-fvp.mk +++ b/plat/arm/board/fvp/sp_min/sp_min-fvp.mk @@ -1,9 +1,11 @@ # -# Copyright (c) 2016-2020, ARM Limited and Contributors. All rights reserved. +# Copyright (c) 2016-2021, ARM Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk + # SP_MIN source files specific to FVP platform BL32_SOURCES += drivers/arm/fvp/fvp_pwrc.c \ drivers/cfi/v2m/v2m_flash.c \ @@ -22,10 +24,11 @@ BL32_SOURCES += drivers/arm/fvp/fvp_pwrc.c \ # Support for fconf in SP_MIN(BL32) # Added separately from the above list for better readability ifeq ($(filter 1,${BL2_AT_EL3} ${RESET_TO_SP_MIN}),) -BL32_SOURCES += common/fdt_wrappers.c \ - lib/fconf/fconf.c \ +BL32_SOURCES += lib/fconf/fconf.c \ plat/arm/board/fvp/fconf/fconf_hw_config_getter.c +BL32_SOURCES += ${FDT_WRAPPERS_SOURCES} + ifeq (${SEC_INT_DESC_IN_FCONF},1) BL32_SOURCES += plat/arm/common/fconf/fconf_sec_intr_config.c endif diff --git a/plat/arm/board/fvp_ve/platform.mk b/plat/arm/board/fvp_ve/platform.mk index ac45d57ee..da4a96d7b 100644 --- a/plat/arm/board/fvp_ve/platform.mk +++ b/plat/arm/board/fvp_ve/platform.mk @@ -1,9 +1,11 @@ # -# Copyright (c) 2019-2020, Arm Limited. All rights reserved. +# Copyright (c) 2019-2021, Arm Limited. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk + ifdef ARM_CORTEX_A5 # Use the SP804 timer instead of the generic one USE_SP804_TIMER := 1 @@ -129,6 +131,6 @@ include lib/fconf/fconf.mk include lib/libfdt/libfdt.mk DYN_CFG_SOURCES += plat/arm/common/arm_dyn_cfg.c \ - plat/arm/common/arm_dyn_cfg_helpers.c \ - common/fdt_wrappers.c + plat/arm/common/arm_dyn_cfg_helpers.c +DYN_CFG_SOURCES += ${FDT_WRAPPERS_SOURCES} diff --git a/plat/arm/board/juno/platform.mk b/plat/arm/board/juno/platform.mk index 92fbf3598..2c84eb34d 100644 --- a/plat/arm/board/juno/platform.mk +++ b/plat/arm/board/juno/platform.mk @@ -4,6 +4,8 @@ # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk + # Include GICv2 driver files include drivers/arm/gic/v2/gicv2.mk @@ -83,7 +85,6 @@ BL31_SOURCES += drivers/cfi/v2m/v2m_flash.c \ lib/cpus/aarch64/cortex_a57.S \ lib/cpus/aarch64/cortex_a72.S \ lib/utils/mem_region.c \ - common/fdt_wrappers.c \ lib/fconf/fconf.c \ lib/fconf/fconf_dyn_cfg_getter.c \ plat/arm/board/juno/juno_bl31_setup.c \ @@ -94,6 +95,8 @@ BL31_SOURCES += drivers/cfi/v2m/v2m_flash.c \ ${JUNO_INTERCONNECT_SOURCES} \ ${JUNO_SECURITY_SOURCES} +BL31_SOURCES += ${FDT_WRAPPERS_SOURCES} + ifeq (${CSS_USE_SCMI_SDS_DRIVER},1) BL1_SOURCES += drivers/arm/css/sds/sds.c endif diff --git a/plat/arm/board/tc/platform.mk b/plat/arm/board/tc/platform.mk index 7ebf6391d..f22cdc050 100644 --- a/plat/arm/board/tc/platform.mk +++ b/plat/arm/board/tc/platform.mk @@ -3,6 +3,8 @@ # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk + ifeq ($(filter ${TARGET_PLATFORM}, 0 1),) $(error TARGET_PLATFORM must be 0 or 1) endif @@ -91,13 +93,14 @@ BL31_SOURCES += ${INTERCONNECT_SOURCES} \ ${ENT_GIC_SOURCES} \ ${TC_BASE}/tc_bl31_setup.c \ ${TC_BASE}/tc_topology.c \ - common/fdt_wrappers.c \ lib/fconf/fconf.c \ lib/fconf/fconf_dyn_cfg_getter.c \ drivers/cfi/v2m/v2m_flash.c \ lib/utils/mem_region.c \ plat/arm/common/arm_nor_psci_mem_protect.c +BL31_SOURCES += ${FDT_WRAPPERS_SOURCES} + # Add the FDT_SOURCES and options for Dynamic Config FDT_SOURCES += ${TC_BASE}/fdts/${PLAT}_fw_config.dts \ ${TC_BASE}/fdts/${PLAT}_tb_fw_config.dts diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk index a20e258a9..4d25bb2ab 100644 --- a/plat/arm/common/arm_common.mk +++ b/plat/arm/common/arm_common.mk @@ -4,6 +4,8 @@ # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk + ifeq (${ARCH}, aarch64) # On ARM standard platorms, the TSP can execute from Trusted SRAM, Trusted # DRAM (if available) or the TZC secured area of DRAM. @@ -261,9 +263,10 @@ include lib/libfdt/libfdt.mk DYN_CFG_SOURCES += plat/arm/common/arm_dyn_cfg.c \ plat/arm/common/arm_dyn_cfg_helpers.c \ - common/fdt_wrappers.c \ common/uuid.c +DYN_CFG_SOURCES += ${FDT_WRAPPERS_SOURCES} + BL1_SOURCES += ${DYN_CFG_SOURCES} BL2_SOURCES += ${DYN_CFG_SOURCES} @@ -343,10 +346,10 @@ endif ifeq (${SPD},spmd) BL31_SOURCES += plat/common/plat_spmd_manifest.c \ - common/fdt_wrappers.c \ common/uuid.c \ ${LIBFDT_SRCS} +BL31_SOURCES += ${FDT_WRAPPERS_SOURCES} endif ifneq (${TRUSTED_BOARD_BOOT},0) diff --git a/plat/nvidia/tegra/soc/t194/platform_t194.mk b/plat/nvidia/tegra/soc/t194/platform_t194.mk index 339375f83..758383380 100644 --- a/plat/nvidia/tegra/soc/t194/platform_t194.mk +++ b/plat/nvidia/tegra/soc/t194/platform_t194.mk @@ -1,9 +1,11 @@ # -# Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved. +# Copyright (c) 2019-2021, NVIDIA CORPORATION. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk + # platform configs ENABLE_CONSOLE_SPE := 1 $(eval $(call add_define,ENABLE_CONSOLE_SPE)) @@ -74,10 +76,10 @@ endif # SPM dispatcher ifeq (${SPD},spmd) -# include device tree helper library include lib/libfdt/libfdt.mk # sources to support spmd BL31_SOURCES += plat/common/plat_spmd_manifest.c \ - common/fdt_wrappers.c \ ${LIBFDT_SRCS} + +BL31_SOURCES += ${FDT_WRAPPERS_SOURCES} endif diff --git a/plat/qemu/qemu_sbsa/platform.mk b/plat/qemu/qemu_sbsa/platform.mk index 9fb30ad6c..5a6b1e11e 100644 --- a/plat/qemu/qemu_sbsa/platform.mk +++ b/plat/qemu/qemu_sbsa/platform.mk @@ -1,9 +1,11 @@ # -# Copyright (c) 2019-2020, Linaro Limited and Contributors. All rights reserved. +# Copyright (c) 2019-2021, Linaro Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # +include common/fdt_wrappers.mk + CRASH_REPORTING := 1 include lib/libfdt/libfdt.mk @@ -86,8 +88,10 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a57.S \ ${PLAT_QEMU_COMMON_PATH}/aarch64/plat_helpers.S \ ${PLAT_QEMU_COMMON_PATH}/qemu_bl31_setup.c \ common/fdt_fixup.c \ - common/fdt_wrappers.c \ ${QEMU_GIC_SOURCES} + +BL31_SOURCES += ${FDT_WRAPPERS_SOURCES} + ifeq (${SPM_MM},1) BL31_SOURCES += ${PLAT_QEMU_COMMON_PATH}/qemu_spm.c endif diff --git a/plat/st/stm32mp1/platform.mk b/plat/st/stm32mp1/platform.mk index 28463f1f5..14f90d466 100644 --- a/plat/st/stm32mp1/platform.mk +++ b/plat/st/stm32mp1/platform.mk @@ -154,13 +154,15 @@ $(eval $(call add_defines,\ PLAT_INCLUDES := -Iplat/st/common/include/ PLAT_INCLUDES += -Iplat/st/stm32mp1/include/ +include common/fdt_wrappers.mk include lib/libfdt/libfdt.mk -PLAT_BL_COMMON_SOURCES := common/fdt_wrappers.c \ - common/uuid.c \ +PLAT_BL_COMMON_SOURCES := common/uuid.c \ plat/st/common/stm32mp_common.c \ plat/st/stm32mp1/stm32mp1_private.c +PLAT_BL_COMMON_SOURCES += ${FDT_WRAPPERS_SOURCES} + PLAT_BL_COMMON_SOURCES += drivers/st/uart/aarch32/stm32_console.S ifneq (${ENABLE_STACK_PROTECTOR},0)