Mbed Bootloader Versions Save

Generic bootloader to be used in conjunction with Pelion Device Management Client

v4.1.3

4 years ago

Changes:

  • Update Mbed OS to 5.15.2
  • Allow boot messages on SWO instead of serial port.
  • Disable standard output to save code size.
  • Don't check boot counter on software reset.
  • Allow configuring alternate entry point for bootloader instead of main.
  • Add support for DISCO_F769NI.
  • Add configuration for MIMXRT1050_EVK.
  • Add configuration for L496AG.
  • Add configuration for Uhuru Raven.
  • Add configuration for Renesas GR-PEACH and LYCHEE.
  • Add configuration for EP_AGORA target.
  • Drop block_device_fake_rot.json configuration file.
  • Allow specifying a startup delay before initializing storage hardware.
  • NRF52840_DK: Adds information about UICR registers
  • NRF52840_DK: Adds as release target and adds a new app config
  • Small code cleanup and refactoring

v4.1.2

4 years ago

Changes:

  • Update Mbed OS to 5.15.0
  • Build using Link-Time-Optimization
  • Add internal no-ROT config for Nucleo H743ZI2
  • Drop firmware update test code from sources
  • Drop runSizeTestAndGenerateGraph.sh as the information is already provided Mbed OS
  • Better Python3 support
  • DISCO_F746NG - internal flash support
  • Add NUCLEO_L4R5ZI - internal flash

v4.1.1

4 years ago

Changes:

  • Add NUCLEO F303RE internal kvstore with spif to release.
  • Update Mbed OS to mbed-os-5.14.1

v4.0.3

4 years ago

New features

  • Build against Mbed OS 5.13.0
  • Add configuration for KVStore on SPIF
  • Support NUCLEO_F303RE

Improvements

  • Documentation updates
  • NUCLEO_F303RE Limit binary size to 36KB
  • Support DISCO_L475VG_IOT01A using external QSPIF storage
  • Small bugfixes

v4.0.2

4 years ago

New Features

  • Update mbed-os to 5.12.3
  • Add new target support:
    • DISCO_L475VG_IOT01A to internal flash configuration
    • CY8CKIT_062_WIFI_BT_PSA and CY8CKIT_062_BLE
    • LPC55S69_NS
  • Add support for PSA targets
  • Add an option to conditionally disable serial output

Improvements:

  • SHA256 optimization

v4.0.1

5 years ago

New Features

  • Root of trust is stored in KVStore on internal flash.
  • ARM_UCP_FLASHIAP_BLOCKDEVICE update storage option uses the Mbed OS's default blockdevice for firmware storage.
  • Updated Mbed OS to 5.11.5.
  • Added configurations for K64F and K66F to use internal flash firmware storage and KVStore for Pelion Device Management Client.

Improvements

  • Bootloader no longer depends on Pelion Device Management Client. All files needed from PDMC have been put under the new modules folder.
  • Removed dependency on external sd-driver repo. The bootloader now uses sd-driver included in mbed-os.
  • Configuration is consolidated and it is now easier to add new devices to the config files.
  • Fixed compiler warnings.

Important Note

  • KVStore is not backward compatible with previous storage configurations. If your RoT is retrieved from NVStore/SOTP, please use bootloader v3.x.x.

v3.5.0

5 years ago

New Features

  • Update mbed-os to 5.10.0
  • Update cloud client dependency to 2.0.1.1
  • Add configuration for NUCLEO_F303RE, NUCLEO_F207ZG, DISCO_L475VG_IOT01A, and NRF52840_DK

v3.4.0

5 years ago

New Features

  • Add configuration file for a bootloader with default RoT and internal flash firmware storage for Nucleo_F429ZI and K64F
  • Application start address can be configured independently of application jump address to support cases where the vector table is not at the start of the firmware image.
  • Active Metadata Header is no longer required to be directly in front of the the active application. It's location can be independently configured.
  • Add configuration for new platforms: NRF52, NUCLEO_F411RE

Improvements

  • Upgrade to mbed-os-5.9.4
  • Downgrade to sd-driver-0.1.2 to reduce binary size
  • Use NVSTORE API shipped with Mbed-OS instead of SOTP API to retrieve the Root of Trust.
  • Clean up configuration
  • Guard sd block device instantiation so that when internal flash firmware storage is used, all sd-driver code can be linked out.
  • Clean up coding style to conform to mbed-os coding style.
  • Wrap ARM_UCP_FLASHIAP_BLOCKDEVICE so that it only contains the necessary read functions. This reduces binary size.

Important Note

  • SOTP is being replaced with NVSTORE which is shipped in Mbed-OS. As NVSTORE is binary compatible with SOTP there is no breakage. The configuration of offsets are still be the same.
  • In order to keep bootloader size to a minimum, please use latest arm-none-eabi-gcc. Current version is tested with version 7.3.1 which produces binary size smaller than 32k for K64F, UBLOX_EVK_ODIN_W2 and NUCLEO_F429ZI.

v3.3.0

6 years ago

Features

Security

  • Verifies integrity of firmware candidate before performing update.
  • Verifies integrity of active firmware before boot
  • Secure firmware candidate off-chip using HMAC protected firmware header
  • Prevents rollback by rejecting any firmware with smaller version number than active firmware

Reliability

  • Resilient against power cut.

Portability

  • Built using mbed-os to 5.7.2, portable across mbed-os supported boards
  • Supports multiple firmware storage media including filesystem, sd-blockdevice and internal flash.
  • Flexible active firmware placement configurable at compile time.

Compact

  • Less than 32k of binary size on most mbed-os supported platforms.
  • By default use SD blockdevice to store firmware candidates
  • Compile without RTOS and most of mbed-os features
  • Use size optimised minimal-printf library
  • Enable nano.specs for GCC
  • Use a size optimised configuration file for mbedtls