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

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

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

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

Sound Open Firmware 2.2 的主要創新:

  • 用於處理外部編解碼器庫的元件已從 codec_adapter 重新命名為 module_adapter,並與訊號處理模組的 API 保持一致,這將允許您使用 Windows 處理程序中的程式碼而無需更改它。
  • Frag API 已被棄用,每個組件的效能提高了大約 1 MCPS(每秒百萬週期)。
  • 新增了 Frame API,它根據 SIMD 和非 SIMD 指令對處理程序執行區塊大小的前向計算。 優化使性能提高了約 0.25 MCPS。
  • 新增了支援 HiFi4 的新混音器,以減少或增加串流中的音訊通道數量。
  • 使用 Zephyr RTOS 代替 XTOS 作為環境韌體基礎的可能性得到了擴展。 使用 Zephyr 可以顯著簡化和減少 Sound Open Firmware 應用程式的程式碼。 新版本增加了對本機 Zephyr API 的支持,用於記錄和引入延遲。 預計下一版本將提供對 Zephyr 的全面原生支援。
  • 使用 IPC4 協定在運行 Windows 的裝置上捕獲和播放聲音的能力得到了擴展(IPC4 支援允許 Windows 與基於聲音開放韌體的 DSP 進行交互,而無需使用特定的驅動程式)。

來源: opennet.ru

添加評論