Sound Open Firmware 2.0 发布,一套针对 DSP 芯片的开放固件

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 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 应用程序的代码。
  • 已实现使用 IPC4 协议的功能,以在某些运行 Windows 的 Tiger Lake (TGL) 设备上实现音频捕获和播放的基本支持(IPC4 支持允许您与基于 Windows 的声音开放固件的 DSP 进行交互,而无需使用特定的驱动程序) 。

来源: opennet.ru

添加评论