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


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”

Linux Display Next Hackfest: A Gathering of Minds for Graphics in Linux

The Linux Display Next Hackfest, graciously hosted by Igalia in the beautiful city of A Coruña, was an event that brought together a diverse group of individuals from various projects and companies, all with a common interest in the world of Linux graphics.

The event was a buzzing hive of discussions, with the primary focus being on Direct Rendering Manager (DRM), compositors and an array of topics related to graphics in Linux. Representatives from Fedora, Mutter, KWin, AMD, Nvidia, Google, and many others were present, lending their expertise and insights to the conversations.

Continue reading “Linux Display Next Hackfest: A Gathering of Minds for Graphics in Linux”

Back from the Embededded Linux Conference: selection of talks #2

After a first episode, our series of blog posts with our selection of talks we liked at the latest Embedded Linux Conference continues. Read on to discover 4 more talks that we enjoyed, and decided to summarize and highlight for you.

Continue reading “Back from the Embededded Linux Conference: selection of talks #2”

Linux 6.9 released, Bootlin contributions inside!

Linux 6.9 was released last Sunday, and as usual we refer our readers to the excellent LWN.net coverage of the Linux 6.9 merge window (part 1 and part 2) to get a good overall picture of the improvements and new features brought by this release.

On our side, we contributed a total of 119 commits authored by Bootlin engineers, but we also merged a total of 95 patches from other contributors, as several Bootlin engineers as also maintainers of various drivers/subsystems in the Linux kernel.

Continue reading “Linux 6.9 released, Bootlin contributions inside!”

Yocto 5.0 Scarthgap released, Bootlin contributions inside

Yocto Project SummitThe latest release of the Yocto Project, version 5.0, code named Scarthgap has been published a few days ago. The release notes provide the best summary of what’s new in this release. Being a Long Term Support (LTS) release, it will be maintained during 4 years with bug fixes and security updates, which makes this release particularly important for a large number of embedded Linux projects and products.

At Bootlin, we are using Yocto for a large fraction of the Linux Board Support Packages that we develop, maintain and upgrade for our customers. But we’re not only users of Yocto: we’re also contributors and maintainers. In this blog post, we’ll highlight our contributions to this release, which take various forms.

Continue reading “Yocto 5.0 Scarthgap released, Bootlin contributions inside”

Our talks at Embedded Open Source Summit 2024

The Embedded Open Source Summit 2024 took place on Apr 16-18 in Seattle, with many talks on a wide range of embedded Linux topics. 11 engineers from Bootlin participated to this conference and four of us gave talks, for which we are happy to publish the slides and videos in this blog post.

Bootlin team at Embedded Open Source Summit 2024
Bootlin team at Embedded Open Source Summit 2024

Continue reading “Our talks at Embedded Open Source Summit 2024”

Getting started with Zephyr

Zephyr is an open-source real-time operating system, used mainly in embedded devices, with a focus on small systems, thanks to its very small footprint.

This post is a quick startup guide to show how to run Zephyr on two different boards, from two different vendors:

In this post, we will show how to install all the tools needed to build and run Zephyr, then run some samples, until we get access to the Zephyr shell over USB.

Continue reading “Getting started with Zephyr”