Sound Open Firmware, un SDK para el desarrollo y firmware DSP open source
Hace poco se dio a conocer el lanzamiento del proyecto Sound Open Firmware 2.0 (SOF), creado originalmente por Intel para alejarse de la práctica de suministrar firmware cerrado para chips DSP relacionados con el procesamiento de sonido. Este proyecto posteriormente pasó a estar bajo el ala de la Fundación Linux y ahora se está desarrollando con la participación de la comunidad y la participación de AMD, Google y NXP.
El proyecto está desarrollando 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 forman ensamblajes binarios certificados por una firma digital.
Sobre Sound Open Firmware
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 de Intel (Broadwell, Icelake, Tigerlake, Alderlake, etc.), Mediatek (mt8195), NXP (i.MX8 *) y AMD (Renoir) equipados con DSP basado en Xtensa. Se declaran arquitecturas de alta fidelidad.2, 3 y 4.
Durante el proceso de desarrollo, se puede utilizar un emulador especial o QEMU. El uso de firmware abierto para DSP permite solucionar y diagnosticar problemas en el firmware más rápidamente y también brinda a los usuarios la oportunidad de adaptar de forma independiente el firmware 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, así como para crear controladores y programas para interactuar con DSP.
Incluye implementaciones de firmware, herramientas de prueba de firmware, utilidades para convertir archivos ELF en imágenes de firmware adecuadas para su instalación en hardware, herramientas de depuración, emulador DSP, emulador de plataforma host (basado en QEMU), herramientas de seguimiento de firmware, scripts para MATLAB/Octave para ajuste de coeficientes para componentes de sonido, aplicaciones para organizar la interacción y el intercambio de datos con firmware, ejemplos listos para usar de topologías de procesamiento de sonido.
El proyecto también está desarrollando un controlador universal que se puede utilizar con dispositivos que utilizan firmware basado en Sound Open Firmware. El controlador ya está incluido en el kernel principal de Linux desde la versión 5.2 y tiene doble licencia bajo BSD y GPLv2.
El controlador es responsable de cargar el firmware en la memoria del DSP, cargar las topologías de sonido en el DSP, organizar el funcionamiento del dispositivo de sonido (responsable de acceder a las funciones del DSP desde las aplicaciones) y proporcionar puntos de acceso de la aplicación a los datos de sonido.
El controlador también proporciona un mecanismo de IPC para la comunicación entre el sistema host y el DSP, y una capa para acceder a las capacidades de hardware del DSP a través de una API genérica. DSP con Sound Open Firmware parece un dispositivo ALSA normal para aplicaciones, para lo cual puede utilizar la interfaz de software estándar.
Principales novedades de Sound Open Firmware 2.0
Por la parte de las novedades que se destacan de esta nueva versión:
- El rendimiento de las funciones de copia de datos de audio se ha mejorado significativamente y se ha reducido el número de operaciones de acceso a la memoria. En algunos escenarios de procesamiento de audio, la carga se reduce hasta en un 40% mientras se mantiene la misma calidad de audio.
- Estabilidad mejorada en plataformas Intel multinúcleo (cAVS), incluida la compatibilidad para ejecutar controladores en cualquier núcleo DSP.
- Para la plataforma Apollo Lake (APL), el entorno Zephyr RTOS se usa como base para el firmware en lugar de XTOS.
- El nivel de integración de Zephyr OS ha alcanzado la paridad en funcionalidad para algunas plataformas Intel. Zephyr puede simplificar y acortar enormemente el código de las aplicaciones Sound Open Firmware.
- Se implementó la capacidad de utilizar el protocolo IPC4 para soporte básico para capturar y reproducir audio en algunos dispositivos Tiger Lake (TGL) con sistema operativo Windows (el soporte IPC4 permite que Windows interactúe con DSP basado en Sound Open Firmware sin usar un controlador específico).
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.