由英特爾最初創建的 Sound Open Firmware 2.0 (SOF) 專案已正式發布。該專案旨在擺脫為音訊處理相關的 DSP 晶片提供專有韌體的做法。隨後,該項目被移交給了該組織。 Linux 目前,該計畫正在社區的參與以及AMD、谷歌和恩智浦等公司的支持下進行開發。該專案正在開發一個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 韌體的裝置。該驅動程式已包含在主核心中。 Linux自 5.2 版本起,該驅動程式採用 BSD 和 GPLv2 雙重授權協議發布。它負責將韌體載入到 DSP 記憶體中,將音訊拓撲載入到 DSP 中,組織音訊裝置的運作(負責應用程式存取 DSP 功能),並為應用程式提供音訊資料的存取點。此外,該驅動程式還提供了一種用於主機系統和 DSP 之間交互的進程間通訊 (IPC) 機制,以及一個用於透過標準 API 存取 DSP 硬體功能的層。對於應用程式而言,安裝了 Sound Open Firmware 的 DSP 就像一個普通的 ALSA 設備,可以使用標準軟體介面進行控制。

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