A fost publicat release-ul proiectului Sound Open Firmware 2.0 (SOF), inițial creat de compania Intel pentru a renunța la practica furnizării de firmware-uri închise pentru cipurile DSP legate de procesarea sunetului. Ulterior, proiectul a fost preluat de organizația Linux Foundation și acum este dezvoltat cu implicarea comunității și a companiilor AMD, Google și NXP. Proiectul dezvoltă un SDK pentru a simplifica dezvoltarea firmware-urilor, un driver audio pentru kernel-ul Linux și un set de firmware-uri gata utilizabile pentru diferite cipuri DSP, pentru care sunt, de asemenea, generate build-uri binare verificate cu semnătură digitală. Codul firmware-urilor este scris în limbajul C cu inserții de asamblare ș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.

Inovațiile cheie în Sound Open Firmware 2.0:
- A fost semnificativ îmbunătățită performanța funcțiilor de copiere a datelor audio și a fost redus numărul de operații de accesare a memoriei. În anumite scenarii de procesare a sunetului, se observă o reducere a sarcinii de până la 40% menținând aceeași calitate a sunetului.
- A fost îmbunătățită stabilitatea funcționării pe platformele Intel multicore (cAVS), inclusiv asigurând suport pentru rularea handler-elor pe orice nucleu DSP.
- Pentru platforma Apollo Lake (APL), ca bază a firmware-ului a fost utilizat mediu Zephyr RTOS în loc de XTOS. Nivelul de integrare al sistemului de operare Zephyr a atins paritatea funcțională pentru unele platforme Intel. Utilizarea Zephyr permite simplificarea și reducerea semnificativă a codului aplicațiilor Sound Open Firmware.
- A fost implementată posibilitatea utilizării protocolului IPC4 pentru suportul de bază al captării și redării sunetului pe anumite dispozitive Tiger Lake (TGL) cu sistemul de operare Windows (suportul IPC4 permite interacțiunea din Windows cu DSP bazate pe firmware-uri Sound Open Firmware fără a utiliza un driver specific).
Sursa: opennet.ro
