A bootloader for ARM Cortex-M based microcontrollers
FreeAbout 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
Pros & Cons
- 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
- 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