Bootlin engineer Alexis Lothoré invited at the Linux Storage Filesystem & Memory Management & BPF Summit

LSF, MM & BPF Summit The Linux Storage, Filesystem, Memory Management & BPF Summit (LSFMMBPF) brings together leading developers, researchers, and Linux kernel subsystem maintainers to discuss, design, and implement improvements to the filesystem, storage, and memory management subsystems. The work initiated at this event typically makes its way into the mainline kernel and Linux distributions within the following 24 to 48 months.

In the context of the partnership between Bootlin, the eBPF Foundation and the Alpha Omega organization, Bootlin engineer Alexis Lothoré is currently working on adding KASAN memory checker support to the eBPF subsystem: this work aims to make it easier for eBPF subsystem developers to catch (early) bugs that could be introduced in complex parts of the kernel, like in the eBPF verifier.

This work has already led to some initial design discussions and proof of concept implementation on the kernel mailing lists, but as it requires some close collaboration with kernel developers and maintainers, Alexis has also been invited to attend LSFMMBPF 2026, taking place from May 4th to May 6th in Zagreb, Croatia, and will present his ongoing work on “Adding KASAN support for JITed programs”. This will be the opportunity to discuss and iron out the roadblocks and details to get the feature integrated in the kernel, as this event is not really a classic conference in which people primarily attend talks: the goal really is to trigger discussions to make solutions and features move forward in the kernel, in a “workshop-like” atmosphere. This work is one among many others on-going topics in the Linux kernel that need discussions, more details are available in the full event schedule.

We are proud to have one of our engineers contributing to this gathering of Linux kernel experts. This invitation highlights Bootlin’s strong involvement in upstream Linux kernel development.

Linux 7.0 released, Bootlin contributions inside

Linux 7.0, Bootlin contributionsLinux 7.0 was released earlier this week, and as usual we refer our readers to the excellent LWN articles that cover the major features brought by this new kernel version: part 1, part 2. We strongly encourage our readers to check out these articles, and we also recommend becoming an LWN.net subscriber to support their outstanding work documenting the Linux and open-source ecosystem.

Bootlin has also been very active in this Linux 7.0 release cycle, with 144 commits authored by Bootlin engineers in this release, placing us 17th among contributing organizations according to the Linux Kernel Patch Statistics, also putting Bootlin in the most active employers for Linux 7.0 according to LWN.net:

Linux 7.0 most active employers

Also, in addition to authoring 144 commits, Bootlin engineers reviewed/merged 152 patches from other contributors: as the RTC and I3C subsystem maintainer, Alexandre Belloni merged 88 patches from other contributors, as the MTD subsystem co-maintainer, Miquèl Raynal merged 47 patches from other maintainers, Luca Ceresoli as a drm-misc co-maintainer merged 9 patches, and Grégory Clement as the Marvell platform maintainer merged 8 patches.

Continue reading “Linux 7.0 released, Bootlin contributions inside”

Linux 6.19 released, Bootlin contributions inside

Penguin coding, AI generatedLinux 6.19 was just released yesterday, and as usual we recommend reading LWN.net articles to have a nice high-level overview of the new features brought by this release: part 1, part 2. Kernelnewbies also has a nice article.

On our side, with 160 commits it is a very strong release for our team. According to statistics, this puts Bootlin as the top 15 contributing company for this release. In addition to the patch we authored, several Bootlin engineers reviewed/merged patches from other contributors: most notably, Alexandre Belloni merged/reviewed 52 patches for the RTC and I3C subsystems, Luca Ceresoli reviewed 18 patches, Miquèl Raynal merged/reviewed 34 patches for the MTD subsystem.

Continue reading “Linux 6.19 released, Bootlin contributions inside”

Upstreaming of the AAEON UP board IO expansion Linux kernel driver

AAEON UP board familyThe UP Board family of platforms, developed by AAEON, is a series of compact, high-performance single-board computers (SBCs) widely used in the industry and embedded applications. They combine high-performance Intel processors with versatile I/O through a 40-pin Raspberry Pi-like header. At its core, an FPGA manages pin functionality, routing, and direction, enabling flexible use as I2C, UART, or GPIO. Supporting this setup in Linux is uniquely challenging and fascinating, and we were recently involved in bringing support for these I/Os upstream, successfully closing a story that had been open for seven years!

Continue reading “Upstreaming of the AAEON UP board IO expansion Linux kernel driver”

Linux 6.18 released, Bootlin contributions inside

Penguin coding, AI generatedThe 6.18 version of the Linux kernel has just been released, and as usual we recommend our readers to look at the 6.18 merge window coverage by LWN.net (part 1, part 2) to get the best overview of the major changes in this release.

On our side, we contributed a total of 77 patches to this kernel release, and our engineers who work as maintainers review/merged 111 patches from other contributors.

Continue reading “Linux 6.18 released, Bootlin contributions inside”

Adding support for the MAX7360 keypad controller in the Linux kernel

MAX7360Among all activities I’ve been doing at Bootlin during the past few months, one has been to add support for the Maxim MAX7360 Key-Switch Controller and LED Driver/GPIOs chip to the Linux kernel. Together with my colleague Kamel Bouhara, we developed Linux kernel device drivers to support it and upstreamed them to the mainline kernel. The full set of drivers have been merged in the upstream Linux kernel, and will be available in the upcoming Linux 6.18 release.

In this blog post, we will share some details on how this hardware works, and how it is now supported by the Linux kernel.

Continue reading “Adding support for the MAX7360 keypad controller in the Linux kernel”

Bootlin at Capitole du Libre in Toulouse, Nov 15-16

Capitole du LibreCapitole du Libre is the leading annual open-source and free software conference in Toulouse, France, and has been a key event in the community for over a decade. With offices based in Toulouse, Bootlin has been a long-time participant and active contributor to this event, and 2025 will be no exception.

  • Bootlin is part of the 4 Platine sponsors of the event, the highest sponsorship level
  • Bootlin will have a booth in the main hall of the conference, which will allow visitors to meet the Bootlin team, discuss Bootlin activities, career and internship opportunities, and more
  • Bootlin engineers will be giving a number of talks, related to Embedded Linux or not:
    • Thomas Petazzoni will be giving a talk titled What’s new in the Linux kernel: a year of changes in review
    • Alexis Lothoré and Maxime Chevallier will be delivering a hands-on workshop on Mastering eBPF and XDP: creating a high-performance ad blocker
    • The same Alexis Lothoré will be talking about a more personal project: An Open-Source Blind Test from Start to Finish: When Free Software Makes Our Parties Buzz

Looking forward to meet you at Capitole du Libre in November!

The Dwarves Beneath the Kernel: Forging BTF for eBPF

This blog post is the third installment in our eBPF blog post series, following our posts about eBPF selftests and eBPF trampolines.

In the previous blog post, we discussed how eBPF trampolines are dynamically generated to allow hooking tracing programs to functions’ entry and/or exit. Each trampoline is tailored specifically for the target function on which we want to hook programs: it is then able to read the function context (e.g. function arguments and return value) and to pass those to the hooked programs. However there is one detail that we did not address: how does the trampoline generator know exactly about the function layout? To be able to generate trampolines that can read and store the function arguments, the trampoline generator needs many details about each argument: the location (a register? If so, which one? Or maybe it is on the stack? And if so, at which offset?) and its size. Parsing the function machine code is not enough to learn about those, and even if it was, compiler optimizations would obfuscate this kind of info even more. What if besides the actual executable code, the kernel image could be bearing some data about its internal functions? In this post, we will dive into the DWARF debug information format, and the BPF Type Format (BTF) derived from it to support such a purpose.

Continue reading “The Dwarves Beneath the Kernel: Forging BTF for eBPF”

Linux 6.17 released, Bootlin contributions inside

Penguin coding, AI generatedLinux 6.17 was released a bit over a week ago, and as usual LWN.net gave the best summary of the new features and important changes in this release: part 1, part 2.

As usual, Bootlin contributed to this kernel, with a total of 98 patches authored by Bootlin engineers, but also another 94 patches that were reviewed/merged by Bootlin engineers, mostly by Alexandre Belloni (RTC and I3C maintainer, reviewed/merged 58 patches), Miquèl Raynal (MTD co-maintainer, reviewed/merged 20 patches) and Grégory Clement (Marvell EBU platform maintainer, reviewed/merged 8 patches).

Continue reading “Linux 6.17 released, Bootlin contributions inside”

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”