1 /*
2  * Copyright (c) 2022-2024, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef RSE_MEASURED_BOOT_H
8 #define RSE_MEASURED_BOOT_H
9 
10 #include <stdint.h>
11 
12 #include <common/debug.h>
13 #include <drivers/measured_boot/metadata.h>
14 
15 #define RSE_MBOOT_INVALID_ID	UINT32_MAX
16 
17 struct rse_mboot_metadata {
18 	unsigned int id;
19 	uint8_t slot;
20 	uint8_t signer_id[SIGNER_ID_MAX_SIZE];
21 	size_t  signer_id_size;
22 	uint8_t version[VERSION_MAX_SIZE];
23 	size_t  version_size;
24 	uint8_t sw_type[SW_TYPE_MAX_SIZE];
25 	size_t  sw_type_size;
26 	void    *pk_oid;
27 	bool    lock_measurement;
28 };
29 
30 /* Functions' declarations */
31 void rse_measured_boot_init(struct rse_mboot_metadata *metadata_ptr);
32 int rse_mboot_measure_and_record(struct rse_mboot_metadata *metadata_ptr,
33 				 uintptr_t data_base, uint32_t data_size,
34 				 uint32_t data_id);
35 
36 int rse_mboot_set_signer_id(struct rse_mboot_metadata *metadata_ptr,
37 			    const void *pk_oid, const void *pk_ptr,
38 			    size_t pk_len);
39 
40 #endif /* RSE_MEASURED_BOOT_H */
41