La version 2.0 du projet Sound Open Firmware (SOF) a été publiée. Initialement créée par Intel pour se détourner de la pratique de fourniture de micrologiciels propriétaires pour les puces DSP liées au traitement audio, le projet a ensuite été transféré sous l'égide de la Linux Foundation et est désormais développé en collaboration avec la communauté et en partenariat avec des entreprises comme AMD, Google et NXP. Le projet développe un SDK pour simplifier la création de micrologiciels, des pilotes audio pour le noyau Linux et un ensemble de micrologiciels prêts à l'emploi pour diverses puces DSP, pour lesquelles des compilations binaires signées numériquement sont également fournies. Le code des micrologiciels est écrit en C avec des insertions en assembleur et est distribué sous licence BSD.
Grâce à sa structure modulaire, le Sound Open Firmware peut être porté sur différentes architectures DSP et plateformes matérielles. Parmi les plateformes prises en charge, on trouve divers chips Intel (Broadwell, Icelake, Tigerlake, Alderlake, etc.), Mediatek (mt8195), NXP (i.MX8*) et AMD (Renoir), équipés de DSP basés sur les architectures Xtensa HiFi 2, 3 et 4. Un émulateur spécial ou QEMU peut être utilisé pendant le développement. L'utilisation de firmwares ouverts pour DSP permet de corriger et de diagnostiquer plus rapidement les problèmes de firmware, tout en donnant aux utilisateurs la possibilité d'adapter les firmwares à leurs besoins, d'apporter des optimisations spécifiques et de créer des versions allégées de firmwares contenant uniquement les fonctionnalités nécessaires au produit.
Le projet fournit un cadre pour le développement, l'optimisation et le test de solutions liées au traitement audio, ainsi que pour la création de drivers et de programmes d'interaction avec le DSP. Il comprend des implémentations de firmwares, des outils pour tester les firmwares, des utilitaires pour convertir des fichiers ELF en images de firmwares prêtes à être installées sur le matériel, des outils de débogage, un émulateur DSP, un émulateur de plateforme hôte (basé sur QEMU), des outils pour le traçage des firmwares, des scripts MATLAB/Octave pour peaufiner les coefficients des composants audio, des applications pour organiser l'interaction et l'échange de données avec le firmware, ainsi que des exemples de topologies de traitement audio.


Le projet développe également un pilote universel qui peut être utilisé avec des appareils utilisant des firmwares basés sur Sound Open Firmware. Ce pilote est déjà inclus dans le noyau Linux à partir de la version 5.2 et est distribué sous une double licence — BSD et GPLv2. Le pilote est responsable du chargement du firmware en mémoire DSP, du chargement des topologies sonores dans le DSP, de l'organisation du fonctionnement de l'appareil sonore (il gère l'accès aux fonctions DSP à partir des applications) et de la fourniture de points d'accès aux applications pour les données audio. Le pilote offre également un mécanisme IPC pour l'interaction entre le système hôte et le DSP, ainsi qu'une couche d'accès aux capacités matérielles du DSP via une API standard. Un DSP avec un firmware Sound Open Firmware apparaît pour les applications comme un appareil ALSA ordinaire, dont le contrôle peut être effectué via l'interface logicielle standard.

Les principales nouveautés de Sound Open Firmware 2.0 :
- Les performances des fonctions de transfert des données audio ont été considérablement améliorées, et le nombre d'opérations d'accès à la mémoire a été réduit. Dans certains scénarios de traitement audio, la charge est réduite jusqu'à 40 % tout en maintenant la qualité sonore.
- La stabilité a été augmentée sur les plateformes Intel multicœurs (cAVS), avec notamment la prise en charge du lancement de gestionnaires sur n'importe quel cœur DSP.
- Pour la plateforme Apollo Lake (APL), l'environnement Zephyr RTOS a été utilisé comme base du micrologiciel au lieu de XTOS. Le niveau d'intégration de l'OS Zephyr a atteint une parité fonctionnelle pour certaines plateformes Intel. L'utilisation de Zephyr permet de simplifier considérablement et de réduire le code des applications Sound Open Firmware.
- La possibilité d'utiliser le protocole IPC4 pour un support de base de l'enregistrement et de la lecture audio sur certains appareils Tiger Lake (TGL) sous Windows a été mise en œuvre (le support d'IPC4 permet une interaction avec les DSP basés sur les micrologiciels Sound Open Firmware sous Windows sans nécessiter de pilote spécifique).
Source : opennet.ru
