xref: /arm-trusted-firmware/include/drivers/arm/ethosn_cert.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2023, Arm Limited. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef ETHOSN_CERT_H
8*91f16700Schasinglulu #define ETHOSN_CERT_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include "ethosn_oid.h"
11*91f16700Schasinglulu #include <tbbr/tbb_ext.h>
12*91f16700Schasinglulu #include <tbbr/tbb_key.h>
13*91f16700Schasinglulu 
14*91f16700Schasinglulu /* Arm(R) Ethos(TM)-N NPU Certificates */
15*91f16700Schasinglulu #define ETHOSN_NPU_FW_KEY_CERT_DEF {							\
16*91f16700Schasinglulu 	.id = ETHOSN_NPU_FW_KEY_CERT,							\
17*91f16700Schasinglulu 	.opt = "npu-fw-key-cert",							\
18*91f16700Schasinglulu 	.help_msg = "Arm(R) Ethos(TM)-N NPU Firmware Key Certificate (output file)",	\
19*91f16700Schasinglulu 	.fn = NULL,									\
20*91f16700Schasinglulu 	.cn = "NPU Firmware Key Certificate",						\
21*91f16700Schasinglulu 	.key = NON_TRUSTED_WORLD_KEY,							\
22*91f16700Schasinglulu 	.issuer = ETHOSN_NPU_FW_KEY_CERT,						\
23*91f16700Schasinglulu 	.ext = {									\
24*91f16700Schasinglulu 		NON_TRUSTED_FW_NVCOUNTER_EXT,						\
25*91f16700Schasinglulu 		ETHOSN_NPU_FW_CONTENT_CERT_PK_EXT,					\
26*91f16700Schasinglulu 	},										\
27*91f16700Schasinglulu 	.num_ext = 2 \
28*91f16700Schasinglulu }
29*91f16700Schasinglulu 
30*91f16700Schasinglulu #define ETHOSN_NPU_FW_CONTENT_CERT_DEF {							\
31*91f16700Schasinglulu 	.id = ETHOSN_NPU_FW_CONTENT_CERT,						\
32*91f16700Schasinglulu 	.opt = "npu-fw-cert",								\
33*91f16700Schasinglulu 	.help_msg = "Arm(R) Ethos(TM)-N NPU Firmware Content Certificate (output file)",\
34*91f16700Schasinglulu 	.fn = NULL,									\
35*91f16700Schasinglulu 	.cn = "NPU Firmware Content Certificate",					\
36*91f16700Schasinglulu 	.key = ETHOSN_NPU_FW_CONTENT_CERT_KEY,						\
37*91f16700Schasinglulu 	.issuer = ETHOSN_NPU_FW_CONTENT_CERT,						\
38*91f16700Schasinglulu 	.ext = {									\
39*91f16700Schasinglulu 		NON_TRUSTED_FW_NVCOUNTER_EXT,						\
40*91f16700Schasinglulu 		ETHOSN_NPU_FW_HASH_EXT,							\
41*91f16700Schasinglulu 	},										\
42*91f16700Schasinglulu 	.num_ext = 2 \
43*91f16700Schasinglulu }
44*91f16700Schasinglulu 
45*91f16700Schasinglulu /* NPU Extensions */
46*91f16700Schasinglulu #define ETHOSN_NPU_FW_CONTENT_CERT_PK_EXT_DEF {						\
47*91f16700Schasinglulu 	.oid = ETHOSN_NPU_FW_CONTENT_CERT_PK_OID,					\
48*91f16700Schasinglulu 	.help_msg = "Arm(R) Ethos(TM)-N NPU Firmware content certificate public key",	\
49*91f16700Schasinglulu 	.sn = "NPUFirmwareContentCertPK",						\
50*91f16700Schasinglulu 	.ln = "NPU Firmware content cerificate public key",				\
51*91f16700Schasinglulu 	.asn1_type = V_ASN1_OCTET_STRING,						\
52*91f16700Schasinglulu 	.type = EXT_TYPE_PKEY,								\
53*91f16700Schasinglulu 	.attr.key = ETHOSN_NPU_FW_CONTENT_CERT_KEY \
54*91f16700Schasinglulu }
55*91f16700Schasinglulu 
56*91f16700Schasinglulu #define ETHOSN_NPU_FW_HASH_EXT_DEF {						\
57*91f16700Schasinglulu 	.oid = ETHOSN_NPU_FW_BINARY_OID,					\
58*91f16700Schasinglulu 	.opt = "npu-fw",							\
59*91f16700Schasinglulu 	.help_msg = "Arm(R) Ethos(TM)-N NPU Firmware image file (input file)",	\
60*91f16700Schasinglulu 	.sn = "NPUFirmwareHash",						\
61*91f16700Schasinglulu 	.ln = "NPU Firmware Hash (SHA256)",					\
62*91f16700Schasinglulu 	.asn1_type = V_ASN1_OCTET_STRING,					\
63*91f16700Schasinglulu 	.type = EXT_TYPE_HASH \
64*91f16700Schasinglulu }
65*91f16700Schasinglulu 
66*91f16700Schasinglulu /* NPU Keys */
67*91f16700Schasinglulu #define ETHOSN_NPU_FW_CONTENT_CERT_KEY_DEF {							  \
68*91f16700Schasinglulu 	.id = ETHOSN_NPU_FW_CONTENT_CERT_KEY,							  \
69*91f16700Schasinglulu 	.opt = "npu-fw-key",									  \
70*91f16700Schasinglulu 	.help_msg = "Arm(R) Ethos(TM)-N NPU Firmware Content Certificate key (input/output file)",\
71*91f16700Schasinglulu 	.desc = "NPU Firmware Content Certificate key"						  \
72*91f16700Schasinglulu }
73*91f16700Schasinglulu 
74*91f16700Schasinglulu #endif  /* ETHOSN_CERT_H */
75