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

添加评论