Kernel driver Ampere(R)’s Altra(R) SMpro hwmon

Supported chips:

  • Ampere(R) Altra(R)

    Prefix: smpro

    Reference: Altra SoC BMC Interface Specification

Author: Thu Nguyen <thu@os.amperecomputing.com>

Description

The smpro-hwmon driver supports hardware monitoring for Ampere(R) Altra(R) SoCs based on the SMpro co-processor (SMpro). The following sensor metrics are supported by the driver:

  • temperature

  • voltage

  • current

  • power

The interface provides the registers to query the various sensors and their values which are then exported to userspace by this driver.

Usage Notes

The driver creates at least two sysfs files for each sensor.

  • <sensor_type><idx>_label reports the sensor label.

  • <sensor_type><idx>_input returns the sensor value.

The sysfs files are allocated in the SMpro rootfs folder, with one root directory for each instance.

When the SoC is turned off, the driver will fail to read registers and return -ENXIO.

Sysfs entries

The following sysfs files are supported:

  • Ampere(R) Altra(R):

    Name

    Unit

    Perm

    Description

    temp1_input

    millicelsius

    RO

    SoC temperature

    temp2_input

    millicelsius

    RO

    Max temperature reported among SoC VRDs

    temp2_crit

    millicelsius

    RO

    SoC VRD HOT Threshold temperature

    temp3_input

    millicelsius

    RO

    Max temperature reported among DIMM VRDs

    temp4_input

    millicelsius

    RO

    Max temperature reported among Core VRDs

    temp5_input

    millicelsius

    RO

    Temperature of DIMM0 on CH0

    temp5_crit

    millicelsius

    RO

    MEM HOT Threshold for all DIMMs

    temp6_input

    millicelsius

    RO

    Temperature of DIMM0 on CH1

    temp6_crit

    millicelsius

    RO

    MEM HOT Threshold for all DIMMs

    temp7_input

    millicelsius

    RO

    Temperature of DIMM0 on CH2

    temp7_crit

    millicelsius

    RO

    MEM HOT Threshold for all DIMMs

    temp8_input

    millicelsius

    RO

    Temperature of DIMM0 on CH3

    temp8_crit

    millicelsius

    RO

    MEM HOT Threshold for all DIMMs

    temp9_input

    millicelsius

    RO

    Temperature of DIMM0 on CH4

    temp9_crit

    millicelsius

    RO

    MEM HOT Threshold for all DIMMs

    temp10_input

    millicelsius

    RO

    Temperature of DIMM0 on CH5

    temp10_crit

    millicelsius

    RO

    MEM HOT Threshold for all DIMMs

    temp11_input

    millicelsius

    RO

    Temperature of DIMM0 on CH6

    temp11_crit

    millicelsius

    RO

    MEM HOT Threshold for all DIMMs

    temp12_input

    millicelsius

    RO

    Temperature of DIMM0 on CH7

    temp12_crit

    millicelsius

    RO

    MEM HOT Threshold for all DIMMs

    temp13_input

    millicelsius

    RO

    Max temperature reported among RCA VRDs

    in0_input

    millivolts

    RO

    Core voltage

    in1_input

    millivolts

    RO

    SoC voltage

    in2_input

    millivolts

    RO

    DIMM VRD1 voltage

    in3_input

    millivolts

    RO

    DIMM VRD2 voltage

    in4_input

    millivolts

    RO

    RCA VRD voltage

    cur1_input

    milliamperes

    RO

    Core VRD current

    cur2_input

    milliamperes

    RO

    SoC VRD current

    cur3_input

    milliamperes

    RO

    DIMM VRD1 current

    cur4_input

    milliamperes

    RO

    DIMM VRD2 current

    cur5_input

    milliamperes

    RO

    RCA VRD current

    power1_input

    microwatts

    RO

    Core VRD power

    power2_input

    microwatts

    RO

    SoC VRD power

    power3_input

    microwatts

    RO

    DIMM VRD1 power

    power4_input

    microwatts

    RO

    DIMM VRD2 power

    power5_input

    microwatts

    RO

    RCA VRD power

    Example:

    # cat in0_input
    830
    # cat temp1_input
    37000
    # cat curr1_input
    9000
    # cat power5_input
    19500000