Embedded Linux Conference 2021

The usual cadence of ELC North America and ELC Europe has changed this year due to the ongoing pandemic, and there is a single Embedded Linux Conference which begins next week: Monday, September 27th, through Wednesday, September 30th. The Linux Foundation is running ELC as a hybrid event which means there will both be in-person attendees and speakers onsite in Seattle and there will also be attendees and speakers attending remotely. Registration is still open and online attendance is only $50.

The schedule is full of interesting talks, and BayLibre is excited to have our team presenting 4 talks:

Introduction to Pin Muxing and GPIO Control Under Linux – Neil Armstrong

Monday, September 27 • 11:15am – 12:05pm

In the last 10 years, the GPIO and PINCTRL subsystem matured to support almost every possible handling of Programmable Input/Outputs and more generally multiplexing of multiple functions on single “Pins” or group of “Pins”. However, what is a “Pin”? What is a multiplexed “Function”? How programmable I/Os and pin functions are designed on the majority of System-On-Chips? Neil will describe this from the Hardware design Point-Of-View, the constraints and the requirements. Then Neil will explain how this particular subject was handled over the years in the Linux kernel, to finally get to the current GPIO & PINCTRL subsystems, and how it articulates with the Device Tree and other Firmware based protocols.

The Future of Linux on RISC-V – Drew Fustini

Tuesday, September 28 • 12:00pm – 12:50pm

This talk will explore the future of Linux on RISC-V, an open instruction set (ISA). I will introduce the open source FPGA ecosystem including Migen and LiteX, and explain how they make it possible to quickly implement SoC designs in an FPGA capable of running Linux on a RISC-V. I will also explore Linux-capable open source RISC-V implementations, and how some are being used in both academia and industry. I will look at what Linux-capable “hard” RISC-V SoC’s currently exist and what is on the horizon. I will also talk about how support in Linux for RISC-V is continuing to evolve such as the introduction of KVM RISC-V support and look at RISC-V hardware support that is in the process of being upstreamed. I will describe how the upcoming RISC-V Platform Specification is trying to standardize boot and runtime requirements.

“Plan to Throw One Away” – Pitfalls of API Design for Low-level User-space Libraries and Kernel Interfaces – Bartosz Golaszewski

Wednesday, September 29 • 10:30am – 11:20am

Ever wondered why so many of the popular plumbing-layer user-space libraries are usually called libfoobar2, gstreamer1.0 etc.? Why we have cgroup and crgroup2? Why a lot of kernel uAPI headers define SOMETHING_SOMETHING_IOCTL_V2? Unlike the in-kernel interfaces, user-space libraries usually promise a certain level of stability of the API and ABI – especially across a single major release. The kernel is even more strict on that – user-space programs must not be broken with incompatible changes to the kernel uAPI and it’s extremely rare to see any kernel interface modified or removed. This presentation will try to answer the question: why is it so difficult to design new programming interfaces correctly the first time? Why are minor, backward-compatible changes often not enough to address design issues and why do we need to always “plan to throw one away”? The author has hands-on experience with this problem – having helped design the GPIO uAPI and developed the user-space part of the kernel interface, only to see the kernel interface redesigned and ending up working on version 2 of the userland library. This presentation hopes to shed light on the aspects of good API design and help programmers avoid having to release multiple major versions of their open-source projects.

A New user(space): Adding RISC-V Support to Zephyr RTOS – Kevin Hilman & Alexandre Mergnat

Wednesday, September 29 • 2:45pm – 3:35pm

The use of RISC-V in embedded & IoT is continually growing, and Zephyr is one of the RTOSes that is seeing lots of RISC-V activity. This talk will cover how various RISC-V hardware features were used to implement protected memory, isolated userspace and hardware stack protection in the Zephyr RTOS kernel. 

Seattle-based Kevin Hilman and Portland-based Drew Fustini will be attending in person. We look forward to seeing you at ELC, either in-person or online!

Linux Kernel v5.14 released, our contributions

Linux v5.14, the latest version of the kernel, marks the 30th anniversary of Linux! As always, LWN.net has in-depth coverage including the merge window (part one, part two) and the statistics from the 5.14 development cycle.

Here’s a summary of our contributions, organized by SoC family, and a summary graph of contributions by each developer.

Amlogic SoCs

We again did a lot of Amlogic development contributing 18 patches:

  • Jerome Brunet
    • improved HDMI audio on Amlogic Khadas VIM3
    • improved Meson AXG Audio Clock Controller Driver
    • contributed fix in Amlogic Meson-G12A Clock Controller Driver
  • Neil Armstrong
    • added support for the Banana PI BPI-M5 board
    • added support for the TOACODEC found in Amlogic SM1 SoCs
    • made fixes for the ODROID-C4 and ODROID-HC4
    • made UART fix for Amlogic Meson AXG, G12, GX
    • improved the Amlogic Meson serial port driver
    • made fix to Amlogic Meson HDMI-TX DRM driver

MediaTek SoCs

We also worked on supporting MediaTek SoCs with 19 patches:

  • Fabien Parent
    • added driver and DT bindings for MT8365 pin controller.
    • enabled cpufreq support of MediaTek MT8365 SoC
    • converted MediaTek RNG DT bindings to YAML format
    • added support for the MediaTek MT8167 power domains
    • improved support of MediaTek MT8167 peripherals
  • Neil Armstrong
    • added HDMI DT bindings for MediaTek MT8167
    • converted MediaTek HDMI dt bindings to use graph schema
  • Mattijs Korpershoek added support for PMIC keys for MT6358

Gemini SoCs

Corentin Labbe contributed 15 patches for Cortina Systems Gemini SoCs which are notably used in Network Attached Storage (NAS) devices:

  • added new driver for hardware cryptographic offloader for Storlink SL3516 SoC
  • added support for Welltech EPBX100
  • contributed improvements for:
    • D-Link DNS-313 1-Bay NAS
    • D-Link DIR-685 Xtreme N Storage Router
    • D-Link DNS-313 1-Bay Network Storage Enclosure
    • ITian Square One SQ201
    • Raidsonic NAS IB-4220-B
    • Storlink Semiconductor Gemini324 EV-Board
    • Teltonika RUT1xx
    • Wiliboard WBD-111
    • Wiliboard WBD-222

Texas Instruments SoCs

Kevin Hilman continued to upstream fixes for TI SoCs and EVM boards


Jerome Brunet contributed fixes to the USB gadget audio driver


Corentin Labbe made improvements to the Intel IXP4XX crypto driver and has become a maintainer of the driver


Phong LE and Neil Armstrong added a new driver and DT bindings for ITE IT66121 HDMI bridge chip

Kernel CI

Corentin Labbe made it possible for Gentoo’s KernelCI to boot test the alpha arch


  • Nicolas Pitre added clock management to ARM SCMI Generic power domain support
  • Corentin Labbe
    • made fixes to the Zoran video capture drivers
    • converted DT bindings to YAML format for:
      • Faraday Technology FTRTC010 Real Time Clock
      • Faraday TV Encoder TVE200
      • ARM PrimeCells PL080 and PL081 DMA controller
      • MDIO on GPIOs
plot of 5.14 contributions per developer