boot: zephyr: add config for swap without scratch
Add Zephyr option to enable building a bootloader that uses an
alternative swap algorithm, that first moves up all sectors in slot1 and
then directly swaps between slot0 and slot1.
Signed-off-by: Fabio Utzig <utzig@apache.org>
diff --git a/boot/zephyr/Kconfig b/boot/zephyr/Kconfig
index 56b5b19..f93f7f9 100644
--- a/boot/zephyr/Kconfig
+++ b/boot/zephyr/Kconfig
@@ -126,6 +126,19 @@
of swapping them. This prevents the fallback recovery, but
uses a much simpler code path.
+config BOOT_SWAP_USING_MOVE
+ bool "Swap mode that can run without a scratch partition [EXPERIMENTAL]"
+ default n
+ help
+ If y, the swap upgrade is done in two steps, where first every
+ sector of the primary slot is moved up one sector, then for
+ each sector X in the secondary slot, it is moved to index X in
+ the primary slot, then the sector at X+1 in the primary is
+ moved to index X in the secondary.
+ This allows a swap upgrade without using a scratch partition,
+ but is currently limited to all sectors in both slots being of
+ the same size.
+
config BOOT_BOOTSTRAP
bool "Bootstrap erased the primary slot from the secondary slot"
default n