Ukazała się premiera projektu Sound Open Firmware 2.0 (SOF), pierwotnie stworzonego przez firmę Intel w celu odejścia od praktyki dostarczania zamkniętego oprogramowania układowego dla układów DSP związanych z przetwarzaniem dźwięku. Projekt został następnie przekazany pod skrzydła Linux Foundation i obecnie jest rozwijany przy zaangażowaniu społeczności oraz przy udziale AMD, Google i NXP. W ramach projektu opracowywane jest SDK ułatwiające tworzenie oprogramowania sprzętowego, sterownik dźwiękowy dla jądra Linuksa oraz zestaw gotowego oprogramowania sprzętowego dla różnych układów DSP, dla którego generowane są również zestawy binarne, potwierdzone podpisem cyfrowym. Kod oprogramowania sprzętowego jest napisany w języku C z wkładkami asemblerowymi 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 także uniwersalny sterownik, który będzie mógł być używany z urządzeniami korzystającymi z oprogramowania sprzętowego opartego na Sound Open Firmware. Sterownik jest już zawarty w głównym jądrze Linuksa, począwszy od wersji 5.2, i jest objęty podwójną licencją – BSD i GPLv2. Driver odpowiada za wczytanie oprogramowania sprzętowego do pamięci DSP, załadowanie topologii audio do DSP, organizację pracy urządzenia audio (odpowiedzialny za dostęp do funkcji DSP z poziomu aplikacji) oraz zapewnienie aplikacjom punktów dostępu do danych audio. Sterownik zapewnia również mechanizm IPC do komunikacji pomiędzy systemem hosta a procesorem DSP oraz warstwę dostępu do możliwości sprzętu DSP poprzez ogólny interfejs API. W zastosowaniach procesor DSP z oprogramowaniem Sound Open Firmware wygląda jak zwykłe urządzenie ALSA, którym można sterować za pomocą standardowego interfejsu oprogramowania.

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.
- Zaimplementowano możliwość korzystania z protokołu IPC4 do podstawowej obsługi przechwytywania i odtwarzania dźwięku na niektórych urządzeniach Tiger Lake (TGL) z systemem Windows (obsługa IPC4 umożliwia interakcję Windows z DSP na podstawie otwartego oprogramowania układowego bez użycia określonego sterownika).
Źródło: opennet.ru
