cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sbrmi.rst (3036B)


      1.. SPDX-License-Identifier: GPL-2.0-or-later
      2
      3Kernel driver sbrmi
      4===================
      5
      6Supported hardware:
      7
      8  * Sideband Remote Management Interface (SB-RMI) compliant AMD SoC
      9    device connected to the BMC via the APML.
     10
     11    Prefix: 'sbrmi'
     12
     13    Addresses scanned: This driver doesn't support address scanning.
     14
     15    To instantiate this driver on an AMD CPU with SB-RMI
     16    support, the i2c bus number would be the bus connected from the board
     17    management controller (BMC) to the CPU.
     18    The SMBus address is really 7 bits. Some vendors and the SMBus
     19    specification show the address as 8 bits, left justified with the R/W
     20    bit as a write (0) making bit 0. Some vendors use only the 7 bits
     21    to describe the address.
     22    As mentioned in AMD's APML specification, The SB-RMI address is
     23    normally 78h(0111 100W) or 3Ch(011 1100) for socket 0 and 70h(0111 000W)
     24    or 38h(011 1000) for socket 1, but it could vary based on hardware
     25    address select pins.
     26
     27    Datasheet: The SB-RMI interface and protocol along with the Advanced
     28               Platform Management Link (APML) Specification is available
     29               as part of the open source SoC register reference at:
     30
     31               https://www.amd.com/en/support/tech-docs?keyword=55898
     32
     33Author: Akshay Gupta <akshay.gupta@amd.com>
     34
     35Description
     36-----------
     37
     38The APML provides a way to communicate with the SB Remote Management interface
     39(SB-RMI) module from the external SMBus master that can be used to report socket
     40power on AMD platforms using mailbox command and resembles a typical 8-pin remote
     41power sensor's I2C interface to BMC.
     42
     43This driver implements current power with power cap and power cap max.
     44
     45sysfs-Interface
     46---------------
     47Power sensors can be queried and set via the standard ``hwmon`` interface
     48on ``sysfs``, under the directory ``/sys/class/hwmon/hwmonX`` for some value
     49of ``X`` (search for the ``X`` such that ``/sys/class/hwmon/hwmonX/name`` has
     50content ``sbrmi``)
     51
     52================ ===== ========================================================
     53Name             Perm   Description
     54================ ===== ========================================================
     55power1_input     RO    Current Power consumed
     56power1_cap       RW    Power limit can be set between 0 and power1_cap_max
     57power1_cap_max   RO    Maximum powerlimit calculated and reported by the SMU FW
     58================ ===== ========================================================
     59
     60The following example show how the 'Power' attribute from the i2c-addresses
     61can be monitored using the userspace utilities like ``sensors`` binary::
     62
     63  # sensors
     64  sbrmi-i2c-1-38
     65  Adapter: bcm2835 I2C adapter
     66  power1:       61.00 W (cap = 225.00 W)
     67
     68  sbrmi-i2c-1-3c
     69  Adapter: bcm2835 I2C adapter
     70  power1:       28.39 W (cap = 224.77 W)
     71  #
     72
     73Also, Below shows how get and set the values from sysfs entries individually::
     74  # cat /sys/class/hwmon/hwmon1/power1_cap_max
     75  225000000
     76
     77  # echo 180000000 > /sys/class/hwmon/hwmon1/power1_cap
     78  # cat /sys/class/hwmon/hwmon1/power1_cap
     79  180000000