From 0d436749a2f2e9e5784a09de2f8a7946e80f0310 Mon Sep 17 00:00:00 2001 From: Sigvart Hovland Date: Fri, 15 Sep 2023 12:16:12 +0200 Subject: [PATCH] [nrf noup] booutil: loader: Fixup for NSIB and multi-image Commit 8fe7070ee192f8e72a9a67560cee9e3518155579 broke bootloader updates for nRF91 and non-multi image builds. This commit is fixing this by restoring the previous functionality and `ifdef` out the new logic needed for multi-image. Ref. NCSDK-23305 Signed-off-by: Sigvart Hovland (cherry picked from commit 7429a98e530451021c96c7b49078824b86db0064) Signed-off-by: Dominik Ermel (cherry picked from commit 8c5b560c4c01eb34138962a5dea1a3ffb11047b6) (cherry picked from commit 745cf4e19836ce942694a117d4e0ebea5f90f56a) Signed-off-by: Dominik Ermel --- boot/bootutil/src/loader.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/boot/bootutil/src/loader.c b/boot/bootutil/src/loader.c index a1e4585fb..60e57ad24 100644 --- a/boot/bootutil/src/loader.c +++ b/boot/bootutil/src/loader.c @@ -967,7 +967,6 @@ boot_validated_swap_type(struct boot_loader_state *state, if(reset_addr < PM_CPUNET_B0N_ADDRESS) #endif { - const struct flash_area *nsib_fa; const struct flash_area *primary_fa; rc = flash_area_open(flash_area_id_from_multi_image_slot( BOOT_CURR_IMG(state), BOOT_PRIMARY_SLOT), @@ -978,6 +977,9 @@ boot_validated_swap_type(struct boot_loader_state *state, /* Check start and end of primary slot for current image */ if (reset_addr < primary_fa->fa_off) { +#if defined(CONFIG_SOC_NRF5340_CPUAPP) && defined(CONFIG_NRF53_MULTI_IMAGE_UPDATE) + const struct flash_area *nsib_fa; + /* NSIB upgrade slot */ rc = flash_area_open((uint32_t)_image_1_primary_slot_id, &nsib_fa); @@ -992,6 +994,10 @@ boot_validated_swap_type(struct boot_loader_state *state, /* Set primary to be NSIB upgrade slot */ BOOT_IMG_AREA(state, 0) = nsib_fa; } +#else + return BOOT_SWAP_TYPE_NONE; +#endif + } else if (reset_addr > (primary_fa->fa_off + primary_fa->fa_size)) { /* The image in the secondary slot is not intended for any */ return BOOT_SWAP_TYPE_NONE;