MCUboot with sysbuild

Browse source code on GitHub

Overview

A simple example that demonstrates how building a sample using sysbuild can automatically include MCUboot as the bootloader. It showcases how the sample can adjust the configuration of extra image by creating a image specific Kconfig fragment.

Sysbuild specific settings

This sample automatically includes MCUboot as bootloader when built using sysbuild.

This is achieved with a sysbuild specific Kconfig configuration, sysbuild.conf.

The SB_CONFIG_BOOTLOADER_MCUBOOT=y setting in the sysbuild Kconfig file enables the bootloader when building with sysbuild.

The sysbuild/mcuboot.conf file will be used as an extra fragment that is merged together with the default configuration files used by MCUboot.

sysbuild/mcuboot.conf adjusts the log level in MCUboot, as well as configures MCUboot to prevent downgrades and operate in upgrade-only mode.

To build both the sample and MCUboot with west for the reel_board, run:

west build -b reel_board --sysbuild samples/sysbuild/with_mcuboot

Execution output:

*** Booting Zephyr OS build v3.2.0-rc3-209-gdcf4201d3573  ***
*** Booting Zephyr OS build v3.2.0-rc3-209-gdcf4201d3573  ***
Address of sample 0xc000
Hello sysbuild with mcuboot! nrf52840dk

The first Booting Zephyr OS build is printed by MCUboot itself and the following lines are printed by the with_mcuboot sample. This sample also prints its flash location.