From 88163ade9183de64be1baa3c7183f59870af298c Mon Sep 17 00:00:00 2001 From: John Bland Date: Mon, 23 Dec 2024 12:54:19 -0500 Subject: [PATCH 1/2] stop the selSec from being applied twice to lastSector --- src/libwolfboot.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libwolfboot.c b/src/libwolfboot.c index 17b4e07774..b5bf5243d1 100644 --- a/src/libwolfboot.c +++ b/src/libwolfboot.c @@ -763,10 +763,11 @@ void RAMFUNCTION wolfBoot_update_trigger(void) hal_flash_erase(lastSector, SECTOR_FLAGS_SIZE); #else selSec = nvm_select_fresh_sector(PART_UPDATE); - lastSector -= selSec * WOLFBOOT_SECTOR_SIZE; - XMEMCPY(NVM_CACHE, (uint8_t*)lastSector, WOLFBOOT_SECTOR_SIZE); + XMEMCPY(NVM_CACHE, (uint8_t*)lastSector - WOLFBOOT_SECTOR_SIZE * selSec, + WOLFBOOT_SECTOR_SIZE); /* write to the non selected sector */ - hal_flash_erase(lastSector - WOLFBOOT_SECTOR_SIZE * !selSec, WOLFBOOT_SECTOR_SIZE); + hal_flash_erase(lastSector - WOLFBOOT_SECTOR_SIZE * !selSec, + WOLFBOOT_SECTOR_SIZE); hal_flash_write(lastSector - WOLFBOOT_SECTOR_SIZE * !selSec, NVM_CACHE, WOLFBOOT_SECTOR_SIZE); /* erase the previously selected sector */ From b59d931d36d0f3c15007ca7e85ee6f1495e0f5fb Mon Sep 17 00:00:00 2001 From: John Bland Date: Mon, 30 Dec 2024 03:54:43 -0500 Subject: [PATCH 2/2] remove sector alignment check --- src/libwolfboot.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/libwolfboot.c b/src/libwolfboot.c index b5bf5243d1..6a31cb166d 100644 --- a/src/libwolfboot.c +++ b/src/libwolfboot.c @@ -740,11 +740,6 @@ void RAMFUNCTION wolfBoot_update_trigger(void) uint8_t selSec = 0; #endif - /* if PART_UPDATE_ENDFLAGS straddles a sector, (all non FLAGS_HOME builds) - * align it to the correct sector */ - if (PART_UPDATE_ENDFLAGS % WOLFBOOT_SECTOR_SIZE == 0) - lastSector -= WOLFBOOT_SECTOR_SIZE; - /* erase the sector flags */ if (FLAGS_UPDATE_EXT()) { ext_flash_unlock();