1*54fd6939SJiyong Park# 2*54fd6939SJiyong Park# Copyright 2020 NXP 3*54fd6939SJiyong Park# 4*54fd6939SJiyong Park# SPDX-License-Identifier: BSD-3-Clause 5*54fd6939SJiyong Park# 6*54fd6939SJiyong Park 7*54fd6939SJiyong ParkDDR_PHY_BIN_PATH ?= ./ddr-phy-binary/lx2160a 8*54fd6939SJiyong Park 9*54fd6939SJiyong Parkifeq (${DDR_IMEM_UDIMM_1D},) 10*54fd6939SJiyong Park DDR_IMEM_UDIMM_1D := ${DDR_PHY_BIN_PATH}/ddr4_pmu_train_imem.bin 11*54fd6939SJiyong Parkendif 12*54fd6939SJiyong Park 13*54fd6939SJiyong Parkifeq (${DDR_IMEM_UDIMM_2D},) 14*54fd6939SJiyong Park DDR_IMEM_UDIMM_2D := ${DDR_PHY_BIN_PATH}/ddr4_2d_pmu_train_imem.bin 15*54fd6939SJiyong Parkendif 16*54fd6939SJiyong Park 17*54fd6939SJiyong Parkifeq (${DDR_DMEM_UDIMM_1D},) 18*54fd6939SJiyong Park DDR_DMEM_UDIMM_1D := ${DDR_PHY_BIN_PATH}/ddr4_pmu_train_dmem.bin 19*54fd6939SJiyong Parkendif 20*54fd6939SJiyong Park 21*54fd6939SJiyong Parkifeq (${DDR_DMEM_UDIMM_2D},) 22*54fd6939SJiyong Park DDR_DMEM_UDIMM_2D := ${DDR_PHY_BIN_PATH}/ddr4_2d_pmu_train_dmem.bin 23*54fd6939SJiyong Parkendif 24*54fd6939SJiyong Park 25*54fd6939SJiyong Parkifeq (${DDR_IMEM_RDIMM_1D},) 26*54fd6939SJiyong Park DDR_IMEM_RDIMM_1D := ${DDR_PHY_BIN_PATH}/ddr4_rdimm_pmu_train_imem.bin 27*54fd6939SJiyong Parkendif 28*54fd6939SJiyong Park 29*54fd6939SJiyong Parkifeq (${DDR_IMEM_RDIMM_2D},) 30*54fd6939SJiyong Park DDR_IMEM_RDIMM_2D := ${DDR_PHY_BIN_PATH}/ddr4_rdimm2d_pmu_train_imem.bin 31*54fd6939SJiyong Parkendif 32*54fd6939SJiyong Park 33*54fd6939SJiyong Parkifeq (${DDR_DMEM_RDIMM_1D},) 34*54fd6939SJiyong Park DDR_DMEM_RDIMM_1D := ${DDR_PHY_BIN_PATH}/ddr4_rdimm_pmu_train_dmem.bin 35*54fd6939SJiyong Parkendif 36*54fd6939SJiyong Park 37*54fd6939SJiyong Parkifeq (${DDR_DMEM_RDIMM_2D},) 38*54fd6939SJiyong Park DDR_DMEM_RDIMM_2D := ${DDR_PHY_BIN_PATH}/ddr4_rdimm2d_pmu_train_dmem.bin 39*54fd6939SJiyong Parkendif 40*54fd6939SJiyong Park 41*54fd6939SJiyong Park$(shell mkdir -p '${BUILD_PLAT}') 42*54fd6939SJiyong Park 43*54fd6939SJiyong Parkifeq (${DDR_FIP_NAME},) 44*54fd6939SJiyong Parkifeq (${TRUSTED_BOARD_BOOT},1) 45*54fd6939SJiyong Park DDR_FIP_NAME := ddr_fip_sec.bin 46*54fd6939SJiyong Parkelse 47*54fd6939SJiyong Park DDR_FIP_NAME := ddr_fip.bin 48*54fd6939SJiyong Parkendif 49*54fd6939SJiyong Parkendif 50*54fd6939SJiyong Park 51*54fd6939SJiyong Parkifneq (${TRUSTED_BOARD_BOOT},1) 52*54fd6939SJiyong Park 53*54fd6939SJiyong ParkDDR_FIP_ARGS += --ddr-immem-udimm-1d ${DDR_IMEM_UDIMM_1D} \ 54*54fd6939SJiyong Park --ddr-immem-udimm-2d ${DDR_IMEM_UDIMM_2D} \ 55*54fd6939SJiyong Park --ddr-dmmem-udimm-1d ${DDR_DMEM_UDIMM_1D} \ 56*54fd6939SJiyong Park --ddr-dmmem-udimm-2d ${DDR_DMEM_UDIMM_2D} \ 57*54fd6939SJiyong Park --ddr-immem-rdimm-1d ${DDR_IMEM_RDIMM_1D} \ 58*54fd6939SJiyong Park --ddr-immem-rdimm-2d ${DDR_IMEM_RDIMM_2D} \ 59*54fd6939SJiyong Park --ddr-dmmem-rdimm-1d ${DDR_DMEM_RDIMM_1D} \ 60*54fd6939SJiyong Park --ddr-dmmem-rdimm-2d ${DDR_DMEM_RDIMM_2D} 61*54fd6939SJiyong Parkendif 62*54fd6939SJiyong Park 63*54fd6939SJiyong Park 64*54fd6939SJiyong Parkifeq (${TRUSTED_BOARD_BOOT},1) 65*54fd6939SJiyong Parkifeq (${MBEDTLS_DIR},) 66*54fd6939SJiyong Parkinclude plat/nxp/soc-lx2160a/ddr_sb.mk 67*54fd6939SJiyong Parkelse 68*54fd6939SJiyong Parkinclude plat/nxp/soc-lx2160a/ddr_tbbr.mk 69*54fd6939SJiyong Park 70*54fd6939SJiyong Park# Variables for use with Certificate Generation Tool 71*54fd6939SJiyong ParkCRTTOOLPATH ?= tools/cert_create 72*54fd6939SJiyong ParkCRTTOOL ?= ${CRTTOOLPATH}/cert_create${BIN_EXT} 73*54fd6939SJiyong Park 74*54fd6939SJiyong Parkifneq (${GENERATE_COT},0) 75*54fd6939SJiyong Parkddr_certificates: ${DDR_CRT_DEPS} ${CRTTOOL} 76*54fd6939SJiyong Park ${Q}${CRTTOOL} ${DDR_CRT_ARGS} 77*54fd6939SJiyong Park @${ECHO_BLANK_LINE} 78*54fd6939SJiyong Park @echo "Built $@ successfully" 79*54fd6939SJiyong Park @echo "DDR certificates can be found in ${BUILD_PLAT}" 80*54fd6939SJiyong Park @${ECHO_BLANK_LINE} 81*54fd6939SJiyong Parkendif 82*54fd6939SJiyong Parkendif 83*54fd6939SJiyong Parkendif 84*54fd6939SJiyong Park 85*54fd6939SJiyong Park# Variables for use with Firmware Image Package 86*54fd6939SJiyong ParkFIPTOOLPATH ?= tools/fiptool 87*54fd6939SJiyong ParkFIPTOOL ?= ${FIPTOOLPATH}/fiptool${BIN_EXT} 88*54fd6939SJiyong Park 89*54fd6939SJiyong Park${BUILD_PLAT}/${DDR_FIP_NAME}: ${DDR_FIP_DEPS} ${FIPTOOL} 90*54fd6939SJiyong Park $(eval ${CHECK_DDR_FIP_CMD}) 91*54fd6939SJiyong Park ${Q}${FIPTOOL} create ${DDR_FIP_ARGS} $@ 92*54fd6939SJiyong Park ${Q}${FIPTOOL} info $@ 93*54fd6939SJiyong Park @${ECHO_BLANK_LINE} 94*54fd6939SJiyong Park @echo "Built $@ successfully" 95*54fd6939SJiyong Park @${ECHO_BLANK_LINE} 96*54fd6939SJiyong Park 97*54fd6939SJiyong Parkfip_ddr: ${BUILD_PLAT}/${DDR_FIP_NAME} 98