| From 6f8ce3c0f70fecb1e7b990b8b47af16972b90671 Mon Sep 17 00:00:00 2001 |
| From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com> |
| Date: Wed, 21 Dec 2022 15:13:27 +0000 |
| Subject: [PATCH 4/10] Platform: corstone1000: calculate metadata crc32 |
| |
| Calculate metadata crc32 during provisioning. |
| It is requried to enable TF-A, U-Boot to verify fwu_metadata. |
| |
| Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com> |
| Upstream-Status: Pending [Not submitted to upstream yet] |
| --- |
| platform/ext/target/arm/corstone1000/CMakeLists.txt | 2 ++ |
| platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt | 2 ++ |
| .../target/arm/corstone1000/fw_update_agent/fwu_agent.c | 7 ++++++- |
| 3 files changed, 10 insertions(+), 1 deletion(-) |
| |
| diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt |
| index 7808efae68..554fc51b21 100644 |
| --- a/platform/ext/target/arm/corstone1000/CMakeLists.txt |
| +++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt |
| @@ -58,6 +58,7 @@ target_include_directories(platform_s |
| INTERFACE |
| cc312 |
| fw_update_agent |
| + soft_crc |
| ) |
| |
| target_sources(platform_s |
| @@ -185,6 +186,7 @@ target_include_directories(platform_bl2 |
| fip_parser |
| Native_Driver |
| fw_update_agent |
| + soft_crc |
| io |
| . |
| INTERFACE |
| diff --git a/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt b/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt |
| index 62fd0f6ddf..426a8df698 100644 |
| --- a/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt |
| +++ b/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt |
| @@ -229,6 +229,7 @@ target_include_directories(bl1_main |
| $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/platform/ext/accelerator/cc312> |
| $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/lib/ext/cryptocell-312-runtime/shared/include/mbedtls> |
| $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/lib/ext/cryptocell-312-runtime/shared/include/crypto_api/cc3x> |
| + ../soft_crc |
| ) |
| |
| # Configurations based on platform level cmake files |
| @@ -241,6 +242,7 @@ target_sources(bl1_main |
| ../Native_Driver/firewall.c |
| ../Native_Driver/uart_pl011_drv.c |
| ../fw_update_agent/fwu_agent.c |
| + ../soft_crc/soft_crc.c |
| ../Native_Driver/arm_watchdog_drv.c |
| ../Native_Driver/watchdog.c |
| bl1_boot_hal.c |
| diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c |
| index d5491e08db..1a42c72bd5 100644 |
| --- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c |
| +++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c |
| @@ -1,5 +1,5 @@ |
| /* |
| - * Copyright (c) 2021, Arm Limited. All rights reserved. |
| + * Copyright (c) 2021-2023, Arm Limited. All rights reserved. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| * |
| @@ -20,6 +20,7 @@ |
| #include "tfm_plat_defs.h" |
| #include "uefi_fmp.h" |
| #include "uart_stdout.h" |
| +#include "soft_crc.h" |
| |
| /* Properties of image in a bank */ |
| struct fwu_image_properties { |
| @@ -324,6 +325,10 @@ enum fwu_agent_error_t fwu_metadata_provision(void) |
| _metadata.img_entry[i].img_props[BANK_1].version = INVALID_VERSION; |
| } |
| |
| + /* Calculate CRC32 for fwu metadata */ |
| + _metadata.crc_32 = crc32((uint8_t *)&_metadata.version, |
| + sizeof(struct fwu_metadata) - sizeof(uint32_t)); |
| + |
| ret = metadata_write(&_metadata); |
| if (ret) { |
| return ret; |
| -- |
| 2.25.1 |
| |