xref: /arm-trusted-firmware/plat/arm/board/tc/platform.mk (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu# Copyright (c) 2021-2023, Arm Limited. All rights reserved.
2*91f16700Schasinglulu#
3*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause
4*91f16700Schasinglulu#
5*91f16700Schasinglulu
6*91f16700Schasingluluinclude common/fdt_wrappers.mk
7*91f16700Schasinglulu
8*91f16700Schasingluluifeq ($(TARGET_PLATFORM), 0)
9*91f16700Schasinglulu	$(error Platform ${PLAT}$(TARGET_PLATFORM) is deprecated.)
10*91f16700Schasingluluendif
11*91f16700Schasinglulu
12*91f16700Schasingluluifeq ($(TARGET_PLATFORM), 1)
13*91f16700Schasinglulu        $(warning Platform ${PLAT}$(TARGET_PLATFORM) is deprecated. \
14*91f16700Schasinglulu          Some of the features might not work as expected)
15*91f16700Schasingluluendif
16*91f16700Schasinglulu
17*91f16700Schasingluluifeq ($(shell expr $(TARGET_PLATFORM) \<= 2), 0)
18*91f16700Schasinglulu        $(error TARGET_PLATFORM must be less than or equal to 2)
19*91f16700Schasingluluendif
20*91f16700Schasinglulu
21*91f16700Schasinglulu$(eval $(call add_define,TARGET_PLATFORM))
22*91f16700Schasinglulu
23*91f16700SchasingluluCSS_LOAD_SCP_IMAGES	:=	1
24*91f16700Schasinglulu
25*91f16700SchasingluluCSS_USE_SCMI_SDS_DRIVER	:=	1
26*91f16700Schasinglulu
27*91f16700SchasingluluENABLE_FEAT_RAS		:=	1
28*91f16700Schasinglulu
29*91f16700SchasingluluSDEI_SUPPORT		:=	0
30*91f16700Schasinglulu
31*91f16700SchasingluluEL3_EXCEPTION_HANDLING	:=	0
32*91f16700Schasinglulu
33*91f16700SchasingluluHANDLE_EA_EL3_FIRST_NS	:=	0
34*91f16700Schasinglulu
35*91f16700Schasinglulu# System coherency is managed in hardware
36*91f16700SchasingluluHW_ASSISTED_COHERENCY	:=	1
37*91f16700Schasinglulu
38*91f16700Schasinglulu# When building for systems with hardware-assisted coherency, there's no need to
39*91f16700Schasinglulu# use USE_COHERENT_MEM. Require that USE_COHERENT_MEM must be set to 0 too.
40*91f16700SchasingluluUSE_COHERENT_MEM	:=	0
41*91f16700Schasinglulu
42*91f16700SchasingluluGIC_ENABLE_V4_EXTN	:=      1
43*91f16700Schasinglulu
44*91f16700Schasinglulu# GIC-600 configuration
45*91f16700SchasingluluGICV3_SUPPORT_GIC600	:=	1
46*91f16700Schasinglulu
47*91f16700Schasinglulu# Enable SVE
48*91f16700SchasingluluENABLE_SVE_FOR_NS	:=	2
49*91f16700SchasingluluENABLE_SVE_FOR_SWD	:=	1
50*91f16700Schasinglulu
51*91f16700Schasinglulu# enable trace buffer control registers access to NS by default
52*91f16700SchasingluluENABLE_TRBE_FOR_NS              := 1
53*91f16700Schasinglulu
54*91f16700Schasinglulu# enable trace system registers access to NS by default
55*91f16700SchasingluluENABLE_SYS_REG_TRACE_FOR_NS     := 1
56*91f16700Schasinglulu
57*91f16700Schasinglulu# enable trace filter control registers access to NS by default
58*91f16700SchasingluluENABLE_TRF_FOR_NS               := 1
59*91f16700Schasinglulu
60*91f16700Schasinglulu# Include GICv3 driver files
61*91f16700Schasingluluinclude drivers/arm/gic/v3/gicv3.mk
62*91f16700Schasinglulu
63*91f16700SchasingluluENT_GIC_SOURCES		:=	${GICV3_SOURCES}		\
64*91f16700Schasinglulu				plat/common/plat_gicv3.c	\
65*91f16700Schasinglulu				plat/arm/common/arm_gicv3.c
66*91f16700Schasinglulu
67*91f16700Schasingluluoverride NEED_BL2U	:=	no
68*91f16700Schasinglulu
69*91f16700Schasingluluoverride ARM_PLAT_MT	:=	1
70*91f16700Schasinglulu
71*91f16700SchasingluluTC_BASE	=	plat/arm/board/tc
72*91f16700Schasinglulu
73*91f16700SchasingluluPLAT_INCLUDES		+=	-I${TC_BASE}/include/
74*91f16700Schasinglulu
75*91f16700Schasinglulu# CPU libraries for TARGET_PLATFORM=1
76*91f16700Schasingluluifeq (${TARGET_PLATFORM}, 1)
77*91f16700SchasingluluTC_CPU_SOURCES	+=	lib/cpus/aarch64/cortex_a510.S \
78*91f16700Schasinglulu			lib/cpus/aarch64/cortex_a715.S \
79*91f16700Schasinglulu			lib/cpus/aarch64/cortex_x3.S
80*91f16700Schasingluluendif
81*91f16700Schasinglulu
82*91f16700Schasinglulu# CPU libraries for TARGET_PLATFORM=2
83*91f16700Schasingluluifeq (${TARGET_PLATFORM}, 2)
84*91f16700SchasingluluTC_CPU_SOURCES	+=	lib/cpus/aarch64/cortex_a520.S \
85*91f16700Schasinglulu			lib/cpus/aarch64/cortex_a720.S \
86*91f16700Schasinglulu			lib/cpus/aarch64/cortex_x4.S
87*91f16700Schasingluluendif
88*91f16700Schasinglulu
89*91f16700SchasingluluINTERCONNECT_SOURCES	:=	${TC_BASE}/tc_interconnect.c
90*91f16700Schasinglulu
91*91f16700SchasingluluPLAT_BL_COMMON_SOURCES	+=	${TC_BASE}/tc_plat.c	\
92*91f16700Schasinglulu				${TC_BASE}/include/tc_helpers.S
93*91f16700Schasinglulu
94*91f16700SchasingluluBL1_SOURCES		+=	${INTERCONNECT_SOURCES}	\
95*91f16700Schasinglulu				${TC_CPU_SOURCES}	\
96*91f16700Schasinglulu				${TC_BASE}/tc_trusted_boot.c	\
97*91f16700Schasinglulu				${TC_BASE}/tc_err.c	\
98*91f16700Schasinglulu				drivers/arm/sbsa/sbsa.c
99*91f16700Schasinglulu
100*91f16700SchasingluluBL2_SOURCES		+=	${TC_BASE}/tc_security.c	\
101*91f16700Schasinglulu				${TC_BASE}/tc_err.c		\
102*91f16700Schasinglulu				${TC_BASE}/tc_trusted_boot.c		\
103*91f16700Schasinglulu				${TC_BASE}/tc_bl2_setup.c		\
104*91f16700Schasinglulu				lib/utils/mem_region.c			\
105*91f16700Schasinglulu				drivers/arm/tzc/tzc400.c		\
106*91f16700Schasinglulu				plat/arm/common/arm_tzc400.c		\
107*91f16700Schasinglulu				plat/arm/common/arm_nor_psci_mem_protect.c
108*91f16700Schasinglulu
109*91f16700SchasingluluBL31_SOURCES		+=	${INTERCONNECT_SOURCES}	\
110*91f16700Schasinglulu				${TC_CPU_SOURCES}	\
111*91f16700Schasinglulu				${ENT_GIC_SOURCES}			\
112*91f16700Schasinglulu				${TC_BASE}/tc_bl31_setup.c	\
113*91f16700Schasinglulu				${TC_BASE}/tc_topology.c	\
114*91f16700Schasinglulu				lib/fconf/fconf.c			\
115*91f16700Schasinglulu				lib/fconf/fconf_dyn_cfg_getter.c	\
116*91f16700Schasinglulu				drivers/cfi/v2m/v2m_flash.c		\
117*91f16700Schasinglulu				lib/utils/mem_region.c			\
118*91f16700Schasinglulu				plat/arm/common/arm_nor_psci_mem_protect.c	\
119*91f16700Schasinglulu				drivers/arm/sbsa/sbsa.c
120*91f16700Schasinglulu
121*91f16700SchasingluluBL31_SOURCES		+=	${FDT_WRAPPERS_SOURCES}
122*91f16700Schasinglulu
123*91f16700Schasinglulu# Add the FDT_SOURCES and options for Dynamic Config
124*91f16700SchasingluluFDT_SOURCES		+=	${TC_BASE}/fdts/${PLAT}_fw_config.dts	\
125*91f16700Schasinglulu				${TC_BASE}/fdts/${PLAT}_tb_fw_config.dts
126*91f16700SchasingluluFW_CONFIG		:=	${BUILD_PLAT}/fdts/${PLAT}_fw_config.dtb
127*91f16700SchasingluluTB_FW_CONFIG		:=	${BUILD_PLAT}/fdts/${PLAT}_tb_fw_config.dtb
128*91f16700Schasinglulu
129*91f16700Schasinglulu# Add the FW_CONFIG to FIP and specify the same to certtool
130*91f16700Schasinglulu$(eval $(call TOOL_ADD_PAYLOAD,${FW_CONFIG},--fw-config,${FW_CONFIG}))
131*91f16700Schasinglulu# Add the TB_FW_CONFIG to FIP and specify the same to certtool
132*91f16700Schasinglulu$(eval $(call TOOL_ADD_PAYLOAD,${TB_FW_CONFIG},--tb-fw-config,${TB_FW_CONFIG}))
133*91f16700Schasinglulu
134*91f16700Schasingluluifeq (${SPD},spmd)
135*91f16700Schasingluluifeq ($(ARM_SPMC_MANIFEST_DTS),)
136*91f16700SchasingluluARM_SPMC_MANIFEST_DTS	:=	${TC_BASE}/fdts/${PLAT}_spmc_manifest.dts
137*91f16700Schasingluluendif
138*91f16700Schasinglulu
139*91f16700SchasingluluFDT_SOURCES		+=	${ARM_SPMC_MANIFEST_DTS}
140*91f16700SchasingluluTC_TOS_FW_CONFIG	:=	${BUILD_PLAT}/fdts/$(notdir $(basename ${ARM_SPMC_MANIFEST_DTS})).dtb
141*91f16700Schasinglulu
142*91f16700Schasinglulu# Add the TOS_FW_CONFIG to FIP and specify the same to certtool
143*91f16700Schasinglulu$(eval $(call TOOL_ADD_PAYLOAD,${TC_TOS_FW_CONFIG},--tos-fw-config,${TC_TOS_FW_CONFIG}))
144*91f16700Schasingluluendif
145*91f16700Schasinglulu
146*91f16700Schasinglulu#Device tree
147*91f16700SchasingluluTC_HW_CONFIG_DTS	:=	fdts/tc.dts
148*91f16700SchasingluluTC_HW_CONFIG		:=	${BUILD_PLAT}/fdts/${PLAT}.dtb
149*91f16700SchasingluluFDT_SOURCES		+=	${TC_HW_CONFIG_DTS}
150*91f16700Schasinglulu$(eval TC_HW_CONFIG	:=	${BUILD_PLAT}/$(patsubst %.dts,%.dtb,$(TC_HW_CONFIG_DTS)))
151*91f16700Schasinglulu
152*91f16700Schasinglulu# Add the HW_CONFIG to FIP and specify the same to certtool
153*91f16700Schasinglulu$(eval $(call TOOL_ADD_PAYLOAD,${TC_HW_CONFIG},--hw-config,${TC_HW_CONFIG}))
154*91f16700Schasinglulu
155*91f16700Schasingluluoverride CTX_INCLUDE_AARCH32_REGS	:= 0
156*91f16700Schasinglulu
157*91f16700Schasingluluoverride CTX_INCLUDE_PAUTH_REGS	:= 1
158*91f16700Schasinglulu
159*91f16700Schasingluluoverride ENABLE_SPE_FOR_NS	:= 0
160*91f16700Schasinglulu
161*91f16700Schasingluluoverride ENABLE_FEAT_AMU := 1
162*91f16700Schasingluluoverride ENABLE_AMU_AUXILIARY_COUNTERS := 1
163*91f16700Schasingluluoverride ENABLE_AMU_FCONF := 1
164*91f16700Schasinglulu
165*91f16700Schasingluluoverride ENABLE_MPMM := 1
166*91f16700Schasingluluoverride ENABLE_MPMM_FCONF := 1
167*91f16700Schasinglulu
168*91f16700Schasinglulu# Include Measured Boot makefile before any Crypto library makefile.
169*91f16700Schasinglulu# Crypto library makefile may need default definitions of Measured Boot build
170*91f16700Schasinglulu# flags present in Measured Boot makefile.
171*91f16700Schasingluluifeq (${MEASURED_BOOT},1)
172*91f16700Schasinglulu    MEASURED_BOOT_MK := drivers/measured_boot/rss/rss_measured_boot.mk
173*91f16700Schasinglulu    $(info Including ${MEASURED_BOOT_MK})
174*91f16700Schasinglulu    include ${MEASURED_BOOT_MK}
175*91f16700Schasinglulu    $(info Including rss_comms.mk)
176*91f16700Schasinglulu    include drivers/arm/rss/rss_comms.mk
177*91f16700Schasinglulu
178*91f16700Schasinglulu    BL1_SOURCES		+=	${MEASURED_BOOT_SOURCES} \
179*91f16700Schasinglulu				plat/arm/board/tc/tc_common_measured_boot.c \
180*91f16700Schasinglulu				plat/arm/board/tc/tc_bl1_measured_boot.c \
181*91f16700Schasinglulu				lib/psa/measured_boot.c			 \
182*91f16700Schasinglulu				${RSS_COMMS_SOURCES}
183*91f16700Schasinglulu
184*91f16700Schasinglulu    BL2_SOURCES		+=	${MEASURED_BOOT_SOURCES} \
185*91f16700Schasinglulu				plat/arm/board/tc/tc_common_measured_boot.c \
186*91f16700Schasinglulu				plat/arm/board/tc/tc_bl2_measured_boot.c \
187*91f16700Schasinglulu				lib/psa/measured_boot.c			 \
188*91f16700Schasinglulu				${RSS_COMMS_SOURCES}
189*91f16700Schasinglulu
190*91f16700SchasingluluPLAT_INCLUDES		+=	-Iinclude/lib/psa
191*91f16700Schasinglulu
192*91f16700Schasingluluendif
193*91f16700Schasinglulu
194*91f16700Schasingluluifneq (${PLATFORM_TEST},)
195*91f16700Schasinglulu    # Add this include as first, before arm_common.mk. This is necessary
196*91f16700Schasinglulu    # because arm_common.mk builds Mbed TLS, and platform_test.mk can
197*91f16700Schasinglulu    # change the list of Mbed TLS files that are to be compiled
198*91f16700Schasinglulu    # (LIBMBEDTLS_SRCS).
199*91f16700Schasinglulu    include plat/arm/board/tc/platform_test.mk
200*91f16700Schasingluluendif
201*91f16700Schasinglulu
202*91f16700Schasinglulu
203*91f16700Schasingluluinclude plat/arm/common/arm_common.mk
204*91f16700Schasingluluinclude plat/arm/css/common/css_common.mk
205*91f16700Schasingluluinclude plat/arm/soc/common/soc_css.mk
206*91f16700Schasingluluinclude plat/arm/board/common/board_common.mk
207