Sound Open Firmware 2.2 ya fue liberado y estas son sus novedades
Se dio a conocer el lanzamiento de la nueva versión del proyecto Sound Open Firmware 2.2 (SOF), creado originalmente por Intel para abandonar la práctica de suministrar firmware cerrado para chips DSP asociados con el procesamiento de sonido.
Posteriormente, el proyecto se transfirió bajo el ala de la Fundación Linux y ahora se está desarrollando con la participación de la comunidad y con la participación de AMD, Google y NXP.
El proyecto desarrolla un SDK para simplificar el desarrollo de firmware, un controlador de sonido para el kernel de Linux y un conjunto de firmware listo para usar para varios chips DSP para los cuales, entre otras cosas, se generan ensamblados binarios firmados digitalmente.
Debido a su estructura modular, Sound Open Firmware se puede portar a varias arquitecturas DSP y plataformas de hardware. Por ejemplo, entre las plataformas soportadas, soporte para varios chips Intel (Broadwell, Icelake, Tigerlake, Alderlake, etc.), Mediatek (mt8195), NXP (i.MX8*) y AMD (Renoir) equipados con DSP basados en Xtensa HiFi Se declara arquitecturas 2, 3 y 4.
Durante el desarrollo, se puede usar un emulador especial o QEMU. El uso de firmware abierto para DSP le permite solucionar y diagnosticar problemas en el firmware con mayor rapidez, y también brinda a los usuarios la oportunidad de adaptar el firmware de forma independiente a sus necesidades, realizar optimizaciones específicas y crear versiones de firmware livianas que contienen solo la funcionalidad necesaria en el producto.
El proyecto proporciona un marco para desarrollar, optimizar y probar soluciones relacionadas con el procesamiento de sonido, además de crear controladores y programas para interactuar con el DSP.
El paquete incluye implementaciones de firmware, herramientas de prueba de firmware, utilidades para convertir archivos ELF en imágenes de firmware adecuadas para la instalación en hardware, herramientas de depuración, un emulador de DSP, un emulador de plataforma host (basado en QEMU), herramientas para rastrear firmware, scripts para MATLAB/ Octava para coeficientes de ajuste fino para componentes de audio, aplicaciones para organizar la interacción y el intercambio de datos con firmware, ejemplos listos para usar de topologías de procesamiento de audio.
El proyecto también está desarrollando un controlador genérico que se puede utilizar con dispositivos que ejecutan firmware basado en Sound Open Firmware.
El controlador ya forma parte del kernel de Linux desde la versión 5.2 y viene bajo una licencia dual – BSD y GPLv2. El controlador es responsable de cargar el firmware en la memoria del DSP, cargar topologías de audio en el DSP, ejecutar el dispositivo de audio (responsable de llamar a las funciones del DSP desde las aplicaciones) y proporcionar puntos de acceso de la aplicación a los datos de audio.
El controlador también proporciona un mecanismo IPC para la comunicación entre el sistema host y el DSP, y una capa para acceder a las capacidades del hardware del DSP a través de una API genérica. Un DSP con Sound Open Firmware ve las aplicaciones como un dispositivo ALSA normal, que se puede controlar mediante una interfaz de software estándar.
Principales novedades de Sound Open Firmware 2.2
En esta nueva versión se destaca que se cambió el nombre del componente para trabajar con bibliotecas de códecs externos de codec_adapter a module_adapter y se alineó con la API de los módulos de procesamiento de señales, lo que permitirá usar el código de los controladores de Windows sin cambiarlo.
Rechazó la API Frag, lo que mejoró el rendimiento de cada componente en aproximadamente 1 MCPS (millones de tics por segundo).
Tambien se destaca que se agregó Frame API, que realiza un cálculo previo de los tamaños de bloque para los controladores en función de las instrucciones SIMD y sin ellas. La optimización permitió aumentar el rendimiento en aproximadamente 0,25 MCPS.
Ademas de ello, tambien se destaca que se amplió la posibilidad de utilizar el entorno Zephyr RTOS en lugar de XTOS como base para el firmware. Zephyr simplifica y acorta enormemente el código de las aplicaciones Sound Open Firmware. La nueva versión agrega compatibilidad nativa con la API de Zephyr para el registro y los retrasos. Se espera soporte nativo completo para Zephyr en la próxima versión.
Por otra parte, se ha ampliado la capacidad de usar el protocolo IPC4 para capturar y reproducir sonido en dispositivos con sistema operativo Windows (la compatibilidad con IPC4 le permite interactuar con DSP basados en Sound Open Firmware de Windows sin usar un controlador específico).
Y se agregó un nuevo módulo de mezcla compatible con HiFi4 para reducir o aumentar la cantidad de canales de audio en la transmisión.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.