fvp_common_measured_boot.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #include <assert.h>
  7. #include <stdint.h>
  8. #include <common/desc_image_load.h>
  9. #include <drivers/measured_boot/event_log/event_log.h>
  10. #include <drivers/measured_boot/rss/rss_measured_boot.h>
  11. #include <plat/arm/common/plat_arm.h>
  12. #include <plat/common/platform.h>
  13. extern event_log_metadata_t fvp_event_log_metadata[];
  14. extern struct rss_mboot_metadata fvp_rss_mboot_metadata[];
  15. struct rss_mboot_metadata *plat_rss_mboot_get_metadata(void)
  16. {
  17. return fvp_rss_mboot_metadata;
  18. }
  19. int plat_mboot_measure_image(unsigned int image_id, image_info_t *image_data)
  20. {
  21. int err;
  22. int rc = 0;
  23. /* Calculate image hash and record data in Event Log */
  24. err = event_log_measure_and_record(image_data->image_base,
  25. image_data->image_size,
  26. image_id,
  27. fvp_event_log_metadata);
  28. if (err != 0) {
  29. ERROR("%s%s image id %u (%i)\n",
  30. "Failed to ", "record in event log", image_id, err);
  31. rc = err;
  32. }
  33. /* Calculate image hash and record data in RSS */
  34. err = rss_mboot_measure_and_record(image_data->image_base,
  35. image_data->image_size,
  36. image_id);
  37. if (err != 0) {
  38. ERROR("%s%s image id %u (%i)\n",
  39. "Failed to ", "record in RSS", image_id, err);
  40. rc = (rc == 0) ? err : -1;
  41. }
  42. return rc;
  43. }