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