Avaldatud on Sound Open Firmware 2.2 (SOF) projekt, mille algselt lõi Intel, et liiguda eemale suletud tarkvara pakkumisest helitöötluse DSP-kiipidele. Hiljem viidi projekt Linux Foundation'i haldusesse ning seda arendatakse nüüd koostöös kogukonnaga koos ettevõtete AMD, Google ja NXP osalusel. Projekti raames arendatakse SDK-d, et lihtsustada püsivara arendamist, Linuxi tuuma helidraiverit ning erinevatele DSP-kiipidele valmis püsivara kogumeid, millele luuakse ka digitaalallkirjaga kinnitatud binaarsed kogumid. Püsivara kood on kirjutatud C keeles koos assembleri sisestustega ja levitatakse BSD litsentsi alusel.
Sound Open Firmware'i moodulaarse struktuuri tõttu saab portida erinevatele DSP arhitektuuridele ja riistvaraplatvormidele. Näiteks toetavad toetatud platvormid erinevaid Intel'i kiipe (Broadwell, Icelake, Tigerlake, Alderlake jne), Mediatek (mt8195), NXP (i.MX8*) ja AMD (Renoir), varustatud Xtensa HiFi 2, 3 ja 4 arhitektuuride põhjal tehtud DSP-dega. Arendamise käigus võib kasutada spetsiaalset emulaatorit või QEMU-d. Avatud DSP firmware'i kasutamine võimaldab kiiremini parandada ja diagnoosida probleemide tekkimist firmware'is ning annab kasutajatele võimaluse kohandada firmware'e vastavalt oma vajadustele, teha spetsiifilisi optimeerimisi ja luua kergekaalulisi firmware variante, mis sisaldavad ainult toote jaoks vajalikke funktsioone.
Projekt pakub raamistikku heliga seotud lahenduste arendamiseks, optimeerimiseks ja testimiseks ning draiverite ja tarkvara loomiseks DSP-dega suhtlemiseks. Komplekti kuuluvad püsivara teostused, püsivara testimisriistade komplekt, utiliidid ELF-failide püsivara installimiseks sobivateks kujunditeks, tõrkeotsinguvahendid, DSP emulaator, QEMU põhine hostplatvormi emulaator, püsivara jälgimisriistad, MATLAB/Octave skriptid helikomponentide koefitsientide peenhäälestamiseks, rakendused püsivara vahetuse ja andmete korraldamiseks ning valmis helitöötluse topoloogiate näited.


Projektiga arendatakse ka universaalset draiverit, mida saab kasutada seadmetega, mis toetavad Sound Open Firmware'i põhjalikke püsivara. Draiver kuulub Linuxi põhituumikusse alates versioonist 5.2 ja on saadaval kahepoolses litsentsis — BSD ja GPLv2. Draiver vastutab püsivara laadimise eest DSP mällu, helitopoloogiate laadimise eest DSP-s, heliseadme töö korraldamise eest (vastutab DSP funktsioonidele juurdepääsu eest rakendustest) ja rakenduste ligipääsu punktide pakkumise eest heliteabele. Draiver pakub ka IPC mehhanismi host-süsteemi ja DSP vaheliseks suhtlemiseks ning kihti DSP riistvarafunktsioonide kasutamiseks tüüpilise API kaudu. DSP, millel on Sound Open Firmware püsivara, näeb rakendustele välja nagu tavaline ALSA-seade, mida saab hallata tavalise tarkvaraliidese abil.

Olulised uuendused Sound Open Firmware 2.2-s:
- Komponent väliste koodekites kasutatavate raamatukogude jaoks on ümber nimetatud codec_adapter'ist module_adapter'iks ning viidud koos vastavusse signaalide töötlemise moodulite API-ga, mis võimaldab kasutada Windows'i töötlejate koodi ilma selle muutmiseta.
- Frag API on kuulutatud aegunuks, mille eemaldamine on võimaldanud suurendada iga komponendi jõudlust ligikaudu 1 MCPS (miljon tsüklit sekundis).
- Lisatud API Frame, mis teostab proaktiivset blokeeringute mõõtmist SIMD-põhiste ja mitte-SIMD töötlejate jaoks. Optimeerimine on võimaldanud suurendada jõudlust umbes 0,25 MCPS.
- Lisatud uus segamismodul HiFi4 toega, mis toetab helikanalite arvu vähendamist või suurendamist voos.
- Zephyr RTOS-i keskkonna jäädvustamiseks laiendatud võimalusi XTOS-i asemel. Zephyr'i kasutamine lihtsustab ja vähendab oluliselt Sound Open Firmware rakenduste koodi. Uues versioonis on lisatud Zephyr'i API-l põhinev logimise ja viivituse toetus. Järgmises väljalaskeohtus on oodata täielikku Zephyr'i sisseehitatud toetust.
- IPC4 protokolli laiendatud kasutatavus heli salvestamiseks ja esitamiseks Windowsi seadmetes (IPC4 toetus võimaldab Windowsi kaudu suhelda Sound Open Firmware-i töötlejatega ilma spetsiifilise draiverita).
Allikas: opennet.ru
