xref: /rk3399_ARM-atf/plat/arm/board/fvp_ve/platform.mk (revision 6393c787b5aa915ea2c707acebd3e330246fe991)
1*6393c787SUsama Arif#
2*6393c787SUsama Arif# Copyright (c) 2019, Arm Limited. All rights reserved.
3*6393c787SUsama Arif#
4*6393c787SUsama Arif# SPDX-License-Identifier: BSD-3-Clause
5*6393c787SUsama Arif#
6*6393c787SUsama Arif
7*6393c787SUsama Arififdef ARM_CORTEX_A5
8*6393c787SUsama Arif# Use the SP804 timer instead of the generic one
9*6393c787SUsama ArifFVP_VE_USE_SP804_TIMER	:= 1
10*6393c787SUsama Arif$(eval $(call add_define,FVP_VE_USE_SP804_TIMER))
11*6393c787SUsama ArifBL2_SOURCES		+=	drivers/arm/sp804/sp804_delay_timer.c
12*6393c787SUsama Arifendif
13*6393c787SUsama Arif
14*6393c787SUsama ArifFVP_VE_GIC_SOURCES		:=	drivers/arm/gic/common/gic_common.c	\
15*6393c787SUsama Arif				drivers/arm/gic/v2/gicv2_main.c		\
16*6393c787SUsama Arif				drivers/arm/gic/v2/gicv2_helpers.c	\
17*6393c787SUsama Arif				plat/common/plat_gicv2.c		\
18*6393c787SUsama Arif				plat/arm/common/arm_gicv2.c
19*6393c787SUsama Arif
20*6393c787SUsama ArifFVP_VE_SECURITY_SOURCES	:=	plat/arm/board/fvp_ve/fvp_ve_security.c
21*6393c787SUsama Arif
22*6393c787SUsama ArifPLAT_INCLUDES		:=	-Iplat/arm/board/fvp_ve/include
23*6393c787SUsama Arif
24*6393c787SUsama ArifPLAT_BL_COMMON_SOURCES	:=	plat/arm/board/fvp_ve/fvp_ve_common.c		\
25*6393c787SUsama Arif				plat/arm/common/${ARCH}/arm_helpers.S		\
26*6393c787SUsama Arif				plat/arm/common/arm_common.c			\
27*6393c787SUsama Arif				plat/arm/common/arm_console.c			\
28*6393c787SUsama Arif				drivers/arm/pl011/${ARCH}/pl011_console.S	\
29*6393c787SUsama Arif				plat/arm/board/common/${ARCH}/board_arm_helpers.S
30*6393c787SUsama Arif
31*6393c787SUsama Arififdef ARM_CORTEX_A5
32*6393c787SUsama ArifFVP_VE_CPU_LIBS		:=	lib/cpus/aarch32/cortex_a5.S
33*6393c787SUsama Arifelse
34*6393c787SUsama ArifFVP_VE_CPU_LIBS		:=	lib/cpus/aarch32/cortex_a7.S
35*6393c787SUsama Arifendif
36*6393c787SUsama Arif
37*6393c787SUsama ArifBL1_SOURCES		+=	drivers/arm/sp805/sp805.c			\
38*6393c787SUsama Arif				drivers/io/io_fip.c				\
39*6393c787SUsama Arif				drivers/io/io_memmap.c				\
40*6393c787SUsama Arif				drivers/io/io_storage.c				\
41*6393c787SUsama Arif				plat/arm/common/arm_bl1_setup.c			\
42*6393c787SUsama Arif				plat/arm/common/arm_err.c			\
43*6393c787SUsama Arif				plat/arm/common/arm_io_storage.c		\
44*6393c787SUsama Arif				drivers/cfi/v2m/v2m_flash.c			\
45*6393c787SUsama Arif				plat/arm/board/fvp_ve/${ARCH}/fvp_ve_helpers.S	\
46*6393c787SUsama Arif				plat/arm/board/fvp_ve/fvp_ve_bl1_setup.c	\
47*6393c787SUsama Arif				lib/aarch32/arm32_aeabi_divmod.c		\
48*6393c787SUsama Arif				lib/aarch32/arm32_aeabi_divmod_a32.S		\
49*6393c787SUsama Arif				${FVP_VE_CPU_LIBS}					\
50*6393c787SUsama Arif				${DYN_CFG_SOURCES}
51*6393c787SUsama Arif
52*6393c787SUsama ArifBL2_SOURCES		+=	plat/arm/board/fvp_ve/fvp_ve_bl2_setup.c		\
53*6393c787SUsama Arif				lib/aarch32/arm32_aeabi_divmod.c		\
54*6393c787SUsama Arif				lib/aarch32/arm32_aeabi_divmod_a32.S		\
55*6393c787SUsama Arif				drivers/delay_timer/delay_timer.c		\
56*6393c787SUsama Arif				drivers/delay_timer/generic_delay_timer.c	\
57*6393c787SUsama Arif				drivers/cfi/v2m/v2m_flash.c			\
58*6393c787SUsama Arif				drivers/io/io_fip.c				\
59*6393c787SUsama Arif				drivers/io/io_memmap.c				\
60*6393c787SUsama Arif				drivers/io/io_storage.c				\
61*6393c787SUsama Arif				plat/arm/common/arm_bl2_setup.c			\
62*6393c787SUsama Arif				plat/arm/common/arm_err.c			\
63*6393c787SUsama Arif				plat/arm/common/arm_io_storage.c		\
64*6393c787SUsama Arif				plat/arm/common/${ARCH}/arm_bl2_mem_params_desc.c	\
65*6393c787SUsama Arif				plat/arm/common/arm_image_load.c		\
66*6393c787SUsama Arif				common/desc_image_load.c			\
67*6393c787SUsama Arif				${DYN_CFG_SOURCES}				\
68*6393c787SUsama Arif				${FVP_VE_SECURITY_SOURCES}
69*6393c787SUsama Arif
70*6393c787SUsama Arif# Add the FDT_SOURCES and options for Dynamic Config (only for Unix env)
71*6393c787SUsama Arififdef UNIX_MK
72*6393c787SUsama Arif
73*6393c787SUsama ArifFDT_SOURCES		+=	plat/arm/board/fvp_ve/fdts/fvp_ve_tb_fw_config.dts
74*6393c787SUsama Arif
75*6393c787SUsama ArifFVP_TB_FW_CONFIG	:=	${BUILD_PLAT}/fdts/fvp_ve_tb_fw_config.dtb
76*6393c787SUsama Arif
77*6393c787SUsama Arif# Add the TB_FW_CONFIG to FIP and specify the same to certtool
78*6393c787SUsama Arif$(eval $(call TOOL_ADD_PAYLOAD,${FVP_TB_FW_CONFIG},--tb-fw-config))
79*6393c787SUsama Arif
80*6393c787SUsama ArifFDT_SOURCES		+=	${FVP_HW_CONFIG_DTS}
81*6393c787SUsama Arif$(eval FVP_HW_CONFIG	:=	${BUILD_PLAT}/$(patsubst %.dts,%.dtb, \
82*6393c787SUsama Arif	fdts/$(notdir ${FVP_HW_CONFIG_DTS})))
83*6393c787SUsama Arif# Add the HW_CONFIG to FIP and specify the same to certtool
84*6393c787SUsama Arif$(eval $(call TOOL_ADD_PAYLOAD,${FVP_HW_CONFIG},--hw-config))
85*6393c787SUsama Arifendif
86*6393c787SUsama Arif
87*6393c787SUsama ArifNEED_BL32 := yes
88*6393c787SUsama Arif
89*6393c787SUsama Arif# Modification of arm_common.mk
90*6393c787SUsama Arif
91*6393c787SUsama Arif# Process ARM_DISABLE_TRUSTED_WDOG flag
92*6393c787SUsama Arif# By default, Trusted Watchdog is always enabled unless SPIN_ON_BL1_EXIT is set
93*6393c787SUsama ArifARM_DISABLE_TRUSTED_WDOG	:=	0
94*6393c787SUsama Arififeq (${SPIN_ON_BL1_EXIT}, 1)
95*6393c787SUsama ArifARM_DISABLE_TRUSTED_WDOG	:=	1
96*6393c787SUsama Arifendif
97*6393c787SUsama Arif$(eval $(call assert_boolean,ARM_DISABLE_TRUSTED_WDOG))
98*6393c787SUsama Arif$(eval $(call add_define,ARM_DISABLE_TRUSTED_WDOG))
99*6393c787SUsama Arif
100*6393c787SUsama Arif# Use translation tables library v1 if using Cortex-A5
101*6393c787SUsama Arififdef ARM_CORTEX_A5
102*6393c787SUsama ArifARM_XLAT_TABLES_LIB_V1		:=	1
103*6393c787SUsama Arifelse
104*6393c787SUsama ArifARM_XLAT_TABLES_LIB_V1		:=	0
105*6393c787SUsama Arifendif
106*6393c787SUsama Arif$(eval $(call assert_boolean,ARM_XLAT_TABLES_LIB_V1))
107*6393c787SUsama Arif$(eval $(call add_define,ARM_XLAT_TABLES_LIB_V1))
108*6393c787SUsama Arif
109*6393c787SUsama ArifMULTI_CONSOLE_API		:=	1
110*6393c787SUsama Arif
111*6393c787SUsama Arififeq (${ARM_XLAT_TABLES_LIB_V1}, 1)
112*6393c787SUsama Arif	# Only use nonlpae version of xlatv1 otherwise use xlat v2
113*6393c787SUsama Arif	PLAT_BL_COMMON_SOURCES	+=	lib/xlat_tables/${ARCH}/nonlpae_tables.c
114*6393c787SUsama Arifelse
115*6393c787SUsama Arif	include lib/xlat_tables_v2/xlat_tables.mk
116*6393c787SUsama Arif	PLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}
117*6393c787SUsama Arifendif
118*6393c787SUsama Arif
119*6393c787SUsama Arif# Add `libfdt` and Arm common helpers required for Dynamic Config
120*6393c787SUsama Arifinclude lib/libfdt/libfdt.mk
121*6393c787SUsama Arif
122*6393c787SUsama ArifDYN_CFG_SOURCES		+=	plat/arm/common/arm_dyn_cfg.c		\
123*6393c787SUsama Arif				plat/arm/common/arm_dyn_cfg_helpers.c	\
124*6393c787SUsama Arif				common/fdt_wrappers.c
125*6393c787SUsama Arif
126