Production-grade bootloader supporting 24 board ports across 10 architectures with staged boot, A/B slots, secure boot chain, and Ed25519 verification.
Secure, reliable boot for every embedded platform
Two-stage boot architecture: minimal stage-0 ROM initializes hardware, stage-1 handles full boot logic with peripheral and memory setup.
Ready-to-use board support packages for STM32, nRF, ESP32, Raspberry Pi, BeagleBone, RISC-V SiFive, and many more.
Dual firmware slots enable seamless updates with automatic rollback on boot failure, ensuring devices never brick.
Cryptographic signature verification at every boot stage using Ed25519 with hardware root-of-trust integration.
Memory-efficient streaming update engine that can apply firmware images larger than available RAM using chunked transfers.
Boot multiple cores in symmetric, asymmetric, or lockstep configurations with per-core initialization sequences.
Standardized device description table passed from bootloader to OS, enabling hardware-agnostic kernel initialization.
Built-in recovery shell with UART/USB console, memory dump, flash erase, and emergency firmware loading capabilities.
Build and flash eBoot to your target board
# Clone the repository
git clone https://github.com/embeddedos-org/eBoot.git
cd eBoot
# Configure for your board
cmake -B build -DEBOOT_BOARD=stm32f4
cmake --build build
# Flash stage-0 + stage-1
cmake --build build --target flash
Core bootloader modules
| Module | Description | Header |
|---|---|---|
eboot/stage0 |
Minimal ROM boot — clock, memory, and stack init | eboot/stage0.h |
eboot/stage1 |
Full boot — peripheral init, image loading, handoff | eboot/stage1.h |
eboot/secure |
Secure boot — Ed25519 verification, chain of trust | eboot/secure.h |
eboot/slot |
A/B slot management — selection, rollback, metadata | eboot/slot.h |
eboot/update |
Streaming firmware update — chunked transfer, verify | eboot/update.h |
eboot/devtable |
Device table — UEFI-style hardware description | eboot/devtable.h |
eboot/multicore |
Multicore boot — SMP/AMP/Lockstep init | eboot/multicore.h |
eboot/recovery |
Recovery mode — console, flash tools, diagnostics | eboot/recovery.h |