Projekt Sound Open Firmware 2.0 (SOF), pierwotnie stworzony przez firmę Intel w celu odejścia od praktyki dostarczania zastrzeżonego oprogramowania układowego dla układów DSP związanych z przetwarzaniem dźwięku, został upubliczniony. Projekt został następnie przeniesiony pod skrzydła organizacji. Linux Platforma Foundation jest obecnie rozwijana z udziałem społeczności oraz firm AMD, Google i NXP. W ramach projektu opracowywany jest pakiet SDK, który ma uprościć tworzenie oprogramowania sprzętowego, oraz sterownik dźwięku dla jądra. Linux oraz zestaw gotowego oprogramowania układowego dla różnych układów DSP, w tym cyfrowo podpisane asemblery binarne. Kod oprogramowania układowego jest napisany w języku C z wstawkami asemblera i jest rozpowszechniany na licencji BSD.
Dzięki swojej modułowej strukturze oprogramowanie Sound Open Firmware można przenosić na różne architektury DSP i platformy sprzętowe. Na przykład wśród obsługiwanych platform obsługa różnych chipów Intel (Broadwell, Icelake, Tigerlake, Alderlake itp.), Mediatek (mt8195), NXP (i.MX8 *) i AMD (Renoir) wyposażonych w procesory DSP oparte na Xtensa HiFi architektury podano w punktach 2, 3 i 4. Podczas procesu programowania można zastosować specjalny emulator lub QEMU. Zastosowanie otwartego oprogramowania dla DSP pozwala na szybsze korygowanie i diagnozowanie problemów w oprogramowaniu, a także daje użytkownikom możliwość samodzielnego dostosowania oprogramowania do swoich potrzeb, dokonywania określonych optymalizacji i tworzenia lekkich wersji oprogramowania, które zawierają tylko funkcjonalność niezbędną do produkt.
Projekt zapewnia framework do opracowywania, optymalizacji i testowania rozwiązań związanych z przetwarzaniem dźwięku, a także tworzenia sterowników i programów do interakcji z DSP. Kompozycja zawiera implementacje oprogramowania sprzętowego, narzędzia do testowania oprogramowania sprzętowego, narzędzia do konwersji plików ELF na obrazy oprogramowania sprzętowego odpowiednie do instalacji na sprzęcie, narzędzia do debugowania, emulator DSP, emulator platformy hosta (oparty na QEMU), narzędzia do śledzenia oprogramowania sprzętowego, skrypty dla MATLAB /Octave do dostrajania współczynników komponentów audio, aplikacje do organizowania interakcji i wymiany danych z oprogramowaniem sprzętowym, gotowe przykłady topologii przetwarzania dźwięku.


W ramach projektu opracowywany jest również uniwersalny sterownik, który będzie można wykorzystać w urządzeniach z oprogramowaniem układowym opartym na Sound Open Firmware. Sterownik jest już zawarty w jądrze głównym. Linux, począwszy od wersji 5.2, jest dystrybuowany na podwójnej licencji — BSD i GPLv2. Sterownik odpowiada za ładowanie oprogramowania układowego do pamięci procesora DSP, ładowanie topologii audio do procesora DSP, organizowanie działania urządzenia audio (odpowiedzialnego za dostęp do funkcji DSP z poziomu aplikacji) oraz zapewnianie aplikacjom punktów dostępu do danych audio. Sterownik zapewnia również mechanizm IPC do interakcji między systemem hosta a procesorem DSP oraz warstwę umożliwiającą dostęp do możliwości sprzętowych procesora DSP za pośrednictwem standardowego interfejsu API. Procesor DSP z oprogramowaniem układowym Sound Open Firmware jest widoczny dla aplikacji jako zwykłe urządzenie ALSA, którym można sterować za pomocą standardowego interfejsu programowego.

Kluczowe innowacje w Sound Open Firmware 2.0:
- Wydajność funkcji kopiowania audio została znacznie ulepszona, a liczba operacji dostępu do pamięci została zmniejszona. W niektórych scenariuszach przetwarzania audio obciążenie zostało zmniejszone nawet o 40% przy zachowaniu tej samej jakości dźwięku.
- Poprawiona stabilność na platformach wielordzeniowych Intel (cAVS), w tym obsługa obsługi procesów na dowolnym rdzeniu DSP.
- Platforma Apollo Lake (APL) wykorzystuje środowisko Zephyr RTOS zamiast XTOS jako bazę oprogramowania. Poziom integracji Zephyr OS osiągnął parzystość w funkcjonalności dla niektórych platform Intel. Korzystanie z Zephyr pozwala na znaczące uproszczenie i redukcję dźwiękowego otwartego kodu aplikacji oprogramowania układowego.
- Wprowadzono możliwość korzystania z protokołu IPC4 w celu zapewnienia podstawowej obsługi przechwytywania i odtwarzania dźwięku na niektórych urządzeniach Tiger Lake (TGL) z systemem operacyjnym Windows (Obsługa IPC4 umożliwia Windows współpracować z procesorami DSP bazującymi na oprogramowaniu Sound Open Firmware bez konieczności używania specjalnego sterownika).
Źródło: opennet.ru
