1 /*
2 * Copyright (c) 2024-2025, Arm Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7 #include <assert.h>
8 #include <stdint.h>
9
10 #include <common/desc_image_load.h>
11 #include <drivers/measured_boot/rse/rse_measured_boot.h>
12
13 extern struct rse_mboot_metadata rdv3_rse_mboot_metadata[];
14
plat_rse_mboot_get_metadata(void)15 struct rse_mboot_metadata *plat_rse_mboot_get_metadata(void)
16 {
17 return rdv3_rse_mboot_metadata;
18 }
19
plat_mboot_measure_image(unsigned int image_id,image_info_t * image_data)20 int plat_mboot_measure_image(unsigned int image_id, image_info_t *image_data)
21 {
22 int err;
23
24 /* Calculate image hash and record data in RSE */
25 err = rse_mboot_measure_and_record(rdv3_rse_mboot_metadata,
26 image_data->image_base,
27 image_data->image_size,
28 image_id);
29 if (err != 0) {
30 ERROR("Measure and record failed for image id %u, err (%i)\n",
31 image_id, err);
32 }
33
34 return err;
35 }
36
plat_mboot_measure_key(const void * pk_oid,const void * pk_ptr,size_t pk_len)37 int plat_mboot_measure_key(const void *pk_oid, const void *pk_ptr, size_t pk_len)
38 {
39 return rse_mboot_set_signer_id(rdv3_rse_mboot_metadata, pk_oid,
40 pk_ptr, pk_len);
41 }
42