Dostępny jest Sound Open Firmware 2.2, zestaw otwartego oprogramowania układowego dla układów DSP

Ukazała się premiera projektu Sound Open Firmware 2.2 (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.

Dostępny jest Sound Open Firmware 2.2, zestaw otwartego oprogramowania układowego dla układów DSP
Dostępny jest Sound Open Firmware 2.2, zestaw otwartego oprogramowania układowego dla układów DSP

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.

Dostępny jest Sound Open Firmware 2.2, zestaw otwartego oprogramowania układowego dla układów DSP

Kluczowe innowacje w Sound Open Firmware 2.2:

  • Komponent do pracy z zewnętrznymi bibliotekami kodeków został przemianowany z codec_adapter na module_adapter i został dostosowany do API modułów przetwarzania sygnału, co umożliwi wykorzystanie kodu z handlerów Windows bez jego zmiany.
  • Interfejs API Frag został wycofany, poprawiając wydajność każdego komponentu o około 1 MCPS (milion cykli na sekundę).
  • Dodano interfejs API Frame, który wykonuje obliczenia w przód rozmiarów bloków dla procedur obsługi w oparciu o instrukcje SIMD i inne niż SIMD. Optymalizacja pozwoliła zwiększyć produktywność o około 0.25 MCPS.
  • Dodano nowy mikser z obsługą HiFi4, aby zmniejszyć lub zwiększyć liczbę kanałów audio w strumieniu.
  • Rozszerzono możliwości wykorzystania Zephyr RTOS zamiast XTOS jako podstawy oprogramowania sprzętowego dla środowiska. Korzystanie z Zephyr może znacząco uprościć i zredukować kod aplikacji Sound Open Firmware. Nowa wersja dodaje obsługę natywnych API Zephyr do rejestrowania i wprowadzania opóźnień. Pełna natywna obsługa Zephyr jest oczekiwana w następnej wersji.
  • Rozszerzono możliwość wykorzystania protokołu IPC4 do przechwytywania i odtwarzania dźwięku na urządzeniach z systemem Windows (obsługa IPC4 umożliwia systemowi Windows interakcję z procesorami DSP opartymi na oprogramowaniu Sound Open Firmware bez użycia konkretnego sterownika).

Źródło: opennet.ru

Dodaj komentarz