blob: 0c1d5e70648b516b238c9f8f32c9f2b2c4f82684 [file] [log] [blame]
Manish V Badarkhea74d9632021-09-14 23:12:42 +01001/*
Manish V Badarkhec774ec82023-06-16 13:03:51 +01002 * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
Manish V Badarkhea74d9632021-09-14 23:12:42 +01003 *
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/event_log/event_log.h>
Tamas Banb0f83252022-02-11 09:49:36 +010012#include <drivers/measured_boot/rss/rss_measured_boot.h>
Manish V Badarkhea74d9632021-09-14 23:12:42 +010013#include <plat/arm/common/plat_arm.h>
14#include <plat/common/platform.h>
15
16extern event_log_metadata_t fvp_event_log_metadata[];
Tamas Banb0f83252022-02-11 09:49:36 +010017extern struct rss_mboot_metadata fvp_rss_mboot_metadata[];
Manish V Badarkhea74d9632021-09-14 23:12:42 +010018
Manish V Badarkhea74d9632021-09-14 23:12:42 +010019int plat_mboot_measure_image(unsigned int image_id, image_info_t *image_data)
20{
Tamas Banb0f83252022-02-11 09:49:36 +010021 int err;
22 int rc = 0;
23
Manish V Badarkhea74d9632021-09-14 23:12:42 +010024 /* Calculate image hash and record data in Event Log */
Tamas Banb0f83252022-02-11 09:49:36 +010025 err = event_log_measure_and_record(image_data->image_base,
26 image_data->image_size,
Manish V Badarkhedd1ee502022-11-18 20:27:21 +000027 image_id,
28 fvp_event_log_metadata);
Manish V Badarkhea74d9632021-09-14 23:12:42 +010029 if (err != 0) {
30 ERROR("%s%s image id %u (%i)\n",
Tamas Banb0f83252022-02-11 09:49:36 +010031 "Failed to ", "record in event log", image_id, err);
32 rc = err;
Manish V Badarkhea74d9632021-09-14 23:12:42 +010033 }
34
Tamas Banb0f83252022-02-11 09:49:36 +010035 /* Calculate image hash and record data in RSS */
Manish V Badarkhec774ec82023-06-16 13:03:51 +010036 err = rss_mboot_measure_and_record(fvp_rss_mboot_metadata,
37 image_data->image_base,
Tamas Banb0f83252022-02-11 09:49:36 +010038 image_data->image_size,
39 image_id);
40 if (err != 0) {
41 ERROR("%s%s image id %u (%i)\n",
42 "Failed to ", "record in RSS", image_id, err);
43 rc = (rc == 0) ? err : -1;
44 }
45
46 return rc;
Manish V Badarkhea74d9632021-09-14 23:12:42 +010047}
Manish V Badarkhe18369ec2023-04-11 16:13:09 +010048
49int plat_mboot_measure_key(const void *pk_oid, const void *pk_ptr,
50 size_t pk_len)
51{
52 return rss_mboot_set_signer_id(fvp_rss_mboot_metadata, pk_oid, pk_ptr,
53 pk_len);
54}