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 at Open Source Summit Europe and Linux Plumbers in Vienna, Sep 16-20

On the week of September 16-20, Vienna is going the place to be for all open-source developers, with a large number of conferences taking place during this week. Being strong contributors to several key open-source projects, Bootlin will be strongly present at those conferences.

Open Source Summit Europe 2024

Open Source Summit Europe will take place on Sep 16-18, and its schedule has recently been published. This year, the Embedded Linux Conference part of this conference is unfortunately reduced to just 2 tracks of 2 days, but we nevertheless hope to see some interesting topics. Bootlin has contributed and will contribute to this event with:

In addition, no less than 12 Bootlin engineers will participate to this Open Source Summit Europe: Alexandre Belloni, Grégory Clement, Hervé Codina, João Marcos Costa, Kamel Bouhara, Louis Chauvet, Miquèl Raynal, Richard Genoud, Théo Lebrun, Thomas Petazzoni, Thomas Perrot and another engineer who will join our team just in time before the event to be part of the trip.

Linux Plumbers 2024Right after the Open Source Summit, we will also be present at the Linux Plumbers conference. We have already submitted a few topics in various micro-conferences, and we’re hoping to see them accepted. Regardless of that, 8 engineers from our team will be attending Linux Plumbers: Hervé Codina, Louis Chauvet, Luca Ceresoli, Maxime Chevallier, Miquèl Raynal, Théo Lebrun, Thomas Petazzoni, Thomas Perrot.

We look forward to meeting the community, presenting our projects and ideas and learning about the work done by others! See you all in Vienna in September!

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”

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

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

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

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”

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

As we wrote in a previous blog post, 11 engineers from Bootlin attended the Embedded Linux Conference in Seattle in April. We have a tradition after such an event to share with you a selection of talks that we have found useful. In order to achieve this, we ask each of our engineers who participated to the conference to pick one talk they would like to highlight, and write a short summary/feedback about the talk. In this first installment of this series of blog posts, we’ll share our selection of 4 first talks.

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

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!”