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