Publicouse o lanzamento do proxecto Sound Open Firmware 2.0 (SOF), creado orixinalmente por Intel para afastarse da práctica de entregar firmware pechado para chips DSP relacionados co procesamento de audio. O proxecto foi trasladado posteriormente baixo a á da Fundación Linux e agora está a desenvolverse coa implicación da comunidade e coa participación de AMD, Google e NXP. O proxecto está a desenvolver un SDK para simplificar o desenvolvemento de firmware, un controlador de son para o núcleo Linux e un conxunto de firmware preparado para varios chips DSP, para os que tamén se xeran conxuntos binarios, certificados mediante unha sinatura dixital. O código do firmware está escrito en linguaxe C con insercións de montaxe e distribúese baixo a licenza BSD.
Grazas á súa estrutura modular, o Sound Open Firmware pódese portar a varias arquitecturas DSP e plataformas de hardware. Por exemplo, entre as plataformas compatibles, hai soporte para varios chips Intel (Broadwell, Icelake, Tigerlake, Alderlake, etc.), Mediatek (mt8195), NXP (i.MX8*) e AMD (Renoir) equipados con DSP baseados en Xtensa HiFi 2, 3 e 4. Durante o proceso de desenvolvemento, pódese usar un emulador especial ou QEMU. O uso de firmware aberto para DSP permítelle corrixir e diagnosticar problemas máis rapidamente no firmware, e tamén ofrece aos usuarios a oportunidade de adaptar o firmware de forma independente ás súas necesidades, facer optimizacións específicas e crear versións de firmware lixeiras que conteñan só a funcionalidade necesaria para o produto.
O proxecto proporciona un marco para desenvolver, optimizar e probar solucións relacionadas co procesamento de audio, así como para crear controladores e programas para interactuar con DSP. A composición inclúe implementacións de firmware, ferramentas para probar firmware, utilidades para converter ficheiros ELF en imaxes de firmware adecuadas para a instalación en equipos, ferramentas de depuración, un emulador DSP, un emulador de plataforma host (baseado en QEMU), ferramentas para rastrexar firmware, scripts para MATLAB /Octave para axustar coeficientes de compoñentes de audio, aplicacións para organizar a interacción e o intercambio de datos con firmware, exemplos preparados de topoloxías de procesamento de audio.
O proxecto tamén está a desenvolver un controlador universal que se pode usar con dispositivos que utilicen firmware baseado en Sound Open Firmware. O controlador xa está incluído no núcleo principal de Linux, comezando coa versión 5.2, e inclúe unha licenza dual: BSD e GPLv2. O controlador é o responsable de cargar o firmware na memoria DSP, cargar topoloxías de audio no DSP, organizar o funcionamento do dispositivo de audio (responsable de acceder ás funcións DSP desde as aplicacións) e proporcionar puntos de acceso das aplicacións aos datos de audio. O controlador tamén proporciona un mecanismo IPC para a comunicación entre o sistema host e o DSP, e unha capa para acceder ás capacidades de hardware DSP a través dunha API xenérica. Para as aplicacións, un DSP con Sound Open Firmware parece un dispositivo ALSA normal, que se pode controlar mediante unha interface de software estándar.
Innovacións clave en Sound Open Firmware 2.0:
- Mellorouse significativamente o rendemento das funcións de copia de audio e reduciuse o número de accesos á memoria. Algúns escenarios de procesamento de audio experimentaron reducións de carga de ata un 40 % mantendo a mesma calidade de audio.
- Mellorouse a estabilidade nas plataformas Intel de varios núcleos (cAVS), incluíndo o soporte para executar controladores en calquera núcleo DSP.
- Para a plataforma Apollo Lake (APL), utilízase o ambiente Zephyr RTOS como base do firmware en lugar de XTOS. Os niveis de integración de Zephyr OS alcanzaron a paridade de funcionalidades para determinadas plataformas Intel. Usar Zephyr pode simplificar e reducir significativamente o código das aplicacións de Sound Open Firmware.
- Implementouse a posibilidade de usar o protocolo IPC4 para o soporte básico para a captura e reprodución de audio nalgúns dispositivos Tiger Lake (TGL) que executan Windows (o soporte IPC4 permítelle interactuar con DSP baseados en Sound Open Firmware de Windows sen utilizar un controlador específico) .
Fonte: opennet.ru