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:
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.
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
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.
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!