1*91f16700Schasinglulu# 2*91f16700Schasinglulu# Copyright 2018-2020 NXP 3*91f16700Schasinglulu# Copyright (c) 2023, Arm Limited. All rights reserved. 4*91f16700Schasinglulu# 5*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause 6*91f16700Schasinglulu# 7*91f16700Schasinglulu# 8*91f16700Schasinglulu 9*91f16700SchasingluluNEED_FUSE := yes 10*91f16700Schasinglulu 11*91f16700Schasinglulu$(eval $(call add_define, PLAT_DEF_FIP_UUID)) 12*91f16700Schasinglulu$(eval $(call add_define, POLICY_FUSE_PROVISION)) 13*91f16700Schasinglulu$(eval $(call add_define, PLAT_TBBR_IMG_DEF)) 14*91f16700Schasinglulu 15*91f16700Schasinglulu$(eval $(call SET_NXP_MAKE_FLAG,IMG_LOADR_NEEDED,BL2)) 16*91f16700Schasinglulu$(eval $(call SET_NXP_MAKE_FLAG,SFP_NEEDED,BL2)) 17*91f16700Schasinglulu$(eval $(call SET_NXP_MAKE_FLAG,GPIO_NEEDED,BL2)) 18*91f16700Schasinglulu 19*91f16700SchasingluluFIP_HANDLER_PATH := ${PLAT_COMMON_PATH}/fip_handler 20*91f16700SchasingluluFIP_HANDLER_COMMON_PATH := ${FIP_HANDLER_PATH}/common 21*91f16700Schasinglulu 22*91f16700SchasingluluFUSE_SOURCES := ${FIP_HANDLER_PATH}/fuse_fip/fuse_io_storage.c 23*91f16700Schasinglulu 24*91f16700SchasingluluPLAT_INCLUDES += -I${FIP_HANDLER_COMMON_PATH}\ 25*91f16700Schasinglulu -I${FIP_HANDLER_PATH}/fuse_fip 26*91f16700Schasinglulu 27*91f16700SchasingluluFUSE_FIP_NAME := fuse_fip.bin 28*91f16700Schasinglulu 29*91f16700Schasinglulufip_fuse: ${BUILD_PLAT}/${FUSE_FIP_NAME} 30*91f16700Schasinglulu 31*91f16700Schasingluluifeq (${FUSE_PROV_FILE},) 32*91f16700Schasinglulu 33*91f16700Schasingluluelse 34*91f16700Schasingluluifeq (${TRUSTED_BOARD_BOOT},1) 35*91f16700SchasingluluFUSE_PROV_FILE_SB = $(notdir ${FUSE_PROV_FILE})_prov.sb 36*91f16700SchasingluluFUSE_FIP_ARGS += --fuse-prov ${BUILD_PLAT}/${FUSE_PROV_FILE_SB} 37*91f16700SchasingluluFUSE_FIP_DEPS += ${BUILD_PLAT}/${FUSE_PROV_FILE_SB} 38*91f16700Schasingluluelse 39*91f16700SchasingluluFUSE_FIP_ARGS += --fuse-prov ${FUSE_PROV_FILE} 40*91f16700SchasingluluFUSE_FIP_DEPS += ${FUSE_PROV_FILE} 41*91f16700Schasingluluendif 42*91f16700Schasingluluendif 43*91f16700Schasinglulu 44*91f16700Schasingluluifeq (${FUSE_UP_FILE},) 45*91f16700Schasingluluelse 46*91f16700Schasingluluifeq (${TRUSTED_BOARD_BOOT},1) 47*91f16700SchasingluluFUSE_UP_FILE_SB = $(notdir ${FUSE_UP_FILE})_up.sb 48*91f16700SchasingluluFUSE_FIP_ARGS += --fuse-up ${BUILD_PLAT}/${FUSE_UP_FILE_SB} 49*91f16700SchasingluluFUSE_FIP_DEPS += ${BUILD_PLAT}/${FUSE_UP_FILE_SB} 50*91f16700Schasingluluelse 51*91f16700SchasingluluFUSE_FIP_ARGS += --fuse-up ${FUSE_UP_FILE} 52*91f16700SchasingluluFUSE_FIP_DEPS += ${FUSE_UP_FILE} 53*91f16700Schasingluluendif 54*91f16700Schasingluluendif 55*91f16700Schasinglulu 56*91f16700Schasingluluifeq (${TRUSTED_BOARD_BOOT},1) 57*91f16700Schasinglulu 58*91f16700Schasingluluifeq (${MBEDTLS_DIR},) 59*91f16700Schasingluluelse 60*91f16700Schasinglulu $(error Error: Trusted Board Boot with X509 certificates not supported with FUSE_PROG build option) 61*91f16700Schasingluluendif 62*91f16700Schasinglulu 63*91f16700Schasinglulu# Path to CST directory is required to generate the CSF header 64*91f16700Schasinglulu# and prepend it to image before fip image gets generated 65*91f16700Schasingluluifeq (${CST_DIR},) 66*91f16700Schasinglulu $(error Error: CST_DIR not set) 67*91f16700Schasingluluendif 68*91f16700Schasinglulu 69*91f16700Schasingluluifeq (${FUSE_INPUT_FILE},) 70*91f16700SchasingluluFUSE_INPUT_FILE := $(PLAT_DRIVERS_PATH)/auth/csf_hdr_parser/${CSF_FILE} 71*91f16700Schasingluluendif 72*91f16700Schasinglulu 73*91f16700Schasingluluifeq (${FUSE_PROV_FILE},) 74*91f16700Schasingluluelse 75*91f16700Schasinglulu${BUILD_PLAT}/${FUSE_PROV_FILE_SB}: ${FUSE_PROV_FILE} 76*91f16700Schasinglulu @echo " Generating CSF Header for $@ $<" 77*91f16700Schasinglulu $(CST_DIR)/create_hdr_esbc --in $< --out $@ --app_off ${CSF_HDR_SZ} \ 78*91f16700Schasinglulu --app $< ${FUSE_INPUT_FILE} 79*91f16700Schasingluluendif 80*91f16700Schasinglulu 81*91f16700Schasingluluifeq (${FUSE_UP_FILE},) 82*91f16700Schasingluluelse 83*91f16700Schasinglulu${BUILD_PLAT}/${FUSE_UP_FILE_SB}: ${FUSE_UP_FILE} 84*91f16700Schasinglulu @echo " Generating CSF Header for $@ $<" 85*91f16700Schasinglulu $(CST_DIR)/create_hdr_esbc --in $< --out $@ --app_off ${CSF_HDR_SZ} \ 86*91f16700Schasinglulu --app $< ${FUSE_INPUT_FILE} 87*91f16700Schasingluluendif 88*91f16700Schasinglulu 89*91f16700Schasingluluendif 90*91f16700Schasinglulu 91*91f16700Schasinglulu${BUILD_PLAT}/${FUSE_FIP_NAME}: fiptool ${FUSE_FIP_DEPS} 92*91f16700Schasingluluifeq (${FUSE_FIP_DEPS},) 93*91f16700Schasinglulu $(error "Error: FUSE_PROV_FILE or/and FUSE_UP_FILE needs to point to the right file") 94*91f16700Schasingluluendif 95*91f16700Schasinglulu ${FIPTOOL} create ${FUSE_FIP_ARGS} $@ 96*91f16700Schasinglulu ${FIPTOOL} info $@ 97*91f16700Schasinglulu @${ECHO_BLANK_LINE} 98*91f16700Schasinglulu @echo "Built $@ successfully" 99*91f16700Schasinglulu @${ECHO_BLANK_LINE} 100