barebox – Embedded Linux Bootloader

Maintained by Pengutronix

For more than 15 years, barebox has been one of the leading bootloaders in the embedded Linux world, supporting a wide range of processors and development boards – above all on ARM platforms. As an active maintainer, Pengutronix contributes significantly to its ongoing development.

barebox plays a central role in modern embedded Linux systems: besides the basic hardware initialisation and loading the kernel, it acts, for example, as the decision instance for A/B redundancy boots and forms an important link in the verified boot chain.

Beyond that, barebox can also be a useful tool when bringing up new hardware: since there is no concurrency and there are no interrupts in the bootloader yet, while hardware can already be accessed, it is also very popular among hardware people.

barebox can be used beyond classic embedded hardware as well: built as an EFI application, it brings redundant, watchdog-supervised boot to PC-type systems.

Features

Security Policies

Dynamic, secure switching between 'Lockdown' and 'Devel' profiles.

Security & Hardening

Verified boot, debug lockdown.

FIT image

Support & verification.

Redundant boot

Flexibly configurable A/B framework.

Storage framework

Atomic, decoupled from the bootloader env.

Device-tree-first

Dynamic runtime extension for board variants.

Multi-image build

A build can generate multiple images simultaneously across boards and SoCs.

Developer-friendly

UNIX-like shell, scripting and Linux-style driver APIs.

Extensive documentation Continuous fuzzing Memory safety hardening LTS releases

Build system integration

as well as various other embedded Linux build systems.

Pengutronix supports you in all phases of your barebox implementation

Porting & adaptation

Device tree, boot scripts and barebox configuration for your target hardware.

Secure boot design

Architecture of chain of trust, key provisioning and signature workflows.

BSP integration

Integration of barebox into your board support package, including connection to Yocto, PTXdist or Buildroot.

CI/CD integration

Automated builds, tests (unit, integration) and signatures in Jenkins/GitLab CI.

Upstream contributions

Submission and maintenance of patches in the official barebox repository.

Long-term maintenance

Regular updates to current barebox versions.