Bol zverejnený vydanie projektu Sound Open Firmware 2.2 (SOF), pôvodne vytvoreného spoločnosťou Intel na opustenie praxe dodávania uzavretých firmvérov pre DSP čipy súvisiace so spracovaním zvuku. Následne bol projekt prevedený pod krídla organizácie Linux Foundation a teraz sa vyvíja s príspevkom komunity a za účasti spoločností AMD, Google a NXP. Projekt vyvíja SDK na zjednodušenie vývoja firmvérov, zvukový ovládač pre jadro Linuxu a súbor hotových firmvérov pre rôzne DSP čipy, pre ktoré sú rovnako vytvárané binárne zostavy, overené digitálnym podpisom. Kód firmvérov je napísaný v jazyku C s assemblerovými vložkami a je distribuovaný pod licenciou BSD.
Vďaka modulárnej štruktúre môže byť Sound Open Firmware prenesený na rôzne architektúry DSP a hardvérové platformy. Napríklad medzi podporovanými platformami je deklarovaná podpora rôznych čipov Intel (Broadwell, Icelake, Tigerlake, Alderlake atď.), Mediatek (mt8195), NXP (i.MX8*) a AMD (Renoir), vybavených DSP na báze architektúr Xtensa HiFi 2, 3 a 4. Počas vývoja môže byť použitý špeciálny emulátor alebo QEMU. Použitie otvorených firmvérov pre DSP umožňuje rýchlejšie opravovať a diagnostikovať problémy s firmvérom, ako aj poskytuje používateľom možnosť prispôsobiť si firmvéry podľa svojich potrieb, vykonávať špecifické optimalizácie a vytvárať ľahké varianty firmvérov, ktoré obsahujú iba potrebnú funkcionalitu v produkte.
Projekt poskytuje rámec na vývoj, optimalizáciu a testovanie riešení súvisiacich so spracovaním zvuku, ako aj na vytváranie ovládačov a programov na interakciu s DSP. Obsahuje implementácie firmvérov, nástroje na testovanie firmvérov, utilitky na konverziu ELF súborov na obrazy firmvérov vhodné na inštaláciu na zariadenia, debugovacie nástroje, emulátor DSP, emulátor hostiteľskej platformy (na báze QEMU), nástroje na trasovanie firmvérov, skripty v MATLAB/Octave na presné nastavenie koeficientov pre zvukové komponenty, aplikácie na organizovanie interakcie a výmenu údajov s firmvérom a hotové príklady topológií spracovania zvuku.


Projekt tiež vyvíja univerzálny ovládač, ktorý môže byť použitý s zariadeniami využívajúcimi firmvér založený na Sound Open Firmware. Ovládač už je súčasťou hlavného jadra Linuxu od verzie 5.2 a je dodávaný pod dvojitou licenciou — BSD a GPLv2. Ovládač zodpovedá za načítanie firmvéru do pamäte DSP, načítanie zvukových topológií do DSP, organizovanie práce zvukového zariadenia (zodpovedá za prístup k funkciám DSP z aplikácií) a poskytovanie prístupových bodov aplikáciám k zvukovým dátam. Ovládač tiež poskytuje mechanizmus IPC na interakciu medzi hostiteľským systémom a DSP a vrstvu na prístup k hardvérovým možnostiam DSP prostredníctvom typického API. DSP s firmvérom Sound Open Firmware sa pre aplikácie javí ako obvyklé zariadenie ALSA, pre jeho správu sa môže použiť štandardné programové rozhranie.

Kľúčové novinky v Sound Open Firmware 2.2:
- Komponent na prácu s externými knižnicami kodekov bol premenovaný z codec_adapter na module_adapter a prispôsobený API modulov spracovania signálov, čo umožní používanie kódu z Windows spracovateľov bez jeho zmeny.
- API Frag bolo vyhlásené za zastarané, jeho zrušenie umožnilo zvýšiť výkon každého komponentu približne o 1 MCPS (milión taktov za sekundu).
- Pridané API Frame, ktoré vykonáva prediktívne výpočty veľkostí blokov pre spracovateľov na báze inštrukcií SIMD a bez nich. Optimalizácia umožnila zvýšiť výkon približne o 0.25 MCPS.
- Pridaný nový modul miešania s podporou HiFi4 na zníženie alebo zvýšenie počtu zvukových kanálov v toku.
- Rozšírené možnosti využitia prostredia Zephyr RTOS ako základu firmvéru namiesto XTOS. Použitie Zephyru umožňuje výrazne zjednodušiť a skrátiť kód aplikácií Sound Open Firmware. V novej verzii bola pridaná podpora natívneho Zephyr API pre spracovanie logov a zavádzanie oneskorení. V nasledujúcej verzii sa očakáva úplná vstavaná podpora Zephyr.
- Rozšírená možnosť používania protokolu IPC4 na zachytávanie a prehrávanie zvuku na zariadeniach s OS Windows (podpora IPC4 umožňuje z Windows interagovať s DSP na báze firmvérov Sound Open Firmware bez použitia špecifického ovládača).
Zdroj: opennet.ru
