1#
2# Copyright (c) 2019-2021, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6
7# Firmware Configuration Framework sources
8include common/fdt_wrappers.mk
9include lib/fconf/fconf.mk
10
11BL1_SOURCES		+=	${FCONF_SOURCES} ${FCONF_DYN_SOURCES}
12BL2_SOURCES		+=	${FCONF_SOURCES} ${FCONF_DYN_SOURCES}
13
14# Add `libfdt` and Arm common helpers required for Dynamic Config
15include lib/libfdt/libfdt.mk
16
17DYN_CFG_SOURCES		+=	plat/arm/common/arm_dyn_cfg.c		\
18				plat/arm/common/arm_dyn_cfg_helpers.c
19
20DYN_CFG_SOURCES		+=	${FDT_WRAPPERS_SOURCES}
21
22# Include GICv2 driver files
23include drivers/arm/gic/v2/gicv2.mk
24
25A5DS_GIC_SOURCES	:=	${GICV2_SOURCES}			\
26				plat/common/plat_gicv2.c		\
27				plat/arm/common/arm_gicv2.c
28
29A5DS_SECURITY_SOURCES	:=	plat/arm/board/a5ds/a5ds_security.c
30
31PLAT_INCLUDES		:=	-Iplat/arm/board/a5ds/include
32
33PLAT_BL_COMMON_SOURCES	:=	drivers/arm/pl011/${ARCH}/pl011_console.S	\
34				plat/arm/board/a5ds/a5ds_common.c		\
35				plat/arm/common/${ARCH}/arm_helpers.S		\
36				plat/arm/common/arm_common.c			\
37				plat/arm/common/arm_console.c			\
38				plat/arm/board/common/${ARCH}/board_arm_helpers.S
39
40A5DS_CPU_LIBS		:=	lib/cpus/aarch32/cortex_a5.S
41
42BL1_SOURCES		+=	drivers/io/io_fip.c				\
43				drivers/io/io_memmap.c				\
44				drivers/io/io_storage.c				\
45				drivers/cfi/v2m/v2m_flash.c			\
46				plat/arm/common/arm_bl1_setup.c			\
47				plat/arm/common/arm_err.c			\
48				plat/arm/board/a5ds/a5ds_err.c			\
49				plat/arm/common/arm_io_storage.c		\
50				plat/arm/common/fconf/arm_fconf_io.c		\
51				plat/arm/board/a5ds/${ARCH}/a5ds_helpers.S	\
52				plat/arm/board/a5ds/a5ds_bl1_setup.c		\
53				lib/aarch32/arm32_aeabi_divmod.c		\
54				lib/aarch32/arm32_aeabi_divmod_a32.S		\
55				${A5DS_CPU_LIBS}				\
56				${DYN_CFG_SOURCES}
57
58BL2_SOURCES		+=	lib/aarch32/arm32_aeabi_divmod.c		\
59				lib/aarch32/arm32_aeabi_divmod_a32.S		\
60				drivers/delay_timer/delay_timer.c		\
61				drivers/delay_timer/generic_delay_timer.c	\
62				drivers/cfi/v2m/v2m_flash.c			\
63				drivers/io/io_fip.c				\
64				drivers/io/io_memmap.c				\
65				drivers/io/io_storage.c				\
66				plat/arm/board/a5ds/a5ds_bl2_setup.c		\
67				plat/arm/common/arm_bl2_setup.c			\
68				plat/arm/common/arm_err.c			\
69				plat/arm/board/a5ds/a5ds_err.c			\
70				plat/arm/common/arm_io_storage.c		\
71				plat/arm/common/fconf/arm_fconf_io.c		\
72				plat/arm/common/${ARCH}/arm_bl2_mem_params_desc.c	\
73				plat/arm/common/arm_image_load.c		\
74				common/desc_image_load.c			\
75				${DYN_CFG_SOURCES}				\
76				${A5DS_SECURITY_SOURCES}
77
78# Add the FDT_SOURCES and options for Dynamic Config (only for Unix env)
79ifdef UNIX_MK
80
81FW_CONFIG	:=      ${BUILD_PLAT}/fdts/a5ds_fw_config.dtb
82TB_FW_CONFIG	:=	${BUILD_PLAT}/fdts/a5ds_tb_fw_config.dtb
83
84# Add the TB_FW_CONFIG to FIP and specify the same to certtool
85$(eval $(call TOOL_ADD_PAYLOAD,${TB_FW_CONFIG},--tb-fw-config,${TB_FW_CONFIG}))
86# Add the FW_CONFIG to FIP and specify the same to certtool
87$(eval $(call TOOL_ADD_PAYLOAD,${FW_CONFIG},--fw-config,${FW_CONFIG}))
88
89$(eval FVP_HW_CONFIG	:=	${BUILD_PLAT}/$(patsubst %.dts,%.dtb, \
90	fdts/$(notdir ${FVP_HW_CONFIG_DTS})))
91# Add the HW_CONFIG to FIP and specify the same to certtool
92$(eval $(call TOOL_ADD_PAYLOAD,${FVP_HW_CONFIG},--hw-config,${FVP_HW_CONFIG}))
93
94FDT_SOURCES		+=	plat/arm/board/a5ds/fdts/a5ds_fw_config.dts \
95				plat/arm/board/a5ds/fdts/a5ds_tb_fw_config.dts \
96					${FVP_HW_CONFIG_DTS}
97endif
98
99NEED_BL32 := yes
100
101MULTI_CONSOLE_API		:=	1
102
103PLAT_BL_COMMON_SOURCES	+=	lib/xlat_tables/aarch32/nonlpae_tables.c
104
105# Use translation tables library v1 when using Cortex-A5
106ARM_XLAT_TABLES_LIB_V1		:=	1
107$(eval $(call assert_boolean,ARM_XLAT_TABLES_LIB_V1))
108$(eval $(call add_define,ARM_XLAT_TABLES_LIB_V1))
109
110$(eval $(call assert_boolean,ARM_DISABLE_TRUSTED_WDOG))
111$(eval $(call add_define,ARM_DISABLE_TRUSTED_WDOG))
112