Sound Open Firmware 2.0 (SOF) 專案已發布,該專案最初由英特爾創建,旨在擺脫為與音訊處理相關的 DSP 晶片提供封閉韌體的做法。 該專案隨後被轉移到 Linux 基金會的旗下,目前正在社群以及 AMD、Google 和 NXP 的參與下進行開發。 該專案正在開發一個用於簡化韌體開發的 SDK、一個用於 Linux 核心的聲音驅動程式以及一組用於各種 DSP 晶片的現成固件,並為其生成二進位組件,並通過數位簽名進行認證。 韌體程式碼是用帶有彙編插入的 C 語言編寫的,並在 BSD 許可證下分發。
由於其模組化結構,Sound Open Firmware 可以移植到各種 DSP 架構和硬體平台。 例如,支援的平台中,支援基於Xtensa HiFi配備DSP的各種Intel晶片(Broadwell、Icelake、Tigerlake、Alderlake等)、Mediatek(mt8195)、NXP(i.MX8*)和AMD(Renoir)架構如2、 3和4所述。在開發過程中,可以使用特殊的模擬器或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 應用程式的程式碼。
- 已實現使用IPC4 協定的功能,以在某些運行Windows 的Tiger Lake (TGL) 裝置上實現音訊擷取和播放的基本支援(IPC4 支援可讓您與基於Windows 的聲音開放韌體的DSP 進行交互,而無需使用特定的驅動程式) 。
來源: opennet.ru