summaryrefslogtreecommitdiff
path: root/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-calculate-metadata-crc32.patch
blob: 4921e3a5ad3f30cab3711b635a0115c7afecda92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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