内核驱动程序 sbrmi

支持的硬件

  • 通过 APML 连接到 BMC 的符合边带远程管理接口 (SB-RMI) 的 AMD SoC 设备。

    前缀: ‘sbrmi’

    扫描地址: 此驱动程序不支持地址扫描。

    要在支持 SB-RMI 的 AMD CPU 上实例化此驱动程序,i2c 总线号将是从板管理控制器 (BMC) 连接到 CPU 的总线。SMBus 地址实际上是 7 位。一些供应商和 SMBus 规范将地址显示为 8 位,左对齐,R/W 位作为写入 (0) 时使第 0 位。一些供应商仅使用 7 位来描述地址。如 AMD 的 APML 规范所述,对于插槽 0,SB-RMI 地址通常为 78h(0111 100W) 或 3Ch(011 1100);对于插槽 1,通常为 70h(0111 000W) 或 38h(011 1000),但它可能会根据硬件地址选择引脚而变化。

    数据手册: SB-RMI 接口和协议以及高级

    平台管理链路 (APML) 规范可在开源 SoC 寄存器参考中找到,网址为

    https://www.amd.com/en/support/tech-docs?keyword=55898

作者: Akshay Gupta <akshay.gupta@amd.com>

描述

APML 提供了一种与外部 SMBus 主机上的 SB 远程管理接口 (SB-RMI) 模块通信的方式,该方式可用于通过邮箱命令报告 AMD 平台上的插槽功耗,并且类似于典型的 8 引脚远程电源传感器的 I2C 接口到 BMC。

此驱动程序实现了带功耗上限和最大功耗上限的当前功耗报告功能。

sysfs 接口

电源传感器可以通过 sysfs 上的标准 hwmon 接口进行查询和设置,位于 /sys/class/hwmon/hwmonX 目录下,其中 X 为某个值(查找 X,使得 /sys/class/hwmon/hwmonX/name 的内容为 sbrmi

名称

权限

描述

power1_input

只读

当前功耗

power1_cap

读写

功耗限制可设置在 0 到 power1_cap_max 之间

power1_cap_max

只读

由 SMU 固件计算并报告的最大功耗限制

以下示例展示了如何使用 sensors 二进制文件等用户空间工具来监控来自 i2c 地址的“Power”属性

# sensors
sbrmi-i2c-1-38
Adapter: bcm2835 I2C adapter
power1:       61.00 W (cap = 225.00 W)

sbrmi-i2c-1-3c
Adapter: bcm2835 I2C adapter
power1:       28.39 W (cap = 224.77 W)
#
此外,下面展示了如何单独获取和设置 sysfs 条目的值:

# cat /sys/class/hwmon/hwmon1/power1_cap_max 225000000

# echo 180000000 > /sys/class/hwmon/hwmon1/power1_cap # cat /sys/class/hwmon/hwmon1/power1_cap 180000000