聲音開放韌體 2.0 (SOF) 專案現已發布,該專案最初由英特爾創建,旨在擺脫為與聲音處理相關的 DSP 晶片提供封閉韌體的做法。該計畫後來被納入Linux基金會的麾下,目前正在社區的參與下進行開發,AMD、Google和NXP也參與其中。該專案正在開發一個 SDK 來簡化韌體開發、一個用於 Linux 核心的聲音驅動程式以及一套用於各種 DSP 晶片的現成固件,並為其生成經過數位簽名認證的二進位組件。韌體程式碼以 C 語言編寫,帶有彙編程式插入,並根據 BSD 許可證分發。
由於其模組化結構,Sound Open Firmware 可以移植到各種 DSP 架構和硬體平台。例如,支援的平台包括支援各種英特爾晶片(Broadwell、Icelake、Tigerlake、Alderlake 等)、聯發科(mt8195)、NXP(i.MX8*)和 AMD(Renoir)等,配備基於 Xtensa HiFi 2、3 和 4 架構的 DSP。在開發過程中可以使用特殊的模擬器或 QEMU。使用 DSP 的開源韌體可以更快地修正和診斷韌體問題,同時也使用戶能夠獨立地根據自己的需求調整韌體,進行特定的最佳化,並創建僅包含產品所需功能的輕量級韌體版本。
該專案提供了一個用於開發、優化和測試與音訊處理相關的解決方案以及創建與 DSP 互動的驅動程式和程式的框架。該套件包括韌體實作、韌體測試工具、將 ELF 檔案轉換為適合安裝在硬體上的韌體映像的實用程式、偵錯工具、DSP 模擬器、主機平台模擬器(基於 QEMU)、用於追蹤韌體的工具、用於微調音訊組件係數的 MATLAB/Octave 腳本、用於組織與韌體互動和資料交換的應用程式、音訊處理拓撲的現成範例。


該專案還正在開發一種通用驅動程序,可與使用基於 Sound Open Firmware 的韌體的裝置一起使用。自 5.2 版以來,該驅動程式已成為主 Linux 核心的一部分,並根據雙重授權提供 - BSD 和 GPLv2。驅動程式負責將韌體載入到 DSP 記憶體中,將音訊拓撲載入到 DSP 中,組織音訊裝置的操作(負責從應用程式存取 DSP 功能),並提供音訊資料的應用程式存取點。該驅動程式還提供了主機系統和 DSP 之間互動的 IPC 機制,以及透過標準 API 存取 DSP 硬體功能的層。帶有聲音開放韌體的 DSP 對於應用程式來說看起來像一個常規的 ALSA 設備,並且可以使用標準軟體介面進行控制。

Sound Open Firmware 2.0 的主要新功能:
- 音訊拷貝功能效能顯著提升,減少存取次數,在部分音訊處理場景下,在確保音質不變的情況下,負載降低高達 40%。
- 提高了多核心英特爾平台(cAVS)的穩定性,包括支援在任何 DSP 核心上運行處理程序。
- Apollo Lake (APL) 平台使用 Zephyr RTOS 環境(而非 XTOS)作為韌體基礎。 Zephyr OS 的整合水準已在某些英特爾平台上達到同等功能水準。使用 Zephyr 可以顯著簡化和減少 Sound Open Firmware 應用程式程式碼。
- 實現了在某些運行 Windows 的 Tiger Lake (TGL) 裝置上使用 IPC4 協定進行基本音訊擷取和播放支援的能力(IPC4 支援允許 Windows 無需使用特定的驅動程式即可與基於 Sound Open Firmware 的 DSP 進行互動)。
來源: opennet.ru
