UtgÄvan av projektet Sound Open Firmware 2.2 (SOF) har publicerats. Det skapades ursprungligen av Intel för att överge praxis att leverera stÀngda firmware för DSP-chip kopplade till ljudbehandling. Projektet har senare övergÄtt under Linux Foundations vinge och utvecklas nu med stöd frÄn gemenskapen och företag som AMD, Google och NXP. Projektet utvecklar en SDK för att förenkla utvecklingen av firmware, en ljuddrivrutin för Linux-kÀrnan och ett antal fÀrdiga firmware för olika DSP-chip, som Àven inkluderar binÀrsamlingar som verifieras av en digital signatur. Firmware-koden Àr skriven i C med assemblerinslag och distribueras under BSD-licensen.
Tack vare den modulÀra strukturen kan Sound Open Firmware porteras till olika DSP-arkitekturer och hÄrdvaruplattformar. Bland de stödja plattformarna finns olika Intel-chip (Broadwell, Icelake, Tigerlake, Alderlake etc.), Mediatek (mt8195), NXP (i.MX8*) och AMD (Renoir), som levereras med DSP baserade pÄ Xtensa HiFi 2, 3 och 4-arkitekturer. Under utvecklingen kan en speciell emulator eller QEMU anvÀndas. AnvÀndningen av öppen firmware för DSP möjliggör snabbare felrÀttning och diagnostik av firmwareproblem, samt ger anvÀndarna möjlighet att sjÀlva anpassa firmware för sina behov, göra specifika optimeringar och skapa lÀttviktsvarianter av firmware som innehÄller endast den nödvÀndiga funktionaliteten i produkten.
Projektet tillhandahÄller ett ramverk för utveckling, optimering och testning av lösningar relaterade till ljudbehandling, samt för att skapa drivrutiner och program för interaktion med DSP. Den innehÄller implementationer av firmware, verktyg för testning av firmware, verktyg för att konvertera ELF-filer till firmwarebilder som Àr lÀmpliga för installation pÄ utrustning, felsökningsverktyg, DSP-emulator, vÀrdplattformsemmulator (baserat pÄ QEMU), verktyg för firmware-spÄrning, MATLAB/Oscillator-skript för finjustering av koefficienter för ljudkomponenter, applikationer för att organisera interaktion och datadelning med firmware samt fÀrdiga exempel pÄ ljudbehandlingstopologier.


Projektet utvecklar ocksĂ„ en universell drivrutin som kan anvĂ€ndas med enheter som anvĂ€nder firmware baserad pĂ„ Sound Open Firmware. Drivrutinen ingĂ„r redan i huvudkĂ€rnan för Linux sedan version 5.2 och levereras under dubbel licens â BSD och GPLv2. Drivrutinen ansvarar för att ladda firmware till DSP-minnet, ladda ljudtopologier in i DSP, organisera funktionen hos ljudenheten (ansvarar för att kommunicera med DSP-funktioner frĂ„n applikationer) och erbjuder applikationers Ă„tkomstpunkter till ljuddata. Drivrutinen tillhandahĂ„ller ocksĂ„ en IPC-mekanism för interaktion mellan vĂ€rdsystemet och DSP samt ett lager för att fĂ„ tillgĂ„ng till DSP:s hĂ„rdvarufunktioner via en standardiserad API. DSP med Sound Open Firmware-firmware ser ut som en vanlig ALSA-enhet för applikationerna, vilket möjliggör anvĂ€ndning av det inbyggda programmeringsgrĂ€nssnittet för dess hantering.

NyckelförbÀttringar i Sound Open Firmware 2.2:
- Komponenten för arbete med externa codec-bibliotek har döpts om frÄn codec_adapter till module_adapter och anpassats till signalbehandlingsmodulernas API, vilket gör det möjligt att anvÀnda kod frÄn Windows-hanterare utan att Àndra den.
- API:et Frag har förklarats som förÄldrat, och avskaffandet av det har förbÀttrat prestanda för varje komponent med cirka 1 MCPS (miljoner cykler per sekund).
- Ett nytt API Frame har lagts till, som utför proaktiv berÀkning av blockstorlekar för hanterare som baseras pÄ SIMD-instruktioner och utan dem. Optimeringen har lett till en ökning av prestanda pÄ cirka 0.25 MCPS.
- En ny blandningsmodul med stöd för HiFi4 har lagts till för att minska eller öka antalet ljudkanaler i strömmen.
- Möjligheterna att anvÀnda miljön Zephyr RTOS som grund för firmware har utvidgats istÀllet för XTOS. AnvÀndningen av Zephyr möjliggör betydligt förenklat och kortat kod för Sound Open Firmware-applikationer. I den nya versionen har stöd för Zephyr-inbyggda API:er för loggning och fördröjningar lagts till. Fullt inbyggt stöd för Zephyr förvÀntas i nÀsta release.
- Möjligheterna att anvÀnda IPC4-protokollet för att fÄnga och spela upp ljud pÄ enheter med Windows-operativsystem har utvidgats (stöd för IPC4 möjliggör kommunikation mellan Windows och DSP baserade pÄ Sound Open Firmware utan att behöva en specifik drivrutin).
KĂ€lla: opennet.ru
