Skip to content

Commit d8803de

Browse files
committed
[nrf noup] pm_sysflash: Fix slot mismatch between app and mcuboot
When CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER != -1 there is a size mismatch of all_slots between mcuboot and application images. When enabling mcuboot for example with s0 and s1 secure images, the mcuboot reported size is 6 while the application reported size is 4. When the application references FLASH_AREA_IMAGE_SECONDARY() it receives the s0 bootloader slot id instead. Methods that rely on FLASH_AREA_IMAGE_SECONDARY() to point to the application secondary slot do not work as expected. Since MCUBOOT_IMAGE_NUMBER is finite and currently limited to 4 slots, The ALL_AVAILABLE_SLOTS macro definition should check each combination of CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER explicitly to verify the combination is correct. Signed-off-by: Anthony Williams <[email protected]>
1 parent 4b5901f commit d8803de

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

boot/zephyr/include/sysflash/pm_sysflash.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@
3131
#define MCUBOOT_S0_S1_SLOTS
3232
#endif
3333

34-
#if (MCUBOOT_IMAGE_NUMBER == 1) || (MCUBOOT_IMAGE_NUMBER == 2 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER != -1)
34+
#if (MCUBOOT_IMAGE_NUMBER == 1) || (MCUBOOT_IMAGE_NUMBER == 2 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER == 1)
3535
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS
36-
#elif (MCUBOOT_IMAGE_NUMBER == 2) || (MCUBOOT_IMAGE_NUMBER == 3 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER != -1)
36+
#elif (MCUBOOT_IMAGE_NUMBER == 2) || (MCUBOOT_IMAGE_NUMBER == 3 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER == 2)
3737
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS \
3838
FLASH_AREA_IMAGE_1_SLOTS
39-
#elif (MCUBOOT_IMAGE_NUMBER == 3) || (MCUBOOT_IMAGE_NUMBER == 4 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER != -1)
39+
#elif (MCUBOOT_IMAGE_NUMBER == 3) || (MCUBOOT_IMAGE_NUMBER == 4 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER == 3)
4040
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS \
4141
FLASH_AREA_IMAGE_1_SLOTS \
4242
FLASH_AREA_IMAGE_2_SLOTS

0 commit comments

Comments
 (0)