Sound Open Firmware 2.0 發布,一套針對 DSP 晶片的開放韌體

聲音開放韌體 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 2.0 發布,一套針對 DSP 晶片的開放韌體
 Sound Open Firmware 2.0 發布,一套針對 DSP 晶片的開放韌體

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

 Sound Open Firmware 2.0 發布,一套針對 DSP 晶片的開放韌體

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