1 /*
2  * Copyright (c) 2024, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef METADATA_H
8 #define METADATA_H
9 
10 /* Minimum measurement value size that can be requested to store */
11 #define MEASUREMENT_VALUE_MIN_SIZE	32U
12 /* Maximum measurement value size that can be requested to store */
13 #define MEASUREMENT_VALUE_MAX_SIZE	64U
14 /* Minimum signer id size that can be requested to store */
15 #define SIGNER_ID_MIN_SIZE		MEASUREMENT_VALUE_MIN_SIZE
16 /* Maximum signer id size that can be requested to store */
17 #define SIGNER_ID_MAX_SIZE		MEASUREMENT_VALUE_MAX_SIZE
18 /* The theoretical maximum image version is: "255.255.65535\0" */
19 #define VERSION_MAX_SIZE		14U
20 /* Example sw_type: "BL_2, BL_33, etc." */
21 #define SW_TYPE_MAX_SIZE		32U
22 
23 /*
24  * Images, measured during the boot process, have some associated metadata.
25  * One of these types of metadata is the image identifier strings. These macros
26  * define these strings. They are used across the different measured boot
27  * backends.
28  * Note that these strings follow the standardization recommendations
29  * defined in the Arm Server Base Security Guide (a.k.a. SBSG, Arm DEN 0086),
30  * where applicable. They should not be changed in the code.
31  * Where the SBSG does not make recommendations, we are free to choose any
32  * naming convention.
33  * The key thing is to choose meaningful strings so that when the measured boot
34  * metadata is used in attestation, the different components can be identified.
35  */
36 #define MBOOT_BL2_IMAGE_STRING		"BL_2"
37 #define MBOOT_BL31_IMAGE_STRING		"SECURE_RT_EL3"
38 #if defined(SPD_opteed)
39 #define MBOOT_BL32_IMAGE_STRING		"SECURE_RT_EL1_OPTEE"
40 #elif defined(SPD_tspd)
41 #define MBOOT_BL32_IMAGE_STRING		"SECURE_RT_EL1_TSPD"
42 #elif defined(SPD_tlkd)
43 #define MBOOT_BL32_IMAGE_STRING		"SECURE_RT_EL1_TLKD"
44 #elif defined(SPD_trusty)
45 #define MBOOT_BL32_IMAGE_STRING		"SECURE_RT_EL1_TRUSTY"
46 #elif defined(SPD_spmd)
47 #define MBOOT_BL32_IMAGE_STRING		"SECURE_RT_EL1_SPMD"
48 #else
49 #define MBOOT_BL32_IMAGE_STRING		"SECURE_RT_EL1_UNKNOWN"
50 #endif /* SPD_opteed */
51 #define MBOOT_BL32_EXTRA1_IMAGE_STRING	"SECURE_RT_EL1_OPTEE_EXTRA1"
52 #define MBOOT_BL32_EXTRA2_IMAGE_STRING	"SECURE_RT_EL1_OPTEE_EXTRA2"
53 #define MBOOT_BL33_IMAGE_STRING		"BL_33"
54 #define MBOOT_FW_CONFIG_STRING		"FW_CONFIG"
55 #define MBOOT_HW_CONFIG_STRING		"HW_CONFIG"
56 #define MBOOT_NT_FW_CONFIG_STRING	"NT_FW_CONFIG"
57 #define MBOOT_SCP_BL2_IMAGE_STRING	"SYS_CTRL_2"
58 #define MBOOT_SOC_FW_CONFIG_STRING	"SOC_FW_CONFIG"
59 #define MBOOT_STM32_STRING		"STM32"
60 #define MBOOT_TB_FW_CONFIG_STRING	"TB_FW_CONFIG"
61 #define MBOOT_TOS_FW_CONFIG_STRING	"TOS_FW_CONFIG"
62 #define MBOOT_RMM_IMAGE_STRING		"RMM"
63 #define MBOOT_SP1_STRING		"SP1"
64 #define MBOOT_SP2_STRING		"SP2"
65 #define MBOOT_SP3_STRING		"SP3"
66 #define MBOOT_SP4_STRING		"SP4"
67 #define MBOOT_SP5_STRING		"SP5"
68 #define MBOOT_SP6_STRING		"SP6"
69 #define MBOOT_SP7_STRING		"SP7"
70 #define MBOOT_SP8_STRING		"SP8"
71 
72 #endif /* METADATA_H */
73