xref: /rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_common_measured_boot.c (revision 203575c397c24a7ad1b3a858fe267909b018a646)
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