xref: /rk3399_ARM-atf/include/drivers/measured_boot/rse/rse_measured_boot.h (revision a1901c7d0d05ac02b254bf215fb889b9c0a9bc7d)
1024c4948STamas Ban /*
2024c4948STamas Ban  * Copyright (c) 2022-2024, Arm Limited. All rights reserved.
3024c4948STamas Ban  *
4024c4948STamas Ban  * SPDX-License-Identifier: BSD-3-Clause
5024c4948STamas Ban  */
6024c4948STamas Ban 
7*b8245368STamas Ban #ifndef RSE_MEASURED_BOOT_H
8*b8245368STamas Ban #define RSE_MEASURED_BOOT_H
9024c4948STamas Ban 
10024c4948STamas Ban #include <stdint.h>
11024c4948STamas Ban 
12024c4948STamas Ban #include <common/debug.h>
13024c4948STamas Ban #include <drivers/measured_boot/metadata.h>
14024c4948STamas Ban 
15*b8245368STamas Ban #define RSE_MBOOT_INVALID_ID	UINT32_MAX
16024c4948STamas Ban 
17*b8245368STamas Ban struct rse_mboot_metadata {
18024c4948STamas Ban 	unsigned int id;
19024c4948STamas Ban 	uint8_t slot;
20024c4948STamas Ban 	uint8_t signer_id[SIGNER_ID_MAX_SIZE];
21024c4948STamas Ban 	size_t  signer_id_size;
22024c4948STamas Ban 	uint8_t version[VERSION_MAX_SIZE];
23024c4948STamas Ban 	size_t  version_size;
24024c4948STamas Ban 	uint8_t sw_type[SW_TYPE_MAX_SIZE];
25024c4948STamas Ban 	size_t  sw_type_size;
26024c4948STamas Ban 	void    *pk_oid;
27024c4948STamas Ban 	bool    lock_measurement;
28024c4948STamas Ban };
29024c4948STamas Ban 
30024c4948STamas Ban /* Functions' declarations */
31*b8245368STamas Ban void rse_measured_boot_init(struct rse_mboot_metadata *metadata_ptr);
32*b8245368STamas Ban int rse_mboot_measure_and_record(struct rse_mboot_metadata *metadata_ptr,
33024c4948STamas Ban 				 uintptr_t data_base, uint32_t data_size,
34024c4948STamas Ban 				 uint32_t data_id);
35024c4948STamas Ban 
36*b8245368STamas Ban int rse_mboot_set_signer_id(struct rse_mboot_metadata *metadata_ptr,
37024c4948STamas Ban 			    const void *pk_oid, const void *pk_ptr,
38024c4948STamas Ban 			    size_t pk_len);
39024c4948STamas Ban 
40*b8245368STamas Ban #endif /* RSE_MEASURED_BOOT_H */
41