blob: 4921e3a5ad3f30cab3711b635a0115c7afecda92 [file] [log] [blame]
Andrew Geissler2daf84b2023-03-31 09:57:23 -05001From 6f8ce3c0f70fecb1e7b990b8b47af16972b90671 Mon Sep 17 00:00:00 2001
2From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
3Date: Wed, 21 Dec 2022 15:13:27 +0000
4Subject: [PATCH 4/10] Platform: corstone1000: calculate metadata crc32
5
6Calculate metadata crc32 during provisioning.
7It is requried to enable TF-A, U-Boot to verify fwu_metadata.
8
9Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
10Upstream-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
17diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
18index 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
37diff --git a/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt b/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt
38index 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
57diff --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
58index 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--
882.25.1
89