From 0ee6842d348e206d511ec89a7ff5b29a6f325456 Mon Sep 17 00:00:00 2001 From: Rui Miguel Silva Date: Sun, 29 Jan 2023 19:01:08 +0000 Subject: [PATCH] corstone1000: make sure to write fwu metadata to replica 2 u-boot and other, before using fwu metadata validate if the copies in both replicas are good. so, make sure we write fwu metadata in both replicas. Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20550] Signed-off-by: Rui Miguel Silva --- .../arm/corstone1000/fw_update_agent/fwu_agent.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 e1fa297ac923..215902ce71b9 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 @@ -238,6 +238,20 @@ static enum fwu_agent_error_t metadata_write( return FWU_AGENT_ERROR; } + FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__, + FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata)); + + ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET); + if (ret != ARM_DRIVER_OK) { + return FWU_AGENT_ERROR; + } + + ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET, + p_metadata, sizeof(struct fwu_metadata)); + if (ret < 0 || ret != sizeof(struct fwu_metadata)) { + return FWU_AGENT_ERROR; + } + FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__, p_metadata->active_index, p_metadata->previous_active_index); return FWU_AGENT_SUCCESS; -- 2.39.1