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.
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