Running U-Boot’s full sandbox test suite – over 1300 tests – should be a clean experience. But with mcheck heap protection enabled and leak checking turned on, cracks started to show. Tests that passed in isolation would fail when run after dozens of others. The mcheck registry would overflow. Heap-pressure tests would segfault. Something was…
The ext4l driver – U-Boot’s port of the Linux kernel ext4 implementation – has until now been limited to a single mounted filesystem at a time. This is a consequence of the legacy filesystem interface, where each operation (load, ls, size) re-probes the filesystem from scratch, and global variables track the current mount state. With…
U-Boot receives hundreds of patch series every release cycle. Reviewing them thoroughly takes time, and context-switching between unrelated subsystems makes it harder still. Patman now has an AI-assisted review mode that can read a patch series from patchwork, review each patch using a Claude agent, and create Gmail draft replies threaded into the original conversation,…
We are excited to announce a major new feature currently in development for U-Boot: a fully-fledged Virtual Filesystem (VFS) layer. Inspired by the Linux VFS, this new subsystem brings a unified namespace for mounted filesystems, drastically improving how users and developers interact with storage in U-Boot. A Unified Namespace Historically, U-Boot filesystem operations were tightly…
Managing a complex patch series can be a bit of a mental marathon. Between waiting for CI results and tracking reviewer feedback, it’s easy for a series to slip through the cracks. To help with this, we’ve just introduced a new workflow tracking feature to patman. This feature allows you to track the status of…
U-Boot’s Verified Boot for Embedded (VBE) uses multiple boot phases – TPL, VPL, SPL and U-Boot proper – each with a different set of drivers enabled. On rk3399 boards using the DesignWare MMC controller, VPL does not include the CLK framework, to keep the binary small. This causes an intermittent card-enumeration failure that was surprisingly…
The qconfig.py tool builds a database of CONFIG options across all ~1500 U-Boot boards and can sync defconfig files after Kconfig changes. Until now, both operations spawned two make subprocesses per board – one for make defconfig and one for make auto.conf or make savedefconfig. This required cross-compiler toolchains for every architecture and took several minutes on a well-equipped machine. A new patch series…
U-Boot’s standard boot framework (bootstd) discovers operating systems by scanning partitions for bootflow files. Until now, each partition could contribute at most one bootflow per bootmeth. In practice, formats like extlinux can define several labels in a single configuration file – each pointing to a different kernel – and BLS (Boot Loader Specification) installations can…
If you have several machines on your network and want to get builds done more quickly, a new patch series in Concept adds distributed builds to buildman. It spreads work across remote machines over SSH, so you can throw all your available hardware at a build and get results in a fraction of the time. This is…
U-Boot Concept now has built-in memory-leak detection that can be enabled with a single flag. It snapshots the heap before each test and reports any new allocations left behind afterwards, with full caller backtraces showing exactly where the leaked memory was allocated. The problem U-Boot’s driver model creates and destroys hundreds of devices during each…