xref: /rk3399_ARM-atf/plat/nuvoton/npcm845x/platform.mk (revision edcece15c76423832fc1ffdb255528bf4c719516)
1*edcece15Srutigl@gmail.com#
2*edcece15Srutigl@gmail.com# Copyright (c) 2015-2023, ARM Limited and Contributors. All rights reserved.
3*edcece15Srutigl@gmail.com#
4*edcece15Srutigl@gmail.com# Copyright (c) 2017-2023 Nuvoton Ltd.
5*edcece15Srutigl@gmail.com#
6*edcece15Srutigl@gmail.com# SPDX-License-Identifier: BSD-3-Clause
7*edcece15Srutigl@gmail.com#
8*edcece15Srutigl@gmail.com
9*edcece15Srutigl@gmail.com# This is a debug flag for bring-up. It allows reducing CPU numbers
10*edcece15Srutigl@gmail.com# SECONDARY_BRINGUP	:=	1
11*edcece15Srutigl@gmail.comRESET_TO_BL31	:=	1
12*edcece15Srutigl@gmail.comPMD_SPM_AT_SEL2	:= 0
13*edcece15Srutigl@gmail.com#temporary until the RAM size is reduced
14*edcece15Srutigl@gmail.comUSE_COHERENT_MEM	:=	1
15*edcece15Srutigl@gmail.com
16*edcece15Srutigl@gmail.com
17*edcece15Srutigl@gmail.com$(eval $(call add_define,RESET_TO_BL31))
18*edcece15Srutigl@gmail.com
19*edcece15Srutigl@gmail.comifeq (${ARCH}, aarch64)
20*edcece15Srutigl@gmail.com# On ARM standard platorms, the TSP can execute from Trusted SRAM,
21*edcece15Srutigl@gmail.com# Trusted DRAM (if available) or the TZC secured area of DRAM.
22*edcece15Srutigl@gmail.com# TZC secured DRAM is the default.
23*edcece15Srutigl@gmail.com
24*edcece15Srutigl@gmail.comARM_TSP_RAM_LOCATION	?=	dram
25*edcece15Srutigl@gmail.com
26*edcece15Srutigl@gmail.comifeq (${ARM_TSP_RAM_LOCATION}, tsram)
27*edcece15Srutigl@gmail.comARM_TSP_RAM_LOCATION_ID	=	ARM_TRUSTED_SRAM_ID
28*edcece15Srutigl@gmail.comelse ifeq (${ARM_TSP_RAM_LOCATION}, tdram)
29*edcece15Srutigl@gmail.comARM_TSP_RAM_LOCATION_ID	=	ARM_TRUSTED_DRAM_ID
30*edcece15Srutigl@gmail.comelse ifeq (${ARM_TSP_RAM_LOCATION}, dram)
31*edcece15Srutigl@gmail.comARM_TSP_RAM_LOCATION_ID	=	ARM_DRAM_ID
32*edcece15Srutigl@gmail.comelse
33*edcece15Srutigl@gmail.com$(error "Unsupported ARM_TSP_RAM_LOCATION value")
34*edcece15Srutigl@gmail.comendif
35*edcece15Srutigl@gmail.com
36*edcece15Srutigl@gmail.com# Process flags
37*edcece15Srutigl@gmail.com# Process ARM_BL31_IN_DRAM flag
38*edcece15Srutigl@gmail.comARM_BL31_IN_DRAM	:=	0
39*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_BL31_IN_DRAM))
40*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_BL31_IN_DRAM))
41*edcece15Srutigl@gmail.comelse
42*edcece15Srutigl@gmail.comARM_TSP_RAM_LOCATION_ID	=	ARM_TRUSTED_SRAM_ID
43*edcece15Srutigl@gmail.comendif
44*edcece15Srutigl@gmail.com
45*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_TSP_RAM_LOCATION_ID))
46*edcece15Srutigl@gmail.com
47*edcece15Srutigl@gmail.com# For the original power-state parameter format, the State-ID can be encoded
48*edcece15Srutigl@gmail.com# according to the recommended encoding or zero. This flag determines which
49*edcece15Srutigl@gmail.com# State-ID encoding to be parsed.
50*edcece15Srutigl@gmail.comARM_RECOM_STATE_ID_ENC	:=	0
51*edcece15Srutigl@gmail.com
52*edcece15Srutigl@gmail.com# If the PSCI_EXTENDED_STATE_ID is set, then ARM_RECOM_STATE_ID_ENC
53*edcece15Srutigl@gmail.com# need to be set. Else throw a build error.
54*edcece15Srutigl@gmail.comifeq (${PSCI_EXTENDED_STATE_ID}, 1)
55*edcece15Srutigl@gmail.comifeq (${ARM_RECOM_STATE_ID_ENC}, 0)
56*edcece15Srutigl@gmail.com$(error Build option ARM_RECOM_STATE_ID_ENC needs to be set if \
57*edcece15Srutigl@gmail.com	PSCI_EXTENDED_STATE_ID is set for ARM platforms)
58*edcece15Srutigl@gmail.comendif
59*edcece15Srutigl@gmail.comendif
60*edcece15Srutigl@gmail.com
61*edcece15Srutigl@gmail.com# Process ARM_RECOM_STATE_ID_ENC flag
62*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_RECOM_STATE_ID_ENC))
63*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_RECOM_STATE_ID_ENC))
64*edcece15Srutigl@gmail.com
65*edcece15Srutigl@gmail.com# Process ARM_DISABLE_TRUSTED_WDOG flag
66*edcece15Srutigl@gmail.com# By default, Trusted Watchdog is always enabled unless SPIN_ON_BL1_EXIT is set
67*edcece15Srutigl@gmail.comARM_DISABLE_TRUSTED_WDOG	:=	0
68*edcece15Srutigl@gmail.comifeq (${SPIN_ON_BL1_EXIT}, 1)
69*edcece15Srutigl@gmail.comARM_DISABLE_TRUSTED_WDOG	:=	1
70*edcece15Srutigl@gmail.comendif
71*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_DISABLE_TRUSTED_WDOG))
72*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_DISABLE_TRUSTED_WDOG))
73*edcece15Srutigl@gmail.com
74*edcece15Srutigl@gmail.com# Process ARM_CONFIG_CNTACR
75*edcece15Srutigl@gmail.comARM_CONFIG_CNTACR	:=	1
76*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_CONFIG_CNTACR))
77*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_CONFIG_CNTACR))
78*edcece15Srutigl@gmail.com
79*edcece15Srutigl@gmail.com# Process ARM_BL31_IN_DRAM flag
80*edcece15Srutigl@gmail.comARM_BL31_IN_DRAM	:=	0
81*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_BL31_IN_DRAM))
82*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_BL31_IN_DRAM))
83*edcece15Srutigl@gmail.com
84*edcece15Srutigl@gmail.com# Process ARM_PLAT_MT flag
85*edcece15Srutigl@gmail.comARM_PLAT_MT	:=	0
86*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_PLAT_MT))
87*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_PLAT_MT))
88*edcece15Srutigl@gmail.com
89*edcece15Srutigl@gmail.com# Use translation tables library v2 by default
90*edcece15Srutigl@gmail.comARM_XLAT_TABLES_LIB_V1	:=	0
91*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_XLAT_TABLES_LIB_V1))
92*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_XLAT_TABLES_LIB_V1))
93*edcece15Srutigl@gmail.com
94*edcece15Srutigl@gmail.com# Don't have the Linux kernel as a BL33 image by default
95*edcece15Srutigl@gmail.comARM_LINUX_KERNEL_AS_BL33	:=	0
96*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_LINUX_KERNEL_AS_BL33))
97*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_LINUX_KERNEL_AS_BL33))
98*edcece15Srutigl@gmail.com
99*edcece15Srutigl@gmail.comifeq (${ARM_LINUX_KERNEL_AS_BL33},1)
100*edcece15Srutigl@gmail.comifeq (${ARCH},aarch64)
101*edcece15Srutigl@gmail.comifneq (${RESET_TO_BL31},1)
102*edcece15Srutigl@gmail.com$(error "ARM_LINUX_KERNEL_AS_BL33 is only available if RESET_TO_BL31=1.")
103*edcece15Srutigl@gmail.comendif
104*edcece15Srutigl@gmail.comelse
105*edcece15Srutigl@gmail.comifneq (${RESET_TO_SP_MIN},1)
106*edcece15Srutigl@gmail.com$(error "ARM_LINUX_KERNEL_AS_BL33 is only available if RESET_TO_SP_MIN=1.")
107*edcece15Srutigl@gmail.comendif
108*edcece15Srutigl@gmail.comendif
109*edcece15Srutigl@gmail.com
110*edcece15Srutigl@gmail.comifndef PRELOADED_BL33_BASE
111*edcece15Srutigl@gmail.com$(error "PRELOADED_BL33_BASE must be set if ARM_LINUX_KERNEL_AS_BL33 is used.")
112*edcece15Srutigl@gmail.comendif
113*edcece15Srutigl@gmail.com
114*edcece15Srutigl@gmail.comifndef ARM_PRELOADED_DTB_BASE
115*edcece15Srutigl@gmail.com$(error "ARM_PRELOADED_DTB_BASE must be set if ARM_LINUX_KERNEL_AS_BL33 is used.")
116*edcece15Srutigl@gmail.comendif
117*edcece15Srutigl@gmail.com
118*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_PRELOADED_DTB_BASE))
119*edcece15Srutigl@gmail.comendif
120*edcece15Srutigl@gmail.com
121*edcece15Srutigl@gmail.com# Use an implementation of SHA-256 with a smaller memory footprint
122*edcece15Srutigl@gmail.com# but reduced speed.
123*edcece15Srutigl@gmail.com$(eval $(call add_define,MBEDTLS_SHA256_SMALLER))
124*edcece15Srutigl@gmail.com
125*edcece15Srutigl@gmail.com# Add the build options to pack Trusted OS Extra1 and Trusted OS Extra2 images
126*edcece15Srutigl@gmail.com# in the FIP if the platform requires.
127*edcece15Srutigl@gmail.comifneq ($(BL32_EXTRA1),)
128*edcece15Srutigl@gmail.com$(eval $(call TOOL_ADD_IMG,bl32_extra1,--tos-fw-extra1))
129*edcece15Srutigl@gmail.comendif
130*edcece15Srutigl@gmail.comifneq ($(BL32_EXTRA2),)
131*edcece15Srutigl@gmail.com$(eval $(call TOOL_ADD_IMG,bl32_extra2,--tos-fw-extra2))
132*edcece15Srutigl@gmail.comendif
133*edcece15Srutigl@gmail.com
134*edcece15Srutigl@gmail.com# Enable PSCI_STAT_COUNT/RESIDENCY APIs on ARM platforms
135*edcece15Srutigl@gmail.comENABLE_PSCI_STAT	:=	1
136*edcece15Srutigl@gmail.comENABLE_PMF		:=	1
137*edcece15Srutigl@gmail.com
138*edcece15Srutigl@gmail.com# On ARM platforms, separate the code and read-only data sections to allow
139*edcece15Srutigl@gmail.com# mapping the former as executable and the latter as execute-never.
140*edcece15Srutigl@gmail.comSEPARATE_CODE_AND_RODATA	:=	1
141*edcece15Srutigl@gmail.com
142*edcece15Srutigl@gmail.com# On ARM platforms, disable SEPARATE_NOBITS_REGION by default. Both PROGBITS
143*edcece15Srutigl@gmail.com# and NOBITS sections of BL31 image are adjacent to each other and loaded
144*edcece15Srutigl@gmail.com# into Trusted SRAM.
145*edcece15Srutigl@gmail.comSEPARATE_NOBITS_REGION	:=	0
146*edcece15Srutigl@gmail.com
147*edcece15Srutigl@gmail.com# In order to support SEPARATE_NOBITS_REGION for Arm platforms, we need to load
148*edcece15Srutigl@gmail.com# BL31 PROGBITS into secure DRAM space and BL31 NOBITS into SRAM. Hence mandate
149*edcece15Srutigl@gmail.com# the build to require that ARM_BL31_IN_DRAM is enabled as well.
150*edcece15Srutigl@gmail.comifeq ($(SEPARATE_NOBITS_REGION),1)
151*edcece15Srutigl@gmail.comifneq ($(ARM_BL31_IN_DRAM),1)
152*edcece15Srutigl@gmail.com$(error For SEPARATE_NOBITS_REGION, ARM_BL31_IN_DRAM must be enabled)
153*edcece15Srutigl@gmail.comendif
154*edcece15Srutigl@gmail.com
155*edcece15Srutigl@gmail.comifneq ($(RECLAIM_INIT_CODE),0)
156*edcece15Srutigl@gmail.com$(error For SEPARATE_NOBITS_REGION, RECLAIM_INIT_CODE cannot be supported)
157*edcece15Srutigl@gmail.comendif
158*edcece15Srutigl@gmail.comendif
159*edcece15Srutigl@gmail.com
160*edcece15Srutigl@gmail.com# Disable ARM Cryptocell by default
161*edcece15Srutigl@gmail.comARM_CRYPTOCELL_INTEG	:=	0
162*edcece15Srutigl@gmail.com$(eval $(call assert_boolean,ARM_CRYPTOCELL_INTEG))
163*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_CRYPTOCELL_INTEG))
164*edcece15Srutigl@gmail.com
165*edcece15Srutigl@gmail.com# Enable PIE support for RESET_TO_BL31 case
166*edcece15Srutigl@gmail.comifeq (${RESET_TO_BL31},1)
167*edcece15Srutigl@gmail.comENABLE_PIE	:=	1
168*edcece15Srutigl@gmail.comendif
169*edcece15Srutigl@gmail.com
170*edcece15Srutigl@gmail.com# CryptoCell integration relies on coherent buffers for passing data from
171*edcece15Srutigl@gmail.com# the AP CPU to the CryptoCell
172*edcece15Srutigl@gmail.com
173*edcece15Srutigl@gmail.comifeq (${ARM_CRYPTOCELL_INTEG},1)
174*edcece15Srutigl@gmail.comifeq (${USE_COHERENT_MEM},0)
175*edcece15Srutigl@gmail.com$(error "ARM_CRYPTOCELL_INTEG needs USE_COHERENT_MEM to be set.")
176*edcece15Srutigl@gmail.comendif
177*edcece15Srutigl@gmail.comendif
178*edcece15Srutigl@gmail.com
179*edcece15Srutigl@gmail.comPLAT_INCLUDES	:=	-Iinclude/plat/nuvoton/npcm845x \
180*edcece15Srutigl@gmail.com		-Iinclude/plat/nuvoton/common \
181*edcece15Srutigl@gmail.com		-Iinclude/drivers/nuvoton/npcm845x \
182*edcece15Srutigl@gmail.com
183*edcece15Srutigl@gmail.comifeq (${ARCH}, aarch64)
184*edcece15Srutigl@gmail.comPLAT_INCLUDES	+=	-Iinclude/plat/arm/common/aarch64
185*edcece15Srutigl@gmail.comendif
186*edcece15Srutigl@gmail.com
187*edcece15Srutigl@gmail.com# Include GICv3 driver files
188*edcece15Srutigl@gmail.cominclude drivers/arm/gic/v2/gicv2.mk
189*edcece15Srutigl@gmail.com
190*edcece15Srutigl@gmail.comNPCM850_GIC_SOURCES	:=	${GICV2_SOURCES}
191*edcece15Srutigl@gmail.com
192*edcece15Srutigl@gmail.comBL31_SOURCES	+=lib/cpus/aarch64/cortex_a35.S \
193*edcece15Srutigl@gmail.com		plat/common/plat_psci_common.c \
194*edcece15Srutigl@gmail.com		drivers/ti/uart/aarch64/16550_console.S \
195*edcece15Srutigl@gmail.com		plat/nuvoton/npcm845x/npcm845x_psci.c \
196*edcece15Srutigl@gmail.com		plat/nuvoton/npcm845x/npcm845x_serial_port.c \
197*edcece15Srutigl@gmail.com		plat/nuvoton/common/nuvoton_topology.c \
198*edcece15Srutigl@gmail.com		plat/nuvoton/npcm845x/npcm845x_bl31_setup.c
199*edcece15Srutigl@gmail.com
200*edcece15Srutigl@gmail.comPLAT_BL_COMMON_SOURCES	:=	drivers/delay_timer/delay_timer.c \
201*edcece15Srutigl@gmail.com		drivers/delay_timer/generic_delay_timer.c \
202*edcece15Srutigl@gmail.com		plat/common/plat_gicv2.c \
203*edcece15Srutigl@gmail.com		plat/arm/common/arm_gicv2.c \
204*edcece15Srutigl@gmail.com		plat/nuvoton/common/plat_nuvoton_gic.c \
205*edcece15Srutigl@gmail.com		${NPCM850_GIC_SOURCES} \
206*edcece15Srutigl@gmail.com		plat/nuvoton/npcm845x/npcm845x_common.c \
207*edcece15Srutigl@gmail.com		plat/nuvoton/common/nuvoton_helpers.S \
208*edcece15Srutigl@gmail.com		lib/semihosting/semihosting.c \
209*edcece15Srutigl@gmail.com		lib/semihosting/${ARCH}/semihosting_call.S \
210*edcece15Srutigl@gmail.com		plat/arm/common/arm_common.c \
211*edcece15Srutigl@gmail.com		plat/arm/common/arm_console.c
212*edcece15Srutigl@gmail.com
213*edcece15Srutigl@gmail.comifeq (${ARM_XLAT_TABLES_LIB_V1}, 1)
214*edcece15Srutigl@gmail.comPLAT_BL_COMMON_SOURCES	+=	lib/xlat_tables/xlat_tables_common.c \
215*edcece15Srutigl@gmail.com		lib/xlat_tables/${ARCH}/xlat_tables.c
216*edcece15Srutigl@gmail.comelse
217*edcece15Srutigl@gmail.cominclude lib/xlat_tables_v2/xlat_tables.mk
218*edcece15Srutigl@gmail.com
219*edcece15Srutigl@gmail.comPLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}
220*edcece15Srutigl@gmail.comendif
221*edcece15Srutigl@gmail.com
222*edcece15Srutigl@gmail.comARM_IO_SOURCES	+=	plat/arm/common/arm_io_storage.c \
223*edcece15Srutigl@gmail.com		plat/arm/common/fconf/arm_fconf_io.c
224*edcece15Srutigl@gmail.com
225*edcece15Srutigl@gmail.comifeq (${SPD},spmd)
226*edcece15Srutigl@gmail.comifeq (${SPMD_SPM_AT_SEL2},1)
227*edcece15Srutigl@gmail.comARM_IO_SOURCES	+=	plat/arm/common/fconf/arm_fconf_sp.c
228*edcece15Srutigl@gmail.comendif
229*edcece15Srutigl@gmail.comendif
230*edcece15Srutigl@gmail.com
231*edcece15Srutigl@gmail.comBL1_SOURCES	+=	drivers/io/io_fip.c \
232*edcece15Srutigl@gmail.com		drivers/io/io_memmap.c \
233*edcece15Srutigl@gmail.com		drivers/io/io_storage.c \
234*edcece15Srutigl@gmail.com		plat/arm/common/arm_bl1_setup.c \
235*edcece15Srutigl@gmail.com		plat/arm/common/arm_err.c \
236*edcece15Srutigl@gmail.com		${ARM_IO_SOURCES}
237*edcece15Srutigl@gmail.com
238*edcece15Srutigl@gmail.comifdef EL3_PAYLOAD_BASE
239*edcece15Srutigl@gmail.com# Need the plat_arm_program_trusted_mailbox() function to release secondary CPUs
240*edcece15Srutigl@gmail.com# from their holding pen
241*edcece15Srutigl@gmail.comBL1_SOURCES	+=	plat/arm/common/arm_pm.c
242*edcece15Srutigl@gmail.comendif
243*edcece15Srutigl@gmail.com
244*edcece15Srutigl@gmail.comBL2_SOURCES	+=	drivers/delay_timer/delay_timer.c \
245*edcece15Srutigl@gmail.com		drivers/delay_timer/generic_delay_timer.c \
246*edcece15Srutigl@gmail.com		drivers/io/io_fip.c \
247*edcece15Srutigl@gmail.com		drivers/io/io_memmap.c \
248*edcece15Srutigl@gmail.com		drivers/io/io_storage.c \
249*edcece15Srutigl@gmail.com		plat/arm/common/arm_bl2_setup.c \
250*edcece15Srutigl@gmail.com		plat/arm/common/arm_err.c \
251*edcece15Srutigl@gmail.com		${ARM_IO_SOURCES}
252*edcece15Srutigl@gmail.com
253*edcece15Srutigl@gmail.com# Firmware Configuration Framework sources
254*edcece15Srutigl@gmail.cominclude lib/fconf/fconf.mk
255*edcece15Srutigl@gmail.com
256*edcece15Srutigl@gmail.com# Add `libfdt` and Arm common helpers required for Dynamic Config
257*edcece15Srutigl@gmail.cominclude lib/libfdt/libfdt.mk
258*edcece15Srutigl@gmail.com
259*edcece15Srutigl@gmail.comDYN_CFG_SOURCES	+=	plat/arm/common/arm_dyn_cfg.c \
260*edcece15Srutigl@gmail.com		plat/arm/common/arm_dyn_cfg_helpers.c \
261*edcece15Srutigl@gmail.com		common/fdt_wrappers.c
262*edcece15Srutigl@gmail.com
263*edcece15Srutigl@gmail.comBL1_SOURCES	+=	${DYN_CFG_SOURCES}
264*edcece15Srutigl@gmail.comBL2_SOURCES	+=	${DYN_CFG_SOURCES}
265*edcece15Srutigl@gmail.com
266*edcece15Srutigl@gmail.comifeq (${BL2_AT_EL3},1)
267*edcece15Srutigl@gmail.comBL2_SOURCES	+=	plat/arm/common/arm_bl2_el3_setup.c
268*edcece15Srutigl@gmail.comendif
269*edcece15Srutigl@gmail.com
270*edcece15Srutigl@gmail.com# Because BL1/BL2 execute in AArch64 mode but BL32 in AArch32 we need to use
271*edcece15Srutigl@gmail.com# the AArch32 descriptors.
272*edcece15Srutigl@gmail.comBL2_SOURCES	+=	plat/arm/common/${ARCH}/arm_bl2_mem_params_desc.c
273*edcece15Srutigl@gmail.comBL2_SOURCES	+=	plat/arm/common/arm_image_load.c \
274*edcece15Srutigl@gmail.com		common/desc_image_load.c
275*edcece15Srutigl@gmail.com
276*edcece15Srutigl@gmail.comifeq (${SPD},opteed)
277*edcece15Srutigl@gmail.comBL2_SOURCES	+=	lib/optee/optee_utils.c
278*edcece15Srutigl@gmail.comendif
279*edcece15Srutigl@gmail.com
280*edcece15Srutigl@gmail.comBL2U_SOURCES	+=	drivers/delay_timer/delay_timer.c \
281*edcece15Srutigl@gmail.com		drivers/delay_timer/generic_delay_timer.c \
282*edcece15Srutigl@gmail.com		plat/arm/common/arm_bl2u_setup.c
283*edcece15Srutigl@gmail.com
284*edcece15Srutigl@gmail.comBL31_SOURCES	+=	plat/arm/common/arm_bl31_setup.c \
285*edcece15Srutigl@gmail.com		plat/nuvoton/common/nuvoton_pm.c \
286*edcece15Srutigl@gmail.com		plat/nuvoton/common/nuvoton_topology.c \
287*edcece15Srutigl@gmail.com		plat/common/plat_psci_common.c
288*edcece15Srutigl@gmail.com
289*edcece15Srutigl@gmail.comifeq (${ENABLE_PMF}, 1)
290*edcece15Srutigl@gmail.comifeq (${ARCH}, aarch64)
291*edcece15Srutigl@gmail.comBL31_SOURCES	+=	plat/arm/common/aarch64/execution_state_switch.c \
292*edcece15Srutigl@gmail.com		plat/arm/common/arm_sip_svc.c \
293*edcece15Srutigl@gmail.com		lib/pmf/pmf_smc.c
294*edcece15Srutigl@gmail.comelse
295*edcece15Srutigl@gmail.comBL32_SOURCES	+=	plat/arm/common/arm_sip_svc.c \
296*edcece15Srutigl@gmail.com		lib/pmf/pmf_smc.c
297*edcece15Srutigl@gmail.comendif
298*edcece15Srutigl@gmail.comendif
299*edcece15Srutigl@gmail.com
300*edcece15Srutigl@gmail.comifeq (${EL3_EXCEPTION_HANDLING},1)
301*edcece15Srutigl@gmail.comBL31_SOURCES	+=	plat/arm/common/aarch64/arm_ehf.c
302*edcece15Srutigl@gmail.comendif
303*edcece15Srutigl@gmail.com
304*edcece15Srutigl@gmail.comifeq (${SDEI_SUPPORT},1)
305*edcece15Srutigl@gmail.comBL31_SOURCES	+=	plat/arm/common/aarch64/arm_sdei.c
306*edcece15Srutigl@gmail.comifeq (${SDEI_IN_FCONF},1)
307*edcece15Srutigl@gmail.comBL31_SOURCES	+=	plat/arm/common/fconf/fconf_sdei_getter.c
308*edcece15Srutigl@gmail.comendif
309*edcece15Srutigl@gmail.comendif
310*edcece15Srutigl@gmail.com
311*edcece15Srutigl@gmail.com# RAS sources
312*edcece15Srutigl@gmail.comifeq (${RAS_EXTENSION},1)
313*edcece15Srutigl@gmail.comBL31_SOURCES	+=	lib/extensions/ras/std_err_record.c \
314*edcece15Srutigl@gmail.com		lib/extensions/ras/ras_common.c
315*edcece15Srutigl@gmail.comendif
316*edcece15Srutigl@gmail.com
317*edcece15Srutigl@gmail.com# Pointer Authentication sources
318*edcece15Srutigl@gmail.comifeq (${ENABLE_PAUTH}, 1)
319*edcece15Srutigl@gmail.comPLAT_BL_COMMON_SOURCES	+=	plat/arm/common/aarch64/arm_pauth.c \
320*edcece15Srutigl@gmail.com		lib/extensions/pauth/pauth_helpers.S
321*edcece15Srutigl@gmail.comendif
322*edcece15Srutigl@gmail.com
323*edcece15Srutigl@gmail.comifeq (${SPD},spmd)
324*edcece15Srutigl@gmail.comBL31_SOURCES	+=	plat/common/plat_spmd_manifest.c \
325*edcece15Srutigl@gmail.com		common/fdt_wrappers.c \
326*edcece15Srutigl@gmail.com		${LIBFDT_SRCS}
327*edcece15Srutigl@gmail.comendif
328*edcece15Srutigl@gmail.com
329*edcece15Srutigl@gmail.comifneq (${TRUSTED_BOARD_BOOT},0)
330*edcece15Srutigl@gmail.com# Include common TBB sources
331*edcece15Srutigl@gmail.comAUTH_SOURCES	:=	drivers/auth/auth_mod.c \
332*edcece15Srutigl@gmail.com		drivers/auth/crypto_mod.c \
333*edcece15Srutigl@gmail.com		drivers/auth/img_parser_mod.c \
334*edcece15Srutigl@gmail.com		lib/fconf/fconf_tbbr_getter.c
335*edcece15Srutigl@gmail.com
336*edcece15Srutigl@gmail.com# Include the selected chain of trust sources.
337*edcece15Srutigl@gmail.comifeq (${COT},tbbr)
338*edcece15Srutigl@gmail.comAUTH_SOURCES	+=	drivers/auth/tbbr/tbbr_cot_common.c
339*edcece15Srutigl@gmail.comBL1_SOURCES	+=	drivers/auth/tbbr/tbbr_cot_bl1.c
340*edcece15Srutigl@gmail.comBL2_SOURCES	+=	drivers/auth/tbbr/tbbr_cot_bl2.c
341*edcece15Srutigl@gmail.comelse ifeq (${COT},dualroot)
342*edcece15Srutigl@gmail.comAUTH_SOURCES	+=	drivers/auth/dualroot/cot.c
343*edcece15Srutigl@gmail.comelse
344*edcece15Srutigl@gmail.com$(error Unknown chain of trust ${COT})
345*edcece15Srutigl@gmail.comendif
346*edcece15Srutigl@gmail.com
347*edcece15Srutigl@gmail.comBL1_SOURCES	+=	${AUTH_SOURCES} \
348*edcece15Srutigl@gmail.com		bl1/tbbr/tbbr_img_desc.c \
349*edcece15Srutigl@gmail.com		plat/arm/common/arm_bl1_fwu.c \
350*edcece15Srutigl@gmail.com		plat/common/tbbr/plat_tbbr.c
351*edcece15Srutigl@gmail.com
352*edcece15Srutigl@gmail.comBL2_SOURCES	+=	${AUTH_SOURCES} \
353*edcece15Srutigl@gmail.com		plat/common/tbbr/plat_tbbr.c
354*edcece15Srutigl@gmail.com
355*edcece15Srutigl@gmail.com$(eval $(call TOOL_ADD_IMG,ns_bl2u,--fwu,FWU_))
356*edcece15Srutigl@gmail.com
357*edcece15Srutigl@gmail.com# We expect to locate the *.mk files under the directories specified below
358*edcece15Srutigl@gmail.comifeq (${ARM_CRYPTOCELL_INTEG},0)
359*edcece15Srutigl@gmail.comCRYPTO_LIB_MK	:=	drivers/auth/mbedtls/mbedtls_crypto.mk
360*edcece15Srutigl@gmail.comelse
361*edcece15Srutigl@gmail.comCRYPTO_LIB_MK	:=	drivers/auth/cryptocell/cryptocell_crypto.mk
362*edcece15Srutigl@gmail.comendif
363*edcece15Srutigl@gmail.com
364*edcece15Srutigl@gmail.comIMG_PARSER_LIB_MK := drivers/auth/mbedtls/mbedtls_x509.mk
365*edcece15Srutigl@gmail.com
366*edcece15Srutigl@gmail.com$(info Including ${CRYPTO_LIB_MK})
367*edcece15Srutigl@gmail.cominclude ${CRYPTO_LIB_MK}
368*edcece15Srutigl@gmail.com
369*edcece15Srutigl@gmail.com$(info Including ${IMG_PARSER_LIB_MK})
370*edcece15Srutigl@gmail.cominclude ${IMG_PARSER_LIB_MK}
371*edcece15Srutigl@gmail.comendif
372*edcece15Srutigl@gmail.com
373*edcece15Srutigl@gmail.comifeq (${RECLAIM_INIT_CODE}, 1)
374*edcece15Srutigl@gmail.comifeq (${ARM_XLAT_TABLES_LIB_V1}, 1)
375*edcece15Srutigl@gmail.com$(error "To reclaim init code xlat tables v2 must be used")
376*edcece15Srutigl@gmail.comendif
377*edcece15Srutigl@gmail.comendif
378*edcece15Srutigl@gmail.com
379*edcece15Srutigl@gmail.comifeq (${MEASURED_BOOT},1)
380*edcece15Srutigl@gmail.comMEASURED_BOOT_MK := drivers/measured_boot/measured_boot.mk
381*edcece15Srutigl@gmail.com$(info Including ${MEASURED_BOOT_MK})
382*edcece15Srutigl@gmail.cominclude ${MEASURED_BOOT_MK}
383*edcece15Srutigl@gmail.comendif
384*edcece15Srutigl@gmail.com
385*edcece15Srutigl@gmail.comifeq (${EL3_EXCEPTION_HANDLING},1)
386*edcece15Srutigl@gmail.comBL31_SOURCES	+=	plat/arm/common/aarch64/arm_ehf.c
387*edcece15Srutigl@gmail.comendif
388*edcece15Srutigl@gmail.com
389*edcece15Srutigl@gmail.comBL1_SOURCES	:=
390*edcece15Srutigl@gmail.comBL2_SOURCES	:=
391*edcece15Srutigl@gmail.comBL2U_SOURCES	:=
392*edcece15Srutigl@gmail.com
393*edcece15Srutigl@gmail.comDEBUG_CONSOLE	?=	0
394*edcece15Srutigl@gmail.com$(eval $(call add_define,DEBUG_CONSOLE))
395*edcece15Srutigl@gmail.com
396*edcece15Srutigl@gmail.com$(eval $(call add_define,ARM_TSP_RAM_LOCATION_ID))
397*edcece15Srutigl@gmail.com
398