Bootlin topics at Linux Plumbers conference in Vienna, Sep 18-20

Linux Plumbers conference 2024Next week is going to be a busy week in Vienna, with the Open Source Summit Europe followed by the Linux Plumbers conference. As we had already published in a previous blog post, Bootlin will have a very strong presence at those events: 13 Bootlin engineers will participate to the Open Source Summit and 2 will give talks, and 8 Bootlin engineers will participate to Linux Plumbers.

Regarding Linux Plumbers, we also proposed 3 discussion topics that got accepted:

  • Representing the front-facing ports of Ethernet interfaces, a discussion proposed by Bootlin engineer Maxime Chevallier. This is a topic that Maxime has been working on for quite some time, mainly as part of customer projects at Bootlin. The first step of this effort recently got merged in the Linux kernel, and the ethtool part is being reviewed, but what got merged is only the first step, and additional developments are needed and will be discussed at Plumbers.
  • Runtime hotplug on non-discoverable busses with device tree overlays, a discussion proposed by Bootlin engineers Luca Ceresoli and Hervé Codina. Both Luca and Hervé have been working over the past year or so on projects that involve using Device Tree overlays. Luca on a project where a part of the hardware, with non-discoverable busses (I2C, DSI, etc.) is connected/disconnected at runtime, and Hervé on a project where a PCI device is a full SoC with numerous peripherals that already have drivers in the kernel. Several patch series have been proposed on the mailing lists already, and we hope this discussion at Plumbers will help move the topic forward.
  • Hotplug DRM pipeline components on non-discoverable video busses, a discussion proposed by Bootlin engineer Luca Ceresoli is also related to the previous project, but this discussion focuses on the DRM aspect. Indeed, one of the non-discoverable bus that gets connected/disconnected in our use-case is DSI, so we need to make it hotpluggable, which isn’t supported by Linux currently. We made some proposals on the mailing lists on this topic, and discussion is on-going. We hope a face to face discussion at Plumbers can help moving this other topic forward.

Meet us next week in Vienna, either at the Open Source Summit and/or at Linux Plumbers!

Debugging, tracing and profiling training updated with new eBPF content

Back in January 2023, we announced the availability of a new Bootlin training course  “Linux debugging, profiling, tracing and performance analysis”, initially developed and taught by former Bootlin engineer Clement Léger. A year and a half later, the training course, now taught by Bootlin engineers Luca Ceresoli and Alexis Lothoré, is one of the most requested amongst Bootlin training courses.

Following the feedback received from many people who attended the course, we are happy to announce that a new version of the training is available and  now includes a whole new part about eBPF technology !

Continue reading “Debugging, tracing and profiling training updated with new eBPF content”

Bootlin toolchains 2024.05 released

We just released version 2024.05 of the Bootlin toolchains, a set of 220 freely available pre-compiled cross-compilation toolchains, targeting a wide range of CPU architectures, with support for the 3 major C libraries used in the embedded Linux world: glibc, uClibc-ng and musl.

Continue reading “Bootlin toolchains 2024.05 released”

Buildroot support for STM32MP updated, STM32MP2 added

STM32MP2 Evaluation Board 1We are happy to announce a new release of our buildroot-external-st project, which is a Buildrooot add-on that allows to easily get started with STMicroelectronics STM32MP platforms using Buildroot. This new release openstlinux-6.1-buildroot-2024.02.3-mpu-v24.06.26 brings support for the new STM32MP2 platform, updated ST BSP components, updated Buildroot.

Continue reading “Buildroot support for STM32MP updated, STM32MP2 added”

OP-TEE support for Microchip SAMA5D2 processors

Over the past few years, we have been contributing to the OP-TEE project the support for the Microchip SAMA5D2 processor family, and we also helped with enabling OP-TEE on the Microchip SAMA7 processor family.

In this blog post, we propose a quick introduction to OP-TEE and then detail a few changes that have been
done to add support for Microchip SAMA5 processors to the OP-TEE project.

Continue reading “OP-TEE support for Microchip SAMA5D2 processors”

Linux 6.10 released, Bootlin contributions inside

Linux 6.10 was released last Sunday, following its now well-known release cadence. As usual, head over to LWN.net to have some good summary of the important features merged in this kernel release: part 1 and part 2.

LWN also published an article on statistics of the 6.10 release cycle, and Bootlin shows up in the most active employers by changed lines, with 7746 lines changed by Bootlin engineers. According to ths Kernel Patch Statistics site, we contributed 110 changes, putting us as the 19th contributing company (counting “Unknown” and “Hobbyists” as companies).

Also, in addition to the 110 patches we contributed, some of our engineers are also maintainers of different subsystems, and as such they review/merge patches contributed by others:

  • Alexandre Belloni reviewed/merged 19 patches for the I3C and RTC subsystems which he maintains
  • Grégory Clement reviewed/merged 14 patches for the Marvell ARM and ARM64 platforms that he maintains
  • Miquèl Raynal reviewed/merged 12 patches for the MTD subsystem, which he co-maintains

Continue reading “Linux 6.10 released, Bootlin contributions inside”

Power over Ethernet (PoE) support into the official Linux Kernel

Introduction

Power over Ethernet (PoE) is a technology that combines power and data transmission over a single Ethernet cable. It simplifies the installation of networked devices like cameras, phones, and wireless access points by eliminating the need for separate power cables. PoE standards define how power is delivered alongside data, ensuring compatibility across devices. Originally denoted as “Power via MDI” (Media Dependent Interface) in the 802.3 IEEE standard, it later evolved into the recognized term “PoE” in the 2022 version of the standard. PoE equipment consists of two key components: Power Sourcing Equipment (PSE) and Powered Devices (PD).

Linux support, DENT initiative

Up until recently, the upstream Linux kernel had absolutely no support for Power over Ethernet technologies. Due to that, every hardware vendor providing PoE hardware was delivering its own vendor-specific and non-standard solution, often centered around not so great user-space libraries, with dubious integration with the rest of the Linux ecosystem and networking stack, like is unfortunately still done quite often by hardware vendors.

The DENT project, which exists under the umbrella of the Linux Foundation, aims at using the Linux Kernel, Switchdev, and other Linux based projects as the basis for building a new standardized network operating system without abstractions or overhead. Among other things supported by DENT is dentOS, a SwitchDev based NOS built on top of Open Network Linux, which includes PoE support, but based on yet another non-standard fully user-space driven solution in the name of poed, where even the HW-specific drivers are implemented in user-space.

So DENT set as a goal to implement a fully upstream solution in the Linux kernel to properly support Power over Ethernet, and contracted Bootlin to perform this development and upstreaming effort.

Continue reading “Power over Ethernet (PoE) support into the official Linux Kernel”

Zephyr: implementing a device driver for a sensor

Zephyr LogoThis post is our third blog post in our series about Zephyr. You can check our previous episodes: Getting started with Zephyr and Understanding Zephyr’s Blinky Sample. In this third blog post, we will see how to implement a device driver for Zephyr, from the configuration of the build system, the code of the driver itself, to contributing the driver upstream.

Continue reading “Zephyr: implementing a device driver for a sensor”

Bootlin releases OpenWrt support for STM32MP1 platforms

OpenWrt logoA few years ago, as part of its collaboration with ST, Bootlin developed and released buildroot-external-st, a project offering the integration of the support for ST’s STM32MP1 platform with the popular Buildroot build system, as an alternative to the Yocto Project offering provided directly by ST.

Today, Bootlin is happy to announce the openwrt-feed-st project, which in a similar way, provides integration of ST’s STM32MP1 platforms with the OpenWrt build system. This work was done by Bootlin’s OpenWrt expert Thomas Richard.

Continue reading “Bootlin releases OpenWrt support for STM32MP1 platforms”

Understanding Zephyr’s Blinky Sample

After our initial blog post on Zephyr in which we discovered how to download, build and flash Zephyr on two different boards, in this second blog post, we will dive into the code of Zephyr to understand how exactly the Blinky example works. To illustrate this, we will use the same boards as in our last blog post: an Arduino Nano 33 BLE, and a STM32L562E-DK.

We will first look at how the example application determines which LED to blink and where it’s plugged in, and then we will look at the code responsible for blinking the LED.

Continue reading “Understanding Zephyr’s Blinky Sample”