blob: eeaf6d197e8b7d110f7e531d425348bd46523292 [file] [log] [blame]
Andrew Geissler2daf84b2023-03-31 09:57:23 -05001From 0ee6842d348e206d511ec89a7ff5b29a6f325456 Mon Sep 17 00:00:00 2001
2From: Rui Miguel Silva <rui.silva@linaro.org>
3Date: Sun, 29 Jan 2023 19:01:08 +0000
4Subject: [PATCH] corstone1000: make sure to write fwu metadata to replica 2
5
6u-boot and other, before using fwu metadata validate if
7the copies in both replicas are good. so, make sure
8we write fwu metadata in both replicas.
9
Patrick Williams8e7b46e2023-05-01 14:19:06 -050010Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20550]
Andrew Geissler2daf84b2023-03-31 09:57:23 -050011Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
12---
13 .../arm/corstone1000/fw_update_agent/fwu_agent.c | 14 ++++++++++++++
14 1 file changed, 14 insertions(+)
15
16diff --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
17index e1fa297ac923..215902ce71b9 100644
18--- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
19+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
20@@ -238,6 +238,20 @@ static enum fwu_agent_error_t metadata_write(
21 return FWU_AGENT_ERROR;
22 }
23
24+ FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
25+ FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata));
26+
27+ ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET);
28+ if (ret != ARM_DRIVER_OK) {
29+ return FWU_AGENT_ERROR;
30+ }
31+
32+ ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET,
33+ p_metadata, sizeof(struct fwu_metadata));
34+ if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
35+ return FWU_AGENT_ERROR;
36+ }
37+
38 FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
39 p_metadata->active_index, p_metadata->previous_active_index);
40 return FWU_AGENT_SUCCESS;
41--
422.39.1
43