Bootloader Configurations for Firmware Updates#

The Silicon Labs Gecko Bootloader is a common bootloader for all the newer wireless MCUs from Silicon Labs. The Gecko Bootloader can be configured to perform a variety of bootload functions, from device initialization to firmware upgrades. The Gecko Bootloader uses a proprietary format for its upgrade images, called GBL (Gecko Bootloader). These images are produced with the file extension “.gbl”.

The bootloader performs a firmware image update by writing the firmware update image to a region of flash memory referred to as the download space. The download space is either an external memory device such as an EEPROM or a section of the device’s internal flash. The bootloader partitions the download space into one or multiple storage slots and stores a single firmware update image in a storage slot.

The bootloader example projects provided in the Gecko SDK Suite come with a preconfigured set of installed components and configurations for different specifications of Silicon Labs MCUs. This section discusses the bootloader example configurations you can use to build bootloaders for Bluetooth mesh applications and firmware updates. You may need to change the storage slot size by configuring the Bootloader Storage Slot Setup under Storage components in the Platform > Bootloader Software Components in Simplicity Studio. See Section 7 of Silicon Labs Gecko Bootloader User’s Guide for GSDK 4.0 and Higher (series 1 and 2 devices) for more information about the Gecko Bootloader configurations.

Internal Flash Size#

It is not recommended to use the devices that have internal flash smaller than 768 KB for Target nodes and smaller than 1 MB for the Distributor to store firmware update images. You can use one of the following example projects depending on the internal flash size.

  • Bootloader - SoC Internal Storage (single image on 768kB device) for Target nodes

  • Bootloader - SoC Internal Storage (single image on 1MB device)

  • Bootloader - SoC Internal Storage (single image on 1536kB device)

  • Bootloader - SoC Internal Storage (single image on 1920kB device)

  • Bootloader - SoC Internal Storage (single image on 2MB device)

The Target node requires only a single storage slot to store and apply a firmware image. The Distributor can optionally store multiple firmware images but can distribute only one firmware image to Target nodes in a firmware update. To store multiple firmware images on the Distributor, Silicon Labs recommends using external flash for multiple storage slots. The Bootloader - SoC Internal Storage (multiple images on 1MB device) example project provides an example configuration of 2 storage slots on internal flash. Use this example for the Distributor if the target device has at least 1920 KB of internal flash.

screenshotscreenshot

Compressed Update Image#

Use the Bootloader - SoC Internal Storage (single image with LZMA compression, 1MB flash) example project if the firmware image is too big to fit the storage slot but the compressed firmware image can fit it. Creating Update Image Archive describes how to create a compressed firmware image.

screenshotscreenshot

External Flash#

Use the Bootloader - SoC SPI Flash Storage (single image) example project if the device's external flash is equal to or larger than 512 KB and smaller than 1 MB. Use the Bootloader - SoC SPI Flash Storage (single image with slot size of 1024k) example project if the device’s external flash is equal to or larger than 1 MB. The external flash size should be at least 512 KB for Target nodes and at least 768 KB for the Distributor.

The Target node requires only a single storage slot to store and apply a firmware image. The Distributor can optionally store multiple firmware images but can distribute only one firmware image to Target nodes in a firmware update. Use the Bootloader - SoC SPI Flash Storage (multiple images) example project if you need of store multiple firmware images on the Distributor. With the bootloader configuration of 2 storage slots, at least 1 MB of external flash is recommended.

screenshotscreenshot