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