The Sound Open Firmware project launches
Intel's Imad Sousou took to the stage at ELC to introduce a couple of new
projects. One of them was inspired by the MinnowBoard project, which is working
to create development boards based entirely on free software. That goal
has been almost completely achieved, he said, but there is an exception in
that the board requires a number of proprietary firmware components. The
desire to fix that problem led to the creation of the Sound Open Firmware (SOF) project.
The objective behind SOF is to create open-source firmware for audio and video-related devices. This is, Sousou said, an area that has typically been dominated by proprietary software. This project has been jointly launched with Google; there are, he suggested, plenty of opportunities for contributors who might want to join this effort. The code is released under a combination of the BSD and GPLv2 licenses.
Sousou's talk stopped there, but a bit of digging can turn up some more
information. The project has a
page on the ALSA project's wiki describing where to find the software
and how to get started with it. There is a software-development kit (SDK) to
install; building the firmware also requires a cross-compiler for the
Xtensa
architecture. The SDK includes an emulator that can be used during
the development process; the SOF web site also notes that
"proprietary compilers and emulators
" are available.
Currently, only Xtensa-based digital signal processors are supported, but
the project's intent is to eventually support a wider range of hardware.
The firmware itself is based on its own miniature kernel; it would appear that a new kernel was developed rather than adapting one of the (many) existing tiny kernels in circulation. It includes an earliest-deadline first scheduler and supports basic concepts like memory allocation, interrupt handling, work queues, and more. Using that, the firmware runs an "audio task" whose job is to move data between the DMA buffers and the audio-processing components.
On the kernel side, SOF appears to present a semi-standard interface that all drivers can use, but there is still a significant amount of device-specific code required. The code to support SOF-based devices can be found in the ALSA system-on-chip tree (git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc.git). It is not currently in the mainline; it also does not appear in linux-next, so it will almost certainly not make an appearance before the 4.18 development cycle. There is a mailing list with a fair amount of traffic; almost all of it comes from Intel addresses, which is unsurprising for a project that has only just been opened up to the world.
This project is in its infancy (despite the nearly 18 months of history on the mailing list), but it has the potential to make things better in a number of ways. Manufacturers that participate in it may end up with higher-quality firmware with less effort. Developers interested in doing new things with audio hardware should find SOF-based devices to be a good starting point. And, if the project succeeds, we'll all have systems running a bit more free software at the lowest levels, which seems like a good thing.
(For the curious, the other project announced in this talk was the ACRN hypervisor. It is designed for safety-critical systems and appears to support many of the features found in systems like seL4.)
[Thanks to the Linux Foundation, LWN's travel sponsor, for supporting your
editor's travel to ELC.]
| Index entries for this article | |
|---|---|
| Kernel | Firmware |
| Conference | Embedded Linux Conference/2018 |
