blob: 93aa0558c5591fabb13513f33814c6ef0ae0c92b [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
19const event_log_metadata_t *plat_event_log_get_metadata(void)
20{
21 return fvp_event_log_metadata;
22}
23
Tamas Banb0f83252022-02-11 09:49:36 +010024struct rss_mboot_metadata *plat_rss_mboot_get_metadata(void)
25{
26 return fvp_rss_mboot_metadata;
27}
28
Manish V Badarkhea74d9632021-09-14 23:12:42 +010029int plat_mboot_measure_image(unsigned int image_id, image_info_t *image_data)
30{
Tamas Banb0f83252022-02-11 09:49:36 +010031 int err;
32 int rc = 0;
33
Manish V Badarkhea74d9632021-09-14 23:12:42 +010034 /* Calculate image hash and record data in Event Log */
Tamas Banb0f83252022-02-11 09:49:36 +010035 err = event_log_measure_and_record(image_data->image_base,
36 image_data->image_size,
37 image_id);
Manish V Badarkhea74d9632021-09-14 23:12:42 +010038 if (err != 0) {
39 ERROR("%s%s image id %u (%i)\n",
Tamas Banb0f83252022-02-11 09:49:36 +010040 "Failed to ", "record in event log", image_id, err);
41 rc = err;
Manish V Badarkhea74d9632021-09-14 23:12:42 +010042 }
43
Tamas Banb0f83252022-02-11 09:49:36 +010044 /* Calculate image hash and record data in RSS */
45 err = rss_mboot_measure_and_record(image_data->image_base,
46 image_data->image_size,
47 image_id);
48 if (err != 0) {
49 ERROR("%s%s image id %u (%i)\n",
50 "Failed to ", "record in RSS", image_id, err);
51 rc = (rc == 0) ? err : -1;
52 }
53
54 return rc;
Manish V Badarkhea74d9632021-09-14 23:12:42 +010055}