|
|
Log in / Subscribe / Register

The Sound Open Firmware project launches

By Jonathan Corbet
March 21, 2018

ELC
It is an increasingly poorly kept secret that, underneath the hood of the components that most of us view as "hardware", there is a great deal of proprietary software. This code, written by anonymous developers, rarely sees the light of day; as a result, it tends to have all of the pathologies associated with software that nobody can either review or fix. The 2018 Embedded Linux Conference saw an announcement for a new project that, with luck, will change that situation, at least for one variety of hardware: audio devices.

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 [Imad Sousou] 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
KernelFirmware
ConferenceEmbedded Linux Conference/2018


to post comments

The Sound Open Firmware project launches

Posted Mar 22, 2018 7:17 UTC (Thu) by mjthayer (guest, #39183) [Link] (1 responses)

I wonder whether this sort of thing will give the Linux on small systems people a boost.

The Sound Open Firmware project launches

Posted Mar 27, 2018 4:20 UTC (Tue) by mdolan (subscriber, #104340) [Link]

You may also find linuxboot.org interesting.

The Sound Open Firmware project launches

Posted Mar 26, 2018 4:44 UTC (Mon) by marcH (subscriber, #57642) [Link] (1 responses)

> It is an increasingly poorly kept secret that, underneath the hood of the components that most of us view as "hardware", there is a great deal of proprietary software

"Hidden in plain sight"? https://git.kernel.org/pub/scm/linux/kernel/git/firmware/...

The Sound Open Firmware project launches

Posted Jul 22, 2019 14:38 UTC (Mon) by scientes (guest, #83068) [Link]

SSD/HDD firmware too.

The Sound Open Firmware project launches

Posted May 15, 2020 6:21 UTC (Fri) by pabs (subscriber, #43278) [Link]

Sadly many laptop OEMs (including Lenovo Thinkpads) are requiring Intel/OEM signed binaries, so developers and end users aren't able to build the firmware themselves and run their own binaries. There seems to be some sort of debug/community keys that allow a limited feature set. I assume they disable DRM/HDMI or something similar.

https://github.com/thesofproject/sof/issues/2571
https://github.com/thesofproject/sof/issues/2888
https://github.com/thesofproject/sof/issues/1885
https://github.com/thesofproject/sof/issues/2200

PS: some links to other open firmware:

https://wiki.debian.org/Firmware/Open


Copyright © 2018, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds