image_pdfimage_print
A way to avoid needing clock support in xPL

A way to avoid needing clock support in xPL

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…

qconfig: From minutes to seconds with kconfiglib

qconfig: From minutes to seconds with kconfiglib

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…

Supporting Multiple Bootflows per Partition in U-Boot

Supporting Multiple Bootflows per Partition in U-Boot

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…

Buildman Goes Distributed: Spreading Builds Across Machines

Buildman Goes Distributed: Spreading Builds Across Machines

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…

Automatic Memory-Leak Detection in U-Boot Tests

Automatic Memory-Leak Detection in U-Boot Tests

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…

Running Claude Code in Containers for U-Boot Development

Running Claude Code in Containers for U-Boot Development

We’ve been using Claude Code for U-Boot development and it’s genuinely useful — writing tests, debugging driver issues, working through refactoring. But running an AI with full access to my dev machine makes one…nervous. So we added a cc subcommand to uman, a tool for managing common U-Boot development tasks, that runs Claude Code inside an LXC container….

Closing the Loop: Pickman Now Fixes Its Own CI Failures

Closing the Loop: Pickman Now Fixes Its Own CI Failures

Pickman automates cherry-picking commits from upstream U-Boot into a downstream branch, packaging each batch as a GitLab merge request. Until now, when a CI pipeline failed on one of those MRs — a build error caused by a missing context change, a renamed symbol — a human had to read the logs, find the problem,…