xref: /arm-trusted-firmware/tools/nxp/create_pbl/pbl_ch2.mk (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu#
2*91f16700Schasinglulu# Copyright 2020 NXP
3*91f16700Schasinglulu#
4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu#
6*91f16700Schasinglulu#
7*91f16700Schasinglulu
8*91f16700SchasingluluCREATE_PBL	?=	${CREATE_PBL_TOOL_PATH}/create_pbl${BIN_EXT}
9*91f16700SchasingluluBYTE_SWAP	?=	${CREATE_PBL_TOOL_PATH}/byte_swap${BIN_EXT}
10*91f16700Schasinglulu
11*91f16700SchasingluluHOST_GCC	:= gcc
12*91f16700Schasinglulu
13*91f16700Schasinglulu.PHONY: pbl
14*91f16700Schasinglulupbl:	${BUILD_PLAT}/bl2.bin
15*91f16700Schasingluluifeq ($(SECURE_BOOT),yes)
16*91f16700Schasinglulupbl: ${BUILD_PLAT}/bl2.bin
17*91f16700Schasingluluifeq ($(RCW),"")
18*91f16700Schasinglulu	${Q}echo "Platform ${PLAT} requires rcw file. Please set RCW to point to the right RCW file for boot mode ${BOOT_MODE}"
19*91f16700Schasingluluelse
20*91f16700Schasinglulu	# Generate header for bl2.bin
21*91f16700Schasinglulu	$(Q)$(CST_DIR)/create_hdr_isbc --in ${BUILD_PLAT}/bl2.bin --out ${BUILD_PLAT}/hdr_bl2 ${BL2_INPUT_FILE}
22*91f16700Schasinglulu	# Compile create_pbl tool
23*91f16700Schasinglulu	${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" --no-print-directory -C ${CREATE_PBL_TOOL_PATH};\
24*91f16700Schasinglulu	# Add bl2.bin to RCW
25*91f16700Schasinglulu	${CREATE_PBL} -r ${RCW} -i ${BUILD_PLAT}/bl2.bin -b ${BOOT_MODE} -c ${SOC_NUM} -d ${BL2_BASE} -e ${BL2_BASE}\
26*91f16700Schasinglulu			-o ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl ;\
27*91f16700Schasinglulu	# Add header to RCW
28*91f16700Schasinglulu	${CREATE_PBL} -r ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl -i ${BUILD_PLAT}/hdr_bl2 -b ${BOOT_MODE} -c ${SOC_NUM} \
29*91f16700Schasinglulu			-d ${BL2_HDR_LOC} -e ${BL2_HDR_LOC} -o ${BUILD_PLAT}/bl2_${BOOT_MODE}_sec.pbl -s;\
30*91f16700Schasinglulu	rm ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl
31*91f16700Schasinglulu# Swapping of RCW is required for QSPi Chassis 2 devices
32*91f16700Schasingluluifeq (${BOOT_MODE}, qspi)
33*91f16700Schasingluluifeq ($(SWAP),1)
34*91f16700Schasinglulu	${Q}echo "Byteswapping RCW for QSPI"
35*91f16700Schasinglulu	${BYTE_SWAP} ${BUILD_PLAT}/bl2_${BOOT_MODE}_sec.pbl;
36*91f16700Schasingluluendif # SWAP
37*91f16700Schasingluluendif # BOOT_MODE
38*91f16700Schasinglulu	cd ${CREATE_PBL_TOOL_PATH}; ${MAKE} clean ; cd -;
39*91f16700Schasingluluendif
40*91f16700Schasingluluelse  # NON SECURE_BOOT
41*91f16700Schasingluluifeq ($(RCW),"")
42*91f16700Schasinglulu	${Q}echo "Platform ${PLAT} requires rcw file. Please set RCW to point to the right RCW file for boot mode ${BOOT_MODE}"
43*91f16700Schasingluluelse
44*91f16700Schasinglulu	# -a option appends the image for Chassis 3 devices in case of non secure boot
45*91f16700Schasinglulu	${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" --no-print-directory -C ${CREATE_PBL_TOOL_PATH};
46*91f16700Schasinglulu	${CREATE_PBL} -r ${RCW} -i ${BUILD_PLAT}/bl2.bin -b ${BOOT_MODE} -c ${SOC_NUM} -d ${BL2_BASE} -e ${BL2_BASE} \
47*91f16700Schasinglulu	-o ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl ;
48*91f16700Schasinglulu# Swapping of RCW is required for QSPi Chassis 2 devices
49*91f16700Schasingluluifeq (${BOOT_MODE}, qspi)
50*91f16700Schasingluluifeq ($(SWAP),1)
51*91f16700Schasinglulu	${Q}echo "Byteswapping RCW for QSPI"
52*91f16700Schasinglulu	${BYTE_SWAP} ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl;
53*91f16700Schasingluluendif # SWAP
54*91f16700Schasingluluendif # BOOT_MODE
55*91f16700Schasinglulu	cd ${CREATE_PBL_TOOL_PATH}; ${MAKE} clean ; cd -;
56*91f16700Schasingluluendif
57*91f16700Schasingluluendif # SECURE_BOOT
58*91f16700Schasinglulu
59*91f16700Schasinglulu
60*91f16700Schasinglulu
61