ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° Sound Open Firmware 2.2 (SOF), ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Intel Π΄Π»Ρ ΡΡ ΠΎΠ΄Π° ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π·Π°ΠΊΡΡΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ Π΄Π»Ρ DSP-ΡΠΈΠΏΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π·Π²ΡΠΊΠ°. ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ» ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ ΠΏΠΎΠ΄ ΠΊΡΡΠ»ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Linux Foundation ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΈ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ AMD, Google ΠΈ NXP. ΠΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ SDK Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ, Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΡΠ΄ΡΠ° Linux ΠΈ Π½Π°Π±ΠΎΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ DSP-ΡΠΈΠΏΠΎΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ, Π·Π°Π²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ. ΠΠΎΠ΄ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°Π²ΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSD.
Grazie alla sua struttura modulare, Sound Open Firmware puΓ² essere portato su diverse architetture DSP e piattaforme hardware. Ad esempio, tra le piattaforme supportate figurano vari chip Intel (Broadwell, Icelake, Tigerlake, Alderlake, ecc.), Mediatek (mt8195), NXP (i.MX8*) e AMD (Renoir), dotati di DSP basati su architetture Xtensa HiFi 2, 3 e 4. Durante il processo di sviluppo, puΓ² essere utilizzato un emulatore speciale o QEMU. L'uso di firmware open source per DSP consente di risolvere e diagnosticare rapidamente i problemi del firmware, oltre a offrire agli utenti la possibilitΓ di adattare il firmware alle proprie esigenze, apportare ottimizzazioni specifiche e creare versioni leggere del firmware che contengano solo le funzionalitΓ necessarie al prodotto.
Il progetto fornisce un framework per lo sviluppo, l'ottimizzazione e il collaudo di soluzioni legate all'elaborazione audio, oltre alla creazione di driver e software per interagire con DSP. Comprende implementazioni di firmware, strumenti per il collaudo del firmware, utility per la conversione di file ELF in immagini di firmware pronte per l'installazione sull'hardware, strumenti di debug, un emulatore DSP, un emulatore della piattaforma host (basato su QEMU), strumenti per la tracciatura del firmware, script in MATLAB/Octave per la messa a punto dei coefficienti per i componenti audio, applicazioni per la gestione dell'interazione e dello scambio dati con il firmware, e esempi pronti di topologie per l'elaborazione audio.


Il progetto sta sviluppando anche un driver universale che puΓ² essere utilizzato con i dispositivi che impiegano firmware basati su Sound Open Firmware. Il driver Γ¨ giΓ incluso nel kernel Linux a partire dalla versione 5.2 e viene fornito con una doppia licenza β BSD e GPLv2. Il driver Γ¨ responsabile del caricamento del firmware nella memoria DSP, del caricamento delle topologie audio nel DSP, dell'organizzazione del funzionamento del dispositivo audio (gestisce le chiamate alle funzioni DSP dalle applicazioni) e fornisce punti di accesso per le applicazioni ai dati audio. Inoltre, il driver fornisce un meccanismo IPC per l'interazione tra il sistema host e il DSP, e un livello per accedere alle capacitΓ hardware del DSP attraverso un'API standard. Il DSP con firmware Sound Open Firmware appare per le applicazioni come un comune dispositivo ALSA, il cui controllo puΓ² avvenire tramite l'interfaccia software standard.

ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π° Π² Sound Open Firmware 2.2:
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ ΠΈΠ· codec_adapter Π² module_adapter ΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ API ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈΠ· Windows-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±Π΅Π· Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
- ΠΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ API Frag, ΠΎΡΠΊΠ°Π· ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 1 MCPS (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΡΠ°ΠΊΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ API Frame, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ SIMD ΠΈ Π±Π΅Π· Π½ΠΈΡ . ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 0.25 MCPS.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ HiFi4 Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Π·Π²ΡΠΊΠΎΠ²ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² ΠΏΠΎΡΠΎΠΊΠ΅.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Zephyr RTOS Π²ΠΌΠ΅ΡΡΠΎ XTOS. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Zephyr ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΈ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Sound Open Firmware. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ΄Π½ΡΡ Π΄Π»Ρ Zephyr API Π΄Π»Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½Π°Ρ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Zephyr.
- Π Π°ΡΡΠΈΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IPC4 Π΄Π»Ρ Π·Π°Ρ Π²Π°ΡΠ° ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π²ΡΠΊΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Ρ ΠΠ‘ Windows (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° IPC4 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ· Windows Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ DSP Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ Sound Open Firmware Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°).
Fonte: opennet.ru
