xref: /rk3399_ARM-atf/drivers/arm/ethosn/ethosn_npu.mk (revision 1142b38f1de53116b8e9231420363b4ad8bc0f9c)
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