A bootloader for ARM Cortex-M based microcontrollers logo

A bootloader for ARM Cortex-M based microcontrollers

Free
FreeFree tier
Type
Open Source

About A bootloader for ARM Cortex-M based microcontrollers

yaboot is an open-source bootloader designed for ARM Cortex-M based microcontrollers. It provides secure firmware update and boot capabilities with AES encryption and RSA authentication for integrity verification. The bootloader organizes flash memory into a defined layout: bootloader sector, BootOpt sector (containing metadata like address, length, and hash), and application sector. It supports downloading a new image into a temporary flash slot, verifying its hash, and updating the BootOpt metadata before copying to the application area. Features include hash-based integrity checks, protection against incomplete updates (checking validity before updating BootOpt), and optional verification of application modification. The project is written primarily in C and is licensed under Apache-2.0. Note that some features (e.g., self-update, key exchange) are marked as TODO.

Key Features

Secure boot with AES encryption and RSA key authentication
Memory map layout: Bootloader, BootOpt, and Application sectors
Download new image into a temporal flash slot
Hash verification (RSA) for image integrity
BootOpt metadata update (address, length, hash) with verification
Protection against stuck boot: ensures valid image before updating BootOpt
Optional hash comparison to detect application modification
Reboot support after successful update
Open source under Apache-2.0 license

Pros & Cons

Pros
  • Open source with permissive Apache-2.0 license
  • Strong security via AES encryption and RSA authentication
  • Specifically designed for widely-used ARM Cortex-M architecture
  • Clear memory map structure for bootloader and application
  • Hash verification ensures firmware integrity
  • Temporal flash slot enables rollback safety
  • Available on GitHub for community contributions
Cons
  • No official releases published yet
  • Some features (self-update, key exchange) are still TODO
  • Limited documentation beyond the README
  • Requires understanding of SOC flash protection for full security
  • Small community (29 stars, 8 forks) indicating early-stage project

Best For

Secure firmware update for ARM Cortex-M embedded devicesBoot validation with integrity checking for IoT devicesCustom bootloader for microcontroller projects needing secure bootOver-the-air (OTA) update foundation (implied by download capability)Educational reference for implementing secure boot on Cortex-M

FAQ

What is yaboot?
yaboot is an open-source bootloader for ARM Cortex-M microcontrollers that provides secure firmware update and boot with AES encryption and RSA authentication.
What license does yaboot use?
yaboot is licensed under the Apache-2.0 license.
What security features does yaboot support?
It supports AES encryption for image data and RSA authentication for hash verification, ensuring firmware integrity.
Is yaboot production-ready?
The project appears to be in early development with no releases published and some features marked as TODO. Users should evaluate accordingly.