今天合并到正在开发的主线 Linux 6.16 内核的新 AMD 代码中,引入了 AMD-SBI 驱动程序/子系统,主要使 EPYC 服务器平台受益。AMD-SBI 用于其边带接口,也称为高级平台管理链路 (APML)。
此 Linux 6.16 的 AMD-SBI 代码正在清理内核中现有的 AMD 驱动程序代码,使其更加集中,并更好地支持未来的新功能。之前的 AMD SBI 代码位于硬件监控 “HWMON” 子系统中,但现在正在转移到 Linux 内核中更通用的 “char/misc” 区域。
AMD Linux 工程师 Akshay Gupta 在之前的补丁系列中解释了如何进行这种重组以形成 AMD-SBI 驱动程序/子系统:
“目前,hwmon 子系统下的 sbrmi 驱动程序被探测为 i2c 驱动程序,使用 APML 指定协议获取数据,并通过 hwmon 功率传感器上报。
AMD 使用自定义协议提供其他信息,这些协议不能列为 hwmon 传感器。因此,将现有功能从 hwmon/ 移至 misc/ 并添加对以下自定义协议
的支持 – 通过边带读取处理器特性功能和配置信息。
– 在边带上读取 Machine Check Architecture(MCA) 寄存器。通过将寄存器地址和线程 ID 传递给协议,可以访问 MCA 寄存器范围的信息。注意:AMD 定义了高级平台管理链接 (APML) 接口,该接口提供对基板管理控制器 (BMC) 的系统管理功能访问。
此补丁集尝试将所有 APML 核心功能集中在一个地方,为用户空间提供 hwmon 和 IOCTL 接口。
现在合并的关于 Linux 内核的 AMD-SBI 代码的文档进一步总结了它们的 Side-Band 接口:
“一些基于 AMD Zen 的处理器通过称为高级平台管理链接 (APML) 的边带接口 (SBI) 支持系统管理功能。APML 是基于 I2C/I3C 的 2 线处理器目标接口。APML 用于与远程管理接口(SB 远程管理接口 (SB-RMI) 和 SB 温度传感器接口 (SB-TSI))进行通信。
….
apml_sbrmi驱动程序在 drivers/misc/amd-sbi 下创建 miscdevice /dev/sbrmi-*,让用户空间程序运行 APML 邮箱、CPUID、
MCAMSR 并注册 xfer 命令。
esmi_oob_library开源用户空间代码是能够使用 AMD-SBI 内核代码的 APML 库。作为该库的一部分, 用户空间也apml_tool查询各种功能。

这个新的 AMD-SBI 驱动程序和代码重组的引入是当今 char/misc 合并的主要亮点之一。
Linuxeden开源社区