1*352366edSRajasekaran Kalidoss# 2*352366edSRajasekaran Kalidoss# Copyright (c) 2023, Arm Limited. All rights reserved. 3*352366edSRajasekaran Kalidoss# 4*352366edSRajasekaran Kalidoss# SPDX-License-Identifier: BSD-3-Clause 5*352366edSRajasekaran Kalidoss# 6*352366edSRajasekaran Kalidoss 7*352366edSRajasekaran Kalidoss# Arm(R) Ethos(TM)-N NPU SiP service 8*352366edSRajasekaran KalidossETHOSN_NPU_DRIVER := 0 9*352366edSRajasekaran Kalidoss 10*352366edSRajasekaran Kalidoss$(eval $(call assert_boolean,ETHOSN_NPU_DRIVER)) 11*352366edSRajasekaran Kalidoss$(eval $(call add_define,ETHOSN_NPU_DRIVER)) 12*352366edSRajasekaran Kalidoss 13*352366edSRajasekaran Kalidoss#Ethos-N NPU TZMP1 14*352366edSRajasekaran KalidossETHOSN_NPU_TZMP1 := 0 15*352366edSRajasekaran Kalidoss$(eval $(call assert_boolean,ETHOSN_NPU_TZMP1)) 16*352366edSRajasekaran Kalidoss$(eval $(call add_define,ETHOSN_NPU_TZMP1)) 17*352366edSRajasekaran Kalidossifeq (${ETHOSN_NPU_TZMP1},1) 18*352366edSRajasekaran Kalidoss ifeq (${ETHOSN_NPU_DRIVER},0) 19*352366edSRajasekaran Kalidoss $(error "ETHOSN_NPU_TZMP1 is only available if ETHOSN_NPU_DRIVER=1) 20*352366edSRajasekaran Kalidoss endif 21*352366edSRajasekaran Kalidoss ifeq (${PLAT},juno) 22*352366edSRajasekaran Kalidoss $(eval $(call add_define,JUNO_ETHOSN_TZMP1)) 23*352366edSRajasekaran Kalidoss else 24*352366edSRajasekaran Kalidoss $(error "ETHOSN_NPU_TZMP1 only supported on Juno platform, not ", ${PLAT}) 25*352366edSRajasekaran Kalidoss endif 26*352366edSRajasekaran Kalidoss 27*352366edSRajasekaran Kalidoss ifeq (${TRUSTED_BOARD_BOOT},0) 28*352366edSRajasekaran Kalidoss # We rely on TRUSTED_BOARD_BOOT to prevent the firmware code from being 29*352366edSRajasekaran Kalidoss # tampered with, which is required to protect the confidentiality of protected 30*352366edSRajasekaran Kalidoss # inference data. 31*352366edSRajasekaran Kalidoss $(error "ETHOSN_NPU_TZMP1 is only available if TRUSTED_BOARD_BOOT is enabled) 32*352366edSRajasekaran Kalidoss endif 33*352366edSRajasekaran Kalidoss 34*352366edSRajasekaran Kalidoss # We need the FW certificate and key certificate 35*352366edSRajasekaran Kalidoss $(eval $(call TOOL_ADD_PAYLOAD,${BUILD_PLAT}/npu_fw_key.crt,--npu-fw-key-cert)) 36*352366edSRajasekaran Kalidoss $(eval $(call TOOL_ADD_PAYLOAD,${BUILD_PLAT}/npu_fw_content.crt,--npu-fw-cert)) 37*352366edSRajasekaran Kalidoss # We need the firmware to be built into the FIP 38*352366edSRajasekaran Kalidoss $(eval $(call TOOL_ADD_IMG,ETHOSN_NPU_FW,--npu-fw)) 39*352366edSRajasekaran Kalidoss 40*352366edSRajasekaran Kalidoss # Needed for our OIDs to be available in tbbr_cot_bl2.c 41*352366edSRajasekaran Kalidoss $(eval $(call add_define, PLAT_DEF_OID)) 42*352366edSRajasekaran Kalidoss 43*352366edSRajasekaran Kalidoss # Needed so that UUIDs from the FIP are available in BL2 44*352366edSRajasekaran Kalidoss $(eval $(call add_define,PLAT_DEF_FIP_UUID)) 45*352366edSRajasekaran Kalidoss 46*352366edSRajasekaran Kalidoss PLAT_INCLUDES += -I${PLAT_DIR}certificate/include 47*352366edSRajasekaran Kalidoss PLAT_INCLUDES += -Iinclude/drivers/arm/ 48*352366edSRajasekaran Kalidoss PLAT_INCLUDES += -I${PLAT_DIR}fip 49*352366edSRajasekaran Kalidossendif 50