A fost publicat un nou release al proiectului Sound Open Firmware 2.2 (SOF), inițial creat de compania Intel pentru a se abate de la practica de a oferi firmware-uri închise pentru cipurile DSP legate de procesarea sunetului. Ulterior, proiectul a fost preluat de Linux Foundation și acum este dezvoltat cu implicarea comunității și a companiilor AMD, Google și NXP. Proiectul dezvoltă un SDK pentru simplificarea dezvoltării firmware-urilor, un driver de sunet pentru nucleul Linux și un set de firmware-uri gata pentru diferite cipuri DSP, pentru care sunt de asemenea create compilări binare, semnate digital. Codul firmware-urilor este scris în C cu inserții de assembler și este distribuit sub licența BSD.
Datorită structurii modulare, Sound Open Firmware poate fi portat pe diverse arhitecturi DSP și platforme hardware. De exemplu, printre platformele acceptate se numără suportul pentru diverse cipuri Intel (Broadwell, Icelake, Tigerlake, Alderlake etc.), Mediatek (mt8195), NXP (i.MX8*) și AMD (Renoir), echipate cu DSP-uri bazate pe arhitecturile Xtensa HiFi 2, 3 și 4. În procesul de dezvoltare se poate utiliza un emulator special sau QEMU. Utilizarea firmware-urilor deschise pentru DSP permite corectarea și diagnosticarea problemelor din firmware într-un mod mai eficient, de asemenea oferă utilizatorilor posibilitatea de a-și adapta singuri firmware-urile la nevoile lor, de a aduce optimizări specifice și de a crea variante ușoare de firmware-uri, care conțin doar funcționalitatea necesară în produs.
Proiectul oferă un framework pentru dezvoltarea, optimizarea și testarea soluțiilor legate de procesarea sunetului, precum și pentru crearea de drivere și aplicații pentru interacțiunea cu DSP. Acesta include implementări de firmware-uri, uneltele necesare pentru testarea firmware-urilor, utilitare pentru conversia fișierelor ELF în imagini de firmware, potrivite pentru instalare pe echipamente, unelte de depanare, emulator DSP, emulator al platformei gazdă (bazat pe QEMU), unelte pentru trasarea firmware-urilor, scripturi MATLAB/Octave pentru ajustarea fină a coeficientelor pentru componentele de sunet, aplicații pentru organizarea interacțiunii și schimbului de date cu firmware-ul, exemple gata pregătite de topologii pentru procesarea sunetului.


Proiectul dezvoltă, de asemenea, un driver universal care poate fi utilizat cu dispozitive ce folosesc firmware bazat pe Sound Open Firmware. Driverul este deja inclus în kernelul principal Linux, începând cu versiunea 5.2, și este livrat sub o licență duală — BSD și GPLv2. Driverul se ocupă de încărcarea firmware-ului în memoria DSP, încărcarea topologiilor audio în DSP, organizarea funcționării dispozitivului audio (răspunde la apelurile funcțiilor DSP din aplicații) și oferă puncte de acces aplicațiilor către datele audio. De asemenea, driverul oferă un mecanism IPC pentru interacțiunea între sistemul gazdă și DSP, precum și un strat pentru accesul la capacitățile hardware ale DSP printr-un API standardizat. DSP-ul cu firmware Sound Open Firmware arată pentru aplicații ca un dispozitiv ALSA obișnuit, care poate fi controlat utilizând interfața standard de programare.

Noutăți cheie în Sound Open Firmware 2.2:
- Componenta pentru lucrul cu biblioteci externe de codecuri a fost redenumită din codec_adapter în module_adapter și adusă în conformitate cu API-ul modulelor de procesare a semnalelor, ceea ce va permite utilizarea codului din procesoarele Windows fără modificări.
- API-ul Frag a fost declarat învechit, abandonarea acestuia a permis creșterea performanței fiecărui component cu aproximativ 1 MCPS (milion de cicluri pe secundă).
- A fost adăugat API-ul Frame, care realizează calculul anticipat al dimensiunilor blocurilor pentru procesoarele bazate pe instrucțiuni SIMD și fără acestea. Optimizarea a permis creșterea performanței cu aproximativ 0.25 MCPS.
- A fost adăugat un nou modul de amestecare cu suport pentru HiFi4 pentru reducerea sau creșterea numărului de canale audio din flux.
- Au fost extinse capacitățile de utilizare a mediului Zephyr RTOS ca bază pentru firmware în loc de XTOS. Utilizarea Zephyr permite simplificarea și reducerea semnificativă a codului aplicațiilor Sound Open Firmware. În noua versiune, a fost adăugată suportul nativ pentru Zephyr API pentru gestionarea jurnalelor și introducerea întârzierilor. Se așteaptă ca în următoarea versiune să existe suport încorporat complet pentru Zephyr.
- A fost extinsă capacitatea de utilizare a protocolului IPC4 pentru captarea și redarea sunetului pe dispozitive cu OS Windows (suportul IPC4 permite interacțiunea din Windows cu DSP-uri bazate pe firmware Sound Open Firmware fără utilizarea unui driver specific).
Sursa: opennet.ro
