Recently the launch of the Sound Open Firmware 2.0 project was announced (SOF), originally created by Intel to move away from the practice of supplying closed firmware for DSP chips related to sound processing. This project it later came under the wing of the Linux Foundation And now it is being developed with the participation of the community and the participation of AMD, Google and NXP.
The project you are developing an SDK to simplify firmware development, a sound driver for the Linux kernel and a set of ready-to-use firmware for various DSP chips, for which, among other things, binary assemblies certified by a digital signature are formed.
About Sound Open Firmware
Due to its modular structure, Sound Open Firmware can be ported to various DSP architectures and hardware platforms. For example, among the supported platforms, support for various chips from Intel (Broadwell, Icelake, Tigerlake, Alderlake, etc.), Mediatek (mt8195), NXP (i.MX8 *) and AMD (Renoir) equipped with Xtensa-based DSP . Hi-Fi architectures 2, 3, and 4 are declared.
During the development process, you can use a special emulator or QEMU. Using open firmware for DSP enables faster troubleshooting and diagnosis of firmware issues and also provides users the opportunity to independently tailor the firmware to their needs, perform specific optimizations, and create lightweight firmware versions that contain only the functionality. required on the product.
The project provides a framework for developing, optimizing and testing solutions related to sound processing, as well as to create controllers and programs to interact with DSP.
Includes firmware implementations, firmware testing tools, utilities to convert ELF files into firmware images suitable for installation on hardware, debugging tools, DSP emulator, host platform emulator (based on QEMU), firmware tracking tools, MATLAB / Octave scripts for adjusting coefficients for sound components, applications for organizing interaction and data exchange with firmware, ready-to-use examples of sound processing topologies.
The project also you are developing a universal driver that can be used with devices using firmware based on Sound Open Firmware. The driver is already included in the main Linux kernel since version 5.2 and is dual licensed under BSD and GPLv2.
The controller is responsible for loading the firmware into the DSP memory, loading the sound topologies into the DSP, organizing the operation of the sound device (responsible for accessing the DSP functions from the applications), and providing access points from the application to sound data.
The controller also provides an IPC mechanism for communication between the host system and the DSP, and a layer to access the hardware capabilities of the DSP through a generic API. DSP with Sound Open Firmware looks like a normal ALSA device for applications, for which you can use the standard software interface.
Main new features of Sound Open Firmware 2.0
For the part of the novelties that stand out in this new version:
- The performance of the audio data copy functions has been significantly improved and the number of memory access operations has been reduced. In some audio processing scenarios, the load is reduced by up to 40% while maintaining the same audio quality.
- Improved stability on Intel Multicore Platforms (cAVS), including support for running drivers on any DSP core.
- For the Apollo Lake (APL) platform, the Zephyr RTOS environment is used as the basis for firmware instead of XTOS.
- The Zephyr OS integration level has reached parity in functionality for some Intel platforms. Zephyr can greatly simplify and shorten the code of Sound Open Firmware applications.
- The ability to use the IPC4 protocol for basic support for capturing and playing audio has been implemented on some Windows operating system Tiger Lake (TGL) devices (IPC4 support allows Windows to interact with DSP based on Sound Open Firmware without using a specific driver) .
Finally, if you are interested in being able to know more about it, you can consult the details in the following link