1*87056d31SPankaj Gupta# 2*87056d31SPankaj Gupta# Copyright 2018-2020 NXP 3*87056d31SPankaj Gupta# 4*87056d31SPankaj Gupta# SPDX-License-Identifier: BSD-3-Clause 5*87056d31SPankaj Gupta# 6*87056d31SPankaj Gupta 7*87056d31SPankaj Gupta 8*87056d31SPankaj Gupta # SoC-specific build parameters 9*87056d31SPankaj GuptaSOC := lx2160a 10*87056d31SPankaj GuptaPLAT_PATH := plat/nxp 11*87056d31SPankaj GuptaPLAT_COMMON_PATH:= plat/nxp/common 12*87056d31SPankaj GuptaPLAT_DRIVERS_PATH:= drivers/nxp 13*87056d31SPankaj GuptaPLAT_SOC_PATH := ${PLAT_PATH}/soc-${SOC} 14*87056d31SPankaj GuptaBOARD_PATH := ${PLAT_SOC_PATH}/${BOARD} 15*87056d31SPankaj Gupta 16*87056d31SPankaj Gupta # get SoC-specific defnitions 17*87056d31SPankaj Guptainclude ${PLAT_SOC_PATH}/soc.def 18*87056d31SPankaj Gupta 19*87056d31SPankaj Guptainclude ${PLAT_COMMON_PATH}/plat_make_helper/plat_build_macros.mk 20*87056d31SPankaj Gupta 21*87056d31SPankaj Gupta # SoC-specific 22*87056d31SPankaj GuptaNXP_WDOG_RESTART := yes 23*87056d31SPankaj Gupta 24*87056d31SPankaj Gupta 25*87056d31SPankaj Gupta # Selecting dependent module, 26*87056d31SPankaj Gupta # Selecting dependent drivers, and 27*87056d31SPankaj Gupta # Adding defines. 28*87056d31SPankaj Gupta 29*87056d31SPankaj Gupta # for features enabled above. 30*87056d31SPankaj Guptaifeq (${NXP_WDOG_RESTART}, yes) 31*87056d31SPankaj GuptaNXP_NV_SW_MAINT_LAST_EXEC_DATA := yes 32*87056d31SPankaj GuptaLS_EL3_INTERRUPT_HANDLER := yes 33*87056d31SPankaj Gupta$(eval $(call add_define, NXP_WDOG_RESTART)) 34*87056d31SPankaj Guptaendif 35*87056d31SPankaj Gupta 36*87056d31SPankaj Gupta 37*87056d31SPankaj Gupta # For Security Features 38*87056d31SPankaj GuptaDISABLE_FUSE_WRITE := 1 39*87056d31SPankaj Guptaifeq (${TRUSTED_BOARD_BOOT}, 1) 40*87056d31SPankaj Guptaifeq (${GENERATE_COT},1) 41*87056d31SPankaj Gupta# Save Keys to be used by DDR FIP image 42*87056d31SPankaj GuptaSAVE_KEYS=1 43*87056d31SPankaj Guptaendif 44*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,SMMU_NEEDED,BL2)) 45*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,SFP_NEEDED,BL2)) 46*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,SNVS_NEEDED,BL2)) 47*87056d31SPankaj Gupta# Used by create_pbl tool to 48*87056d31SPankaj Gupta# create bl2_<boot_mode>_sec.pbl image 49*87056d31SPankaj GuptaSECURE_BOOT := yes 50*87056d31SPankaj Guptaendif 51*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,CRYPTO_NEEDED,BL_COMM)) 52*87056d31SPankaj Gupta 53*87056d31SPankaj Gupta 54*87056d31SPankaj Gupta # Selecting Drivers for SoC 55*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,DCFG_NEEDED,BL_COMM)) 56*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,TIMER_NEEDED,BL_COMM)) 57*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,INTERCONNECT_NEEDED,BL_COMM)) 58*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,GIC_NEEDED,BL31)) 59*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,CONSOLE_NEEDED,BL_COMM)) 60*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,PMU_NEEDED,BL_COMM)) 61*87056d31SPankaj Gupta 62*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,DDR_DRIVER_NEEDED,BL2)) 63*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,TZASC_NEEDED,BL2)) 64*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,I2C_NEEDED,BL2)) 65*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,IMG_LOADR_NEEDED,BL2)) 66*87056d31SPankaj Gupta 67*87056d31SPankaj Gupta 68*87056d31SPankaj Gupta # Selecting PSCI & SIP_SVC support 69*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,PSCI_NEEDED,BL31)) 70*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,SIPSVC_NEEDED,BL31)) 71*87056d31SPankaj Gupta 72*87056d31SPankaj Gupta 73*87056d31SPankaj Gupta # Selecting Boot Source for the TFA images. 74*87056d31SPankaj Guptaifeq (${BOOT_MODE}, flexspi_nor) 75*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,XSPI_NEEDED,BL2)) 76*87056d31SPankaj Gupta$(eval $(call add_define,FLEXSPI_NOR_BOOT)) 77*87056d31SPankaj Guptaelse 78*87056d31SPankaj Guptaifeq (${BOOT_MODE}, sd) 79*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,SD_MMC_NEEDED,BL2)) 80*87056d31SPankaj Gupta$(eval $(call add_define,SD_BOOT)) 81*87056d31SPankaj Guptaelse 82*87056d31SPankaj Guptaifeq (${BOOT_MODE}, emmc) 83*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,SD_MMC_NEEDED,BL2)) 84*87056d31SPankaj Gupta$(eval $(call add_define,EMMC_BOOT)) 85*87056d31SPankaj Guptaelse 86*87056d31SPankaj Gupta$(error Un-supported Boot Mode = ${BOOT_MODE}) 87*87056d31SPankaj Guptaendif 88*87056d31SPankaj Guptaendif 89*87056d31SPankaj Guptaendif 90*87056d31SPankaj Gupta 91*87056d31SPankaj Gupta 92*87056d31SPankaj Gupta # Separate DDR-FIP image to be loaded. 93*87056d31SPankaj Gupta$(eval $(call SET_NXP_MAKE_FLAG,DDR_FIP_IO_NEEDED,BL2)) 94*87056d31SPankaj Gupta 95*87056d31SPankaj Gupta 96*87056d31SPankaj Gupta# Source File Addition 97*87056d31SPankaj Gupta# ##################### 98*87056d31SPankaj Gupta 99*87056d31SPankaj GuptaPLAT_INCLUDES += -I${PLAT_COMMON_PATH}/include/default\ 100*87056d31SPankaj Gupta -I${BOARD_PATH}\ 101*87056d31SPankaj Gupta -I${PLAT_COMMON_PATH}/include/default/ch_${CHASSIS}\ 102*87056d31SPankaj Gupta -I${PLAT_SOC_PATH}/include 103*87056d31SPankaj Gupta 104*87056d31SPankaj Guptaifeq (${SECURE_BOOT},yes) 105*87056d31SPankaj Guptainclude ${PLAT_COMMON_PATH}/tbbr/tbbr.mk 106*87056d31SPankaj Guptaendif 107*87056d31SPankaj Gupta 108*87056d31SPankaj Guptaifeq ($(WARM_BOOT),yes) 109*87056d31SPankaj Guptainclude ${PLAT_COMMON_PATH}/warm_reset/warm_reset.mk 110*87056d31SPankaj Guptaendif 111*87056d31SPankaj Gupta 112*87056d31SPankaj Guptaifeq (${NXP_NV_SW_MAINT_LAST_EXEC_DATA}, yes) 113*87056d31SPankaj Guptainclude ${PLAT_COMMON_PATH}/nv_storage/nv_storage.mk 114*87056d31SPankaj Guptaendif 115*87056d31SPankaj Gupta 116*87056d31SPankaj Guptaifeq (${PSCI_NEEDED}, yes) 117*87056d31SPankaj Guptainclude ${PLAT_COMMON_PATH}/psci/psci.mk 118*87056d31SPankaj Guptaendif 119*87056d31SPankaj Gupta 120*87056d31SPankaj Guptaifeq (${SIPSVC_NEEDED}, yes) 121*87056d31SPankaj Guptainclude ${PLAT_COMMON_PATH}/sip_svc/sipsvc.mk 122*87056d31SPankaj Guptaendif 123*87056d31SPankaj Gupta 124*87056d31SPankaj Guptaifeq (${DDR_FIP_IO_NEEDED}, yes) 125*87056d31SPankaj Guptainclude ${PLAT_COMMON_PATH}/fip_handler/ddr_fip/ddr_fip_io.mk 126*87056d31SPankaj Guptaendif 127*87056d31SPankaj Gupta 128*87056d31SPankaj Gupta # for fuse-fip & fuse-programming 129*87056d31SPankaj Guptaifeq (${FUSE_PROG}, 1) 130*87056d31SPankaj Guptainclude ${PLAT_COMMON_PATH}/fip_handler/fuse_fip/fuse.mk 131*87056d31SPankaj Guptaendif 132*87056d31SPankaj Gupta 133*87056d31SPankaj Guptaifeq (${IMG_LOADR_NEEDED},yes) 134*87056d31SPankaj Guptainclude $(PLAT_COMMON_PATH)/img_loadr/img_loadr.mk 135*87056d31SPankaj Guptaendif 136*87056d31SPankaj Gupta 137*87056d31SPankaj Gupta # Adding source files for the above selected drivers. 138*87056d31SPankaj Guptainclude ${PLAT_DRIVERS_PATH}/drivers.mk 139*87056d31SPankaj Gupta 140*87056d31SPankaj Gupta # Adding SoC specific files 141*87056d31SPankaj Guptainclude ${PLAT_SOC_PATH}/erratas_soc.mk 142*87056d31SPankaj Gupta 143*87056d31SPankaj GuptaPLAT_INCLUDES += ${NV_STORAGE_INCLUDES}\ 144*87056d31SPankaj Gupta ${WARM_RST_INCLUDES} 145*87056d31SPankaj Gupta 146*87056d31SPankaj GuptaBL31_SOURCES += ${PLAT_SOC_PATH}/$(ARCH)/${SOC}.S\ 147*87056d31SPankaj Gupta ${WARM_RST_BL31_SOURCES}\ 148*87056d31SPankaj Gupta ${PSCI_SOURCES}\ 149*87056d31SPankaj Gupta ${SIPSVC_SOURCES}\ 150*87056d31SPankaj Gupta ${PLAT_COMMON_PATH}/$(ARCH)/bl31_data.S 151*87056d31SPankaj Gupta 152*87056d31SPankaj GuptaPLAT_BL_COMMON_SOURCES += ${PLAT_COMMON_PATH}/$(ARCH)/ls_helpers.S\ 153*87056d31SPankaj Gupta ${PLAT_SOC_PATH}/aarch64/${SOC}_helpers.S\ 154*87056d31SPankaj Gupta ${NV_STORAGE_SOURCES}\ 155*87056d31SPankaj Gupta ${WARM_RST_BL_COMM_SOURCES}\ 156*87056d31SPankaj Gupta ${PLAT_SOC_PATH}/soc.c 157*87056d31SPankaj Gupta 158*87056d31SPankaj Guptaifeq (${TEST_BL31}, 1) 159*87056d31SPankaj GuptaBL31_SOURCES += ${PLAT_SOC_PATH}/$(ARCH)/bootmain64.S\ 160*87056d31SPankaj Gupta ${PLAT_SOC_PATH}/$(ARCH)/nonboot64.S 161*87056d31SPankaj Guptaendif 162*87056d31SPankaj Gupta 163*87056d31SPankaj GuptaBL2_SOURCES += ${DDR_CNTLR_SOURCES}\ 164*87056d31SPankaj Gupta ${TBBR_SOURCES}\ 165*87056d31SPankaj Gupta ${FUSE_SOURCES} 166*87056d31SPankaj Gupta 167*87056d31SPankaj Gupta 168*87056d31SPankaj Gupta # Adding TFA setup files 169*87056d31SPankaj Guptainclude ${PLAT_PATH}/common/setup/common.mk 170*87056d31SPankaj Gupta 171*87056d31SPankaj Gupta 172*87056d31SPankaj Gupta # Adding source files to generate separate DDR FIP image 173*87056d31SPankaj Guptainclude ${PLAT_SOC_PATH}/ddr_fip.mk 174