Andrew Geissler | 2daf84b | 2023-03-31 09:57:23 -0500 | [diff] [blame] | 1 | From 6f8ce3c0f70fecb1e7b990b8b47af16972b90671 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com> |
| 3 | Date: Wed, 21 Dec 2022 15:13:27 +0000 |
| 4 | Subject: [PATCH 4/10] Platform: corstone1000: calculate metadata crc32 |
| 5 | |
| 6 | Calculate metadata crc32 during provisioning. |
| 7 | It is requried to enable TF-A, U-Boot to verify fwu_metadata. |
| 8 | |
| 9 | Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com> |
| 10 | Upstream-Status: Pending [Not submitted to upstream yet] |
| 11 | --- |
| 12 | platform/ext/target/arm/corstone1000/CMakeLists.txt | 2 ++ |
| 13 | platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt | 2 ++ |
| 14 | .../target/arm/corstone1000/fw_update_agent/fwu_agent.c | 7 ++++++- |
| 15 | 3 files changed, 10 insertions(+), 1 deletion(-) |
| 16 | |
| 17 | diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt |
| 18 | index 7808efae68..554fc51b21 100644 |
| 19 | --- a/platform/ext/target/arm/corstone1000/CMakeLists.txt |
| 20 | +++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt |
| 21 | @@ -58,6 +58,7 @@ target_include_directories(platform_s |
| 22 | INTERFACE |
| 23 | cc312 |
| 24 | fw_update_agent |
| 25 | + soft_crc |
| 26 | ) |
| 27 | |
| 28 | target_sources(platform_s |
| 29 | @@ -185,6 +186,7 @@ target_include_directories(platform_bl2 |
| 30 | fip_parser |
| 31 | Native_Driver |
| 32 | fw_update_agent |
| 33 | + soft_crc |
| 34 | io |
| 35 | . |
| 36 | INTERFACE |
| 37 | diff --git a/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt b/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt |
| 38 | index 62fd0f6ddf..426a8df698 100644 |
| 39 | --- a/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt |
| 40 | +++ b/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt |
| 41 | @@ -229,6 +229,7 @@ target_include_directories(bl1_main |
| 42 | $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/platform/ext/accelerator/cc312> |
| 43 | $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/lib/ext/cryptocell-312-runtime/shared/include/mbedtls> |
| 44 | $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/lib/ext/cryptocell-312-runtime/shared/include/crypto_api/cc3x> |
| 45 | + ../soft_crc |
| 46 | ) |
| 47 | |
| 48 | # Configurations based on platform level cmake files |
| 49 | @@ -241,6 +242,7 @@ target_sources(bl1_main |
| 50 | ../Native_Driver/firewall.c |
| 51 | ../Native_Driver/uart_pl011_drv.c |
| 52 | ../fw_update_agent/fwu_agent.c |
| 53 | + ../soft_crc/soft_crc.c |
| 54 | ../Native_Driver/arm_watchdog_drv.c |
| 55 | ../Native_Driver/watchdog.c |
| 56 | bl1_boot_hal.c |
| 57 | 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 |
| 58 | index d5491e08db..1a42c72bd5 100644 |
| 59 | --- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c |
| 60 | +++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c |
| 61 | @@ -1,5 +1,5 @@ |
| 62 | /* |
| 63 | - * Copyright (c) 2021, Arm Limited. All rights reserved. |
| 64 | + * Copyright (c) 2021-2023, Arm Limited. All rights reserved. |
| 65 | * |
| 66 | * SPDX-License-Identifier: BSD-3-Clause |
| 67 | * |
| 68 | @@ -20,6 +20,7 @@ |
| 69 | #include "tfm_plat_defs.h" |
| 70 | #include "uefi_fmp.h" |
| 71 | #include "uart_stdout.h" |
| 72 | +#include "soft_crc.h" |
| 73 | |
| 74 | /* Properties of image in a bank */ |
| 75 | struct fwu_image_properties { |
| 76 | @@ -324,6 +325,10 @@ enum fwu_agent_error_t fwu_metadata_provision(void) |
| 77 | _metadata.img_entry[i].img_props[BANK_1].version = INVALID_VERSION; |
| 78 | } |
| 79 | |
| 80 | + /* Calculate CRC32 for fwu metadata */ |
| 81 | + _metadata.crc_32 = crc32((uint8_t *)&_metadata.version, |
| 82 | + sizeof(struct fwu_metadata) - sizeof(uint32_t)); |
| 83 | + |
| 84 | ret = metadata_write(&_metadata); |
| 85 | if (ret) { |
| 86 | return ret; |
| 87 | -- |
| 88 | 2.25.1 |
| 89 | |