Installer (MCUboot Firmware Loader installer)

Installer provides update functionality to the firmware loader when used with the MCUboot bootloader in firmware updater mode. The Installer application extracts a new firmware loader image from a combined installer and firmware loader package stored in the primary slot. It then copies the image to the firmware loader partition. Finally, it requests firmware loader entrance on the next boot.

Overview

The Installer application runs from the application slot (slot0) when the device boots with a combined image that contains both the Installer and a new firmware loader image. For more information, see Update of the firmware loader image. The Installer performs the firmware loader update process as follows:

  1. It reads the combined image from slot0_partition and locates the appended firmware loader image.

  2. It compares the extracted image with the image currently installed in the firmware loader partition (slot1_partition).

  3. If the images differ, it erases the firmware loader partition, copies the new image, and verifies the copied data.

  4. It requests firmware loader entrance, using one of the following strategies:

    • Erase the beginning of the Installer package.

    • Request firmware loader entry via boot mode

    • Request firmware loader entry via boot request

  5. It optionally reboots the device to ensure that the firmware loader runs on the next boot.

After a successful update, the device boots into the updated firmware loader instead of the Installer application.

Building and running

This application is not intended to be built or programmed as a standalone application. It is automatically included and built when one of the following sysbuild options is enabled in the project configuration:

Testing

This application is not intended for standalone testing. It runs as part of samples that enable firmware loader update (for example, the Single-slot DFU with MCUboot sample configured with the SB_CONFIG_FIRMWARE_LOADER_UPDATE option set to y).