sysbuild: mcuboot: Add support for swap using offset mode

Adds a new Kconfig to allow selecting this newly introduced MCUboot
swapping algorithm

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
This commit is contained in:
Jamie McCrae 2025-01-13 10:53:45 +00:00 committed by Benjamin Cabé
commit 29217b48a5
3 changed files with 13 additions and 0 deletions

View file

@ -6,6 +6,7 @@
# on Zephyr MCUboot / bootloader image. # on Zephyr MCUboot / bootloader image.
set(bootmodes CONFIG_SINGLE_APPLICATION_SLOT set(bootmodes CONFIG_SINGLE_APPLICATION_SLOT
CONFIG_BOOT_SWAP_USING_OFFSET
CONFIG_BOOT_SWAP_USING_SCRATCH CONFIG_BOOT_SWAP_USING_SCRATCH
CONFIG_BOOT_UPGRADE_ONLY CONFIG_BOOT_UPGRADE_ONLY
CONFIG_BOOT_SWAP_USING_MOVE CONFIG_BOOT_SWAP_USING_MOVE
@ -15,6 +16,8 @@ set(bootmodes CONFIG_SINGLE_APPLICATION_SLOT
if(SB_CONFIG_MCUBOOT_MODE_SINGLE_APP) if(SB_CONFIG_MCUBOOT_MODE_SINGLE_APP)
set(bootmode CONFIG_SINGLE_APPLICATION_SLOT) set(bootmode CONFIG_SINGLE_APPLICATION_SLOT)
elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_USING_OFFSET)
set(bootmode CONFIG_BOOT_SWAP_USING_OFFSET)
elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_WITHOUT_SCRATCH OR SB_CONFIG_MCUBOOT_MODE_SWAP_USING_MOVE) elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_WITHOUT_SCRATCH OR SB_CONFIG_MCUBOOT_MODE_SWAP_USING_MOVE)
set(bootmode CONFIG_BOOT_SWAP_USING_MOVE) set(bootmode CONFIG_BOOT_SWAP_USING_MOVE)
elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_SCRATCH) elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_SCRATCH)

View file

@ -22,6 +22,8 @@ if(SB_CONFIG_BOOTLOADER_MCUBOOT)
if(SB_CONFIG_MCUBOOT_MODE_SINGLE_APP) if(SB_CONFIG_MCUBOOT_MODE_SINGLE_APP)
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_BOOTLOADER_MODE_SINGLE_APP y) set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_BOOTLOADER_MODE_SINGLE_APP y)
elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_USING_OFFSET)
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_BOOTLOADER_MODE_SWAP_USING_OFFSET y)
elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_WITHOUT_SCRATCH OR SB_CONFIG_MCUBOOT_MODE_SWAP_USING_MOVE) elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_WITHOUT_SCRATCH OR SB_CONFIG_MCUBOOT_MODE_SWAP_USING_MOVE)
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_BOOTLOADER_MODE_SWAP_USING_MOVE y) set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_BOOTLOADER_MODE_SWAP_USING_MOVE y)
elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_SCRATCH) elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_SCRATCH)

View file

@ -43,6 +43,14 @@ config MCUBOOT_MODE_SINGLE_APP
slots. In this mode application is not able to DFU its own update to secondary slot and slots. In this mode application is not able to DFU its own update to secondary slot and
all updates need to be performed using MCUboot serial recovery. all updates need to be performed using MCUboot serial recovery.
config MCUBOOT_MODE_SWAP_USING_OFFSET
bool "Swap using offset"
select EXPERIMENTAL
help
MCUboot expects slot0_partition and slot1_partition to be present in DT and application
will boot from slot0_partition. MCUBOOT_BOOTLOADER_NO_DOWNGRADE should also be selected
in main application if MCUboot has been built with MCUBOOT_DOWNGRADE_PREVENTION.
config MCUBOOT_MODE_SWAP_USING_MOVE config MCUBOOT_MODE_SWAP_USING_MOVE
bool "Swap using move" bool "Swap using move"
help help