blob: b5b8f10eddbbe5d431865b11fc6b4cc8f4f9c299 [file] [log] [blame]
Manish V Badarkhea74d9632021-09-14 23:12:42 +01001/*
Tamas Banb0f83252022-02-11 09:49:36 +01002 * Copyright (c) 2021-2022, 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
Tamas Banb0f83252022-02-11 09:49:36 +010019struct rss_mboot_metadata *plat_rss_mboot_get_metadata(void)
20{
21 return fvp_rss_mboot_metadata;
22}
23
Manish V Badarkhea74d9632021-09-14 23:12:42 +010024int plat_mboot_measure_image(unsigned int image_id, image_info_t *image_data)
25{
Tamas Banb0f83252022-02-11 09:49:36 +010026 int err;
27 int rc = 0;
28
Manish V Badarkhea74d9632021-09-14 23:12:42 +010029 /* Calculate image hash and record data in Event Log */
Tamas Banb0f83252022-02-11 09:49:36 +010030 err = event_log_measure_and_record(image_data->image_base,
31 image_data->image_size,
Manish V Badarkhedd1ee502022-11-18 20:27:21 +000032 image_id,
33 fvp_event_log_metadata);
Manish V Badarkhea74d9632021-09-14 23:12:42 +010034 if (err != 0) {
35 ERROR("%s%s image id %u (%i)\n",
Tamas Banb0f83252022-02-11 09:49:36 +010036 "Failed to ", "record in event log", image_id, err);
37 rc = err;
Manish V Badarkhea74d9632021-09-14 23:12:42 +010038 }
39
Tamas Banb0f83252022-02-11 09:49:36 +010040 /* Calculate image hash and record data in RSS */
41 err = rss_mboot_measure_and_record(image_data->image_base,
42 image_data->image_size,
43 image_id);
44 if (err != 0) {
45 ERROR("%s%s image id %u (%i)\n",
46 "Failed to ", "record in RSS", image_id, err);
47 rc = (rc == 0) ? err : -1;
48 }
49
50 return rc;
Manish V Badarkhea74d9632021-09-14 23:12:42 +010051}