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