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