Kernel driver sbrmi¶
Supported hardware:
Sideband Remote Management Interface (SB-RMI) compliant AMD SoC device connected to the BMC via the APML.
Prefix: ‘sbrmi’
Addresses scanned: This driver doesn’t support address scanning.
To instantiate this driver on an AMD CPU with SB-RMI support, the i2c bus number would be the bus connected from the board management controller (BMC) to the CPU. The SMBus address is really 7 bits. Some vendors and the SMBus specification show the address as 8 bits, left justified with the R/W bit as a write (0) making bit 0. Some vendors use only the 7 bits to describe the address. As mentioned in AMD’s APML specification, The SB-RMI address is normally 78h(0111 100W) or 3Ch(011 1100) for socket 0 and 70h(0111 000W) or 38h(011 1000) for socket 1, but it could vary based on hardware address select pins.
- Datasheet: The SB-RMI interface and protocol along with the Advanced
Platform Management Link (APML) Specification is available as part of the open source SoC register reference at:
Author: Akshay Gupta <akshay.gupta@amd.com>
Description¶
The APML provides a way to communicate with the SB Remote Management interface (SB-RMI) module from the external SMBus master that can be used to report socket power on AMD platforms using mailbox command and resembles a typical 8-pin remote power sensor’s I2C interface to BMC.
This driver implements current power with power cap and power cap max.
sysfs-Interface¶
Power sensors can be queried and set via the standard hwmon
interface
on sysfs
, under the directory /sys/class/hwmon/hwmonX
for some value
of X
(search for the X
such that /sys/class/hwmon/hwmonX/name
has
content sbrmi
)
Name |
Perm |
Description |
---|---|---|
power1_input |
RO |
Current Power consumed |
power1_cap |
RW |
Power limit can be set between 0 and power1_cap_max |
power1_cap_max |
RO |
Maximum powerlimit calculated and reported by the SMU FW |
The following example show how the ‘Power’ attribute from the i2c-addresses
can be monitored using the userspace utilities like sensors
binary:
# 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)
#
- Also, Below shows how get and set the values from sysfs entries individually::
# 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