Bylo zveřejněno vydání projektu Sound Open Firmware 2.2 (SOF), původně vytvořeného společností Intel, která se snažila uniknout praxi dodávání uzavřených firmwarů pro DSP čipy související se zpracováním zvuku. Následně byl projekt převeden pod záštitu organizace Linux Foundation a nyní je vyvíjen s účastí komunity a ve spolupráci se společnostmi AMD, Google a NXP. Projekt vyvíjí SDK pro usnadnění vývoje firmwarů, zvukový ovladač pro jádro Linuxu a sadu hotových firmwarů pro různé DSP čipy, pro které jsou také vytvářeny binární sestavy s digitálním podpisem. Kód firmwarů je napsán v jazyce C s assemblerovými вставkami a šíří se pod licencí BSD.
Díky modulární struktuře může být Sound Open Firmware portován na různé architektury DSP a hardwarové platformy. Například mezi podporovanými platformami je uvedena podpora různých čipů Intel (Broadwell, Icelake, Tigerlake, Alderlake atd.), Mediatek (mt8195), NXP (i.MX8*) a AMD (Renoir), vybavených DSP na bázi architektur Xtensa HiFi 2, 3 a 4. Během vývoje může být použit speciální emulátor nebo QEMU. Použití otevřených firmwarů pro DSP umožňuje rychlejší opravu a diagnostiku problémů ve firmwaru, a také dává uživatelům možnost přizpůsobit firmwary svým potřebám, provádět specifické optimalizace a vytvářet lehké varianty firmwarů, které obsahují pouze potřebnou funkčnost pro produkt.
Projekt poskytuje rámec pro vývoj, optimalizaci a testování řešení souvisejících se zpracováním zvuku, stejně jako pro vytváření ovladačů a programů pro interakci s DSP. Součástí jsou implementace firmwarů, nástroje pro testování firmwarů, utility pro převod ELF souborů na obrazy firmwarů vhodné pro instalaci na zařízení, ladicí nástroje, emulátor DSP, emulátor hostitelské platformy (na bázi QEMU), nástroje pro sledování firmwarů, skripty na MATLAB/Octave pro jemné ladění koeficientů pro zvukové komponenty, aplikace pro organizaci interakce a výměny dat s firmwarem a hotové příklady topologií zpracování zvuku.


Projekt také vyvíjí univerzální ovladač, který může být použit s zařízeními využívajícími firmwary na základě Sound Open Firmware. Ovladač je již součástí hlavní větve jádra Linux od vydání 5.2 a je dodáván pod dvojitou licencí - BSD a GPLv2. Ovladač je odpovědný za načítání firmwaru do paměti DSP, načítání zvukových topologií do DSP, organizaci práce se zvukovým zařízením (odpovídá za přístup aplikací k funkcím DSP) a poskytování přístupových bodů aplikací k zvukovým datům. Ovladač také poskytuje mechanismus IPC pro interakci mezi hostitelským systémem a DSP a vrstvu pro přístup k hardwarovým schopnostem DSP prostřednictvím typového API. DSP s firmwarem Sound Open Firmware se aplikacím jeví jako běžné zařízení ALSA, jehož správy lze využít běžného programového rozhraní.

Hlavní novinky v Sound Open Firmware 2.2:
- Komponenta pro práci s externími knihovnami kodeků byla přejmenována z codec_adapter na module_adapter a přizpůsobena API modulů pro zpracování signálů, což umožní použití kódu z Windows zpracovatelů bez jeho změny.
- API Frag bylo prohlášeno za zastaralé, jehož odstranění umožnilo zvýšení výkonu každé komponenty přibližně o 1 MCPS (milion taktů za sekundu).
- Bylo přidáno API Frame, které provádí anticipační výpočty velikostí bloků pro zpracovatele na základě instrukcí SIMD a bez nich. Optimalizace umožnila zvýšení výkonu přibližně o 0.25 MCPS.
- Byl přidán nový modul smíchání s podporou HiFi4 pro zkrácení nebo zvýšení počtu zvukových kanálů ve streamu.
- Rozšířeny možnosti použití jako základního firmwaru prostředí Zephyr RTOS místo XTOS. Použití Zephyr výrazně zjednodušuje a zkracuje kód aplikací Sound Open Firmware. V nové verzi byla přidána podpora nativních API pro Zephyr pro vedení logů a zavedení prodlev. V příštím vydání se očekává plná integrovaná podpora Zephyr.
- Rozšířena možnost použití protokolu IPC4 pro zachycování a reprodukci zvuku na zařízeních s OS Windows (podpora IPC4 umožňuje interakci z Windows s DSP na základě firmwarů Sound Open Firmware bez potřeby specifického ovladače).
Zdroj: opennet.ru
