xref: /rk3399_ARM-atf/plat/arm/board/tc/tc_common_dpe.c (revision e7f1181f8a7729acb07ebac86944e36932bcd09e)
1*e7f1181fSTamas Ban 
2*e7f1181fSTamas Ban /*
3*e7f1181fSTamas Ban  * Copyright (c) 2024, Arm Limited. All rights reserved.
4*e7f1181fSTamas Ban  *
5*e7f1181fSTamas Ban  * SPDX-License-Identifier: BSD-3-Clause
6*e7f1181fSTamas Ban  */
7*e7f1181fSTamas Ban 
8*e7f1181fSTamas Ban #include <assert.h>
9*e7f1181fSTamas Ban #include <stdint.h>
10*e7f1181fSTamas Ban 
11*e7f1181fSTamas Ban #include <common/desc_image_load.h>
12*e7f1181fSTamas Ban #include <drivers/measured_boot/rss/dice_prot_env.h>
13*e7f1181fSTamas Ban 
14*e7f1181fSTamas Ban extern struct dpe_metadata tc_dpe_metadata[];
15*e7f1181fSTamas Ban 
16*e7f1181fSTamas Ban int plat_mboot_measure_image(unsigned int image_id, image_info_t *image_data)
17*e7f1181fSTamas Ban {
18*e7f1181fSTamas Ban 	int err;
19*e7f1181fSTamas Ban 
20*e7f1181fSTamas Ban 	/* Calculate image hash and record it in the DPE service in RSS. */
21*e7f1181fSTamas Ban 	err = dpe_measure_and_record(tc_dpe_metadata,
22*e7f1181fSTamas Ban 				     image_data->image_base,
23*e7f1181fSTamas Ban 				     image_data->image_size,
24*e7f1181fSTamas Ban 				     image_id);
25*e7f1181fSTamas Ban 	if (err != 0) {
26*e7f1181fSTamas Ban 		ERROR("%s%s image id %u (%i)\n",
27*e7f1181fSTamas Ban 		      "Failed to ", "record in DPE", image_id, err);
28*e7f1181fSTamas Ban 	}
29*e7f1181fSTamas Ban 
30*e7f1181fSTamas Ban 	return err;
31*e7f1181fSTamas Ban }
32*e7f1181fSTamas Ban 
33*e7f1181fSTamas Ban int plat_mboot_measure_key(void *pk_oid, void *pk_ptr, unsigned int pk_len)
34*e7f1181fSTamas Ban {
35*e7f1181fSTamas Ban 	return dpe_set_signer_id(tc_dpe_metadata, pk_oid, pk_ptr, pk_len);
36*e7f1181fSTamas Ban }
37