xref: /rk3399_ARM-atf/plat/nxp/common/setup/common.mk (revision a4c69581aec798af796d6783b51d9a62648c8db9)
1b53c2c5fSPankaj Gupta#
2b53c2c5fSPankaj Gupta# Copyright 2018-2021 NXP
3b53c2c5fSPankaj Gupta#
4b53c2c5fSPankaj Gupta# SPDX-License-Identifier: BSD-3-Clause
5b53c2c5fSPankaj Gupta#
6b53c2c5fSPankaj Gupta#
7b53c2c5fSPankaj Gupta
8b53c2c5fSPankaj Gupta###############################################################################
9b53c2c5fSPankaj Gupta# Flow begins in BL2 at EL3 mode
10*42d4d3baSArvind Ram PrakashRESET_TO_BL2			:= 1
11b53c2c5fSPankaj Gupta
12b53c2c5fSPankaj Gupta# Though one core is powered up by default, there are
13b53c2c5fSPankaj Gupta# platform specific ways to release more than one core
14b53c2c5fSPankaj GuptaCOLD_BOOT_SINGLE_CPU		:= 0
15b53c2c5fSPankaj Gupta
16b53c2c5fSPankaj GuptaPROGRAMMABLE_RESET_ADDRESS	:= 1
17b53c2c5fSPankaj Gupta
18b53c2c5fSPankaj GuptaUSE_COHERENT_MEM		:= 0
19b53c2c5fSPankaj Gupta
20b53c2c5fSPankaj Gupta# Use generic OID definition (tbbr_oid.h)
21b53c2c5fSPankaj GuptaUSE_TBBR_DEFS			:= 1
22b53c2c5fSPankaj Gupta
23b53c2c5fSPankaj GuptaPLAT_XLAT_TABLES_DYNAMIC	:= 0
24b53c2c5fSPankaj Gupta
25b53c2c5fSPankaj GuptaENABLE_SVE_FOR_NS		:= 0
26b53c2c5fSPankaj Gupta
27b53c2c5fSPankaj GuptaENABLE_STACK_PROTECTOR		:= 0
28b53c2c5fSPankaj Gupta
29b53c2c5fSPankaj GuptaERROR_DEPRECATED		:= 0
30b53c2c5fSPankaj Gupta
31b53c2c5fSPankaj GuptaLS_DISABLE_TRUSTED_WDOG		:= 1
32b53c2c5fSPankaj Gupta
33b53c2c5fSPankaj Gupta# On ARM platforms, separate the code and read-only data sections to allow
34b53c2c5fSPankaj Gupta# mapping the former as executable and the latter as execute-never.
35b53c2c5fSPankaj GuptaSEPARATE_CODE_AND_RODATA	:= 1
36b53c2c5fSPankaj Gupta
37b53c2c5fSPankaj Gupta# Enable new version of image loading on ARM platforms
38b53c2c5fSPankaj GuptaLOAD_IMAGE_V2			:= 1
39b53c2c5fSPankaj Gupta
40b53c2c5fSPankaj GuptaRCW				:= ""
41b53c2c5fSPankaj Gupta
42b53c2c5fSPankaj Guptaifneq (${SPD},none)
43b53c2c5fSPankaj Gupta$(eval $(call add_define, NXP_LOAD_BL32))
44b53c2c5fSPankaj Guptaendif
45b53c2c5fSPankaj Gupta
46b53c2c5fSPankaj Gupta###############################################################################
47b53c2c5fSPankaj Gupta
48b53c2c5fSPankaj GuptaPLAT_TOOL_PATH		:=	tools/nxp
49b53c2c5fSPankaj GuptaCREATE_PBL_TOOL_PATH	:=	${PLAT_TOOL_PATH}/create_pbl
50b53c2c5fSPankaj GuptaPLAT_SETUP_PATH		:=	${PLAT_PATH}/common/setup
51b53c2c5fSPankaj Gupta
52b53c2c5fSPankaj GuptaPLAT_INCLUDES		+=	-I${PLAT_SETUP_PATH}/include			\
53b53c2c5fSPankaj Gupta				-Iinclude/plat/arm/common			\
54b53c2c5fSPankaj Gupta				-Iinclude/drivers/arm   			\
55b53c2c5fSPankaj Gupta				-Iinclude/lib					\
56b53c2c5fSPankaj Gupta				-Iinclude/drivers/io			\
57b53c2c5fSPankaj Gupta				-Ilib/psci
58b53c2c5fSPankaj Gupta
59b53c2c5fSPankaj Gupta# Required without TBBR.
60b53c2c5fSPankaj Gupta# To include the defines for DDR PHY Images.
61b53c2c5fSPankaj GuptaPLAT_INCLUDES		+=	-Iinclude/common/tbbr
62b53c2c5fSPankaj Gupta
63b53c2c5fSPankaj Guptainclude ${PLAT_SETUP_PATH}/core.mk
64b53c2c5fSPankaj GuptaPLAT_BL_COMMON_SOURCES	+= 	${CPU_LIBS} \
65b53c2c5fSPankaj Gupta				plat/nxp/common/setup/ls_err.c		\
66b53c2c5fSPankaj Gupta				plat/nxp/common/setup/ls_common.c
67b53c2c5fSPankaj Gupta
68b53c2c5fSPankaj Guptaifneq (${ENABLE_STACK_PROTECTOR},0)
69b53c2c5fSPankaj GuptaPLAT_BL_COMMON_SOURCES	+=	${PLAT_SETUP_PATH}/ls_stack_protector.c
70b53c2c5fSPankaj Guptaendif
71b53c2c5fSPankaj Gupta
72b53c2c5fSPankaj Guptainclude lib/xlat_tables_v2/xlat_tables.mk
73b53c2c5fSPankaj Gupta
74b53c2c5fSPankaj GuptaPLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}
75b53c2c5fSPankaj Gupta
76b53c2c5fSPankaj GuptaBL2_SOURCES		+=	drivers/io/io_fip.c			\
77b53c2c5fSPankaj Gupta				drivers/io/io_memmap.c			\
78b53c2c5fSPankaj Gupta				drivers/io/io_storage.c			\
79b53c2c5fSPankaj Gupta				common/desc_image_load.c 		\
80b53c2c5fSPankaj Gupta				plat/nxp/common/setup/ls_image_load.c		\
81b53c2c5fSPankaj Gupta				plat/nxp/common/setup/ls_io_storage.c		\
82b53c2c5fSPankaj Gupta				plat/nxp/common/setup/ls_bl2_el3_setup.c	\
83b53c2c5fSPankaj Gupta				plat/nxp/common/setup/${ARCH}/ls_bl2_mem_params_desc.c
84b53c2c5fSPankaj Gupta
85b53c2c5fSPankaj GuptaBL31_SOURCES		+=	plat/nxp/common/setup/ls_bl31_setup.c	\
86b53c2c5fSPankaj Gupta
87b53c2c5fSPankaj Guptaifeq (${LS_EL3_INTERRUPT_HANDLER}, yes)
88b53c2c5fSPankaj Gupta$(eval $(call add_define, LS_EL3_INTERRUPT_HANDLER))
89b53c2c5fSPankaj GuptaBL31_SOURCES		+=	plat/nxp/common/setup/ls_interrupt_mgmt.c
90b53c2c5fSPankaj Guptaendif
91b53c2c5fSPankaj Gupta
92b53c2c5fSPankaj Guptaifeq (${TEST_BL31}, 1)
93b53c2c5fSPankaj GuptaBL31_SOURCES		+=	${TEST_SOURCES}
94b53c2c5fSPankaj Guptaendif
95b53c2c5fSPankaj Gupta
96b53c2c5fSPankaj Gupta# Verify build config
97b53c2c5fSPankaj Gupta# -------------------
98b53c2c5fSPankaj Gupta
99b53c2c5fSPankaj Guptaifneq (${LOAD_IMAGE_V2}, 1)
100b53c2c5fSPankaj Gupta  $(error Error: Layerscape needs LOAD_IMAGE_V2=1)
101b53c2c5fSPankaj Guptaelse
102b53c2c5fSPankaj Gupta$(eval $(call add_define,LOAD_IMAGE_V2))
103b53c2c5fSPankaj Guptaendif
104b53c2c5fSPankaj Gupta
105b53c2c5fSPankaj Guptainclude $(CREATE_PBL_TOOL_PATH)/create_pbl.mk
106