Bootlin toolchains 2025.08 released

Bootlin toolchains 2025.08We are excited to announce the release of a new version of our freely available, pre-compiled cross-compilation toolchains, hosted at toolchains.bootlin.com.

This update covers a range of 43 CPU architecture variants, including: aarch64, aarch64be, arcle-750d, arcle-hs38, armv5-eabi, armv6-eabihf, armv7-eabihf, armebv7-eabihf, armv7m, m68k-68xxx, m68k-coldfire, microblazebe, microblazeel, mips32, mips32el, mips32r5el, mips32r6el, mips64-n32, mips64el-n32, mips64r6el-n32, openrisc, powerpc-440fp, powerpc-e300c3, powerpc-e500mc, powerpc64-e5500, powerpc64-e6500, powerpc64-power8, powerpc64le-power8, riscv32-ilp32d, riscv64-lp64d, s390x-z13, sh-sh4, sh-sh4aeb, sparc64, sparcv8, x86-64, x86-64-v2, x86-64-v3, x86-64-v4, x86-64-core-i7, x86-core2, x86-i686, xtensa-lx60.

As with previous releases, we provide two editions of each toolchain: a stable version based on the N-1 releases of GCC, binutils, GDB, and slightly older kernel headers, and a bleeding edge version featuring the latest available components. For the 2025.08 release, the versions are:

  • Stable version: GCC 14.3, Binutils 2.43.1, GDB 15.2, Linux headers 5.4, glibc 2.41, musl 1.2.5, uclibc-ng 1.0.45
  • Bleeding edge version: GCC 15.1, Binutils 2.44, GDB 16.3, Linux headers 5.15, glibc 2.41, musl 1.2.5, uclibc-ng 1.0.45

All toolchains are built for x86-64 Linux hosts and are compatible even with relatively old Linux distributions. We welcome bug reports and feedback through our project issue tracker.

Congatec Board Controller support into the upstream Linux Kernel

Introduction

Congatec’s x86 System-on-Modules (SoM) include a Board Controller component connected to the processor via an eSPI bus, and providing various features such as I²C buses, GPIOs, a watchdog timer, and various sensors for monitoring voltage, fan speed, and more.

Conga-SA7 datasheet extract

For their x86 System-on-Modules (SoMs), Congatec provides a Yocto meta-layer: meta-congatec-x86. This meta-layer includes, among other components, a driver, a library, and tools for interfacing with the Board Controller.

The primary issue with the provided driver is its deviation from standard Linux APIs. It exposes a custom character device and relies on custom ioctl() for communication with userspace. This non-standard approach leads to compatibility and portability challenges. For example, an application using the standard Linux GPIO API would need to be adapted to access the GPIOs from Congatec’s Board Controller. Similarly, software designed specifically for the Board Controller’s GPIOs would require changes to work with GPIOs on other platforms.

Additionally, because the driver is out-of-tree, it raises concerns about long-term support and maintainability. Questions naturally arise—will the driver be regularly updated to remain compatible with future Linux kernel versions, given the instability of internal APIs? Will bugs and security vulnerabilities be addressed in a timely manner?

One of our customers, planning to use the Conga-SA7 board in a commercial product, recognized these challenges early on. As a result, they asked us to integrate support for the Congatec Board Controller directly into the mainline Linux kernel. Upstreaming the driver into the kernel would eliminate these issues by ensuring better portability, long-term maintenance, and community support.

Continue reading “Congatec Board Controller support into the upstream Linux Kernel”

Bouncing on trampolines to run eBPF programs

This blog post is the second installment in our eBPF blog post series, following our blog post about eBPF selftests.

As eBPF is more and more used in the industry, eBPF kernel developers give considerable attention to eBPF performance: some standard use cases like system monitoring involve hundreds of eBPF programs attached to events triggered at high frequencies. It is then paramount to keep eBPF programs execution overhead as low as possible. This blog post aims to shed some light on an internal eBPF mechanism perfectly showcasing those efforts: the eBPF trampoline.

Continue reading “Bouncing on trampolines to run eBPF programs”

Back from Display Next Hackfest 2025

This year, the Linux Display Next Hackfest was hosted by AMD in Toronto. The event brought together a diverse group of contributors from a wide range of projects and companies, all united by a shared interest in advancing Linux Graphics. Participants included kernel developers, compositor maintainers, hardware vendors, and others deeply involved in the graphics stack. For the second year in a row, I had the opportunity to attend in person—an important step for Bootlin, as staying closely engaged with the latest developments in the Linux Graphics Stack is key to delivering upstream-friendly, cutting-edge support for our customers.

As usual, a wide range of topics were discussed: commit failure feedback, backlight API, adaptive backlight management, testing, pageflip, scheduling, variable refresh rate (VRR), atomic commits, and others. What made this edition especially noteworthy was the presence of two color experts: a full day was dedicated to exploring HDR—what it is, how it works, and how we can support it properly in Linux.

Display Next Hackfest 2025

You can read the notes for this event on Harry’s blog, or from Xaver Hugl, more will probably be posted later by other participants.

Continue reading “Back from Display Next Hackfest 2025”

Linux 6.16 released, Bootlin contributions

Penguin coding, AI generatedLinux 6.16 was released last Sunday, and as usual LWN provides the best coverage of what’s new: part 1 and part 2, as well as the KernelNewbies.org page for this release.

This time around, the engineers at Bootlin contributed 89 patches to the 6.16 release, but also as maintainers, they reviewed/merged 117 patches from other contributors!

Continue reading “Linux 6.16 released, Bootlin contributions”

Snagboot 2.4 release overview

Snagboot 2.4Snagboot is an open-source and vendor-neutral tool to recover and reflash a wide variety of embedded platforms, leveraging the communication protocols offered by the boot ROMs of most modern system-on-chips. It replaces unpractical, vendor-specific and often closed-source tools provided by silicon vendors.

Spring 2025 has been especially rich in Snagboot contributions. Various bug fixes, feature requests and even support for additional SoC families have been submitted to the official  repository. Version 2.4 of Snagboot was released last Monday, which gives us a good opportunity to take a closer look at some of these improvements.

Continue reading “Snagboot 2.4 release overview”

Step-by-Step Guide to Adding SoC and Board Support to Zephyr with CH32V303

ZephyrThis post is the sixth in our series about Zephyr. You can find the previous episodes below:

  1. Getting started with Zephyr
  2. Understanding Zephyr’s Blinky example
  3. Zephyr: Implementing a Device Driver for a sensor
  4. Integrating ST7789H2 Display Support on STM32L562E-DK with Zephyr: A Step-by-Step Guide
  5. Zephyr: making a driver for the Nunchuk joystick

In this sixth post, we will explore how to add support for a new System-on-Chip (SoC) and a new board in the Zephyr operating system.

Continue reading “Step-by-Step Guide to Adding SoC and Board Support to Zephyr with CH32V303”

Bootlin engineer Louis Chauvet at the 2025 Display Next Hackfest

Like last year, Bootlin engineer Louis Chauvet is attending the 2025 Display Next Hackfest, taking place this week in Toronto, Canada, and hosted by AMD.

As described on the event website:

The Display Next Hackfest is an event where talented developers will gather to explore the latest technologies and trends in the Linux Display Stack. It has an unconference format where participants propose topics for presenting, roadmapping, discussing and examining together. It aims to unblock bottlenecks, design solutions, raise pitfalls and accommodate the needs of each layer of the display stack. Participants should feel free to propose any topic which interests them. Some topics from the previous edition include: HDR and color management, frame timing and variable refresh rate (VRR), atomic flips, backlight control, testing and CI, etc.

Attending this hackfest is especially important for Bootlin, as it allows us to stay actively involved in the upstream Linux graphics ecosystem. By participating in discussions and collaborative problem-solving sessions with key contributors and maintainers, we ensure that our expertise remains aligned with the latest developments and best practices. This also strengthens our ability to support our customers with state-of-the-art display integration and driver development, while contributing improvements and fixes back to the community.

Linux 6.15 released, Bootlin contributions inside

Penguin coding, AI generatedLinux 6.15 has been released last Sunday, and we as usual encourage our readers to look at the LWN summaries of the merge window (part 1, part 2) for a good summary. CNX-Software also has a summary more oriented towards hardware support for ARM and RISC-V platforms.

On our side, we have been quite active in this release cycle, with no less than 145 commits from Bootlin engineers merged. Also, our engineers who maintain various subsystems in the Linux kernel reviewed and merged a total of 104 patches from other contributors.

Continue reading “Linux 6.15 released, Bootlin contributions inside”

Safe updates using RAUC on Raspberry Pi 5

RAUC on RaspberryPi 5As part of a recent project at Bootlin, we implemented A/B Over-The-Air (OTA) updates on a a system based on the RaspberryPi 5 using RAUC. We ended up not using U-Boot as a bootloader and instead rely solely on the RaspberryPi firmware as a bootloader. This post will dive into the details of making this happen, and some advanced features of RAUC.

Continue reading “Safe updates using RAUC on Raspberry Pi 5”