| Kernel driver occ-hwmon | |
| ======================= | |
| Supported chips: | |
| * POWER8 | |
| * POWER9 | |
| Author: Eddie James <eajames@linux.ibm.com> | |
| Description | |
| ----------- | |
| This driver supports hardware monitoring for the On-Chip Controller (OCC) | |
| embedded on POWER processors. The OCC is a device that collects and aggregates | |
| sensor data from the processor and the system. The OCC can provide the raw | |
| sensor data as well as perform thermal and power management on the system. | |
| The P8 version of this driver is a client driver of I2C. It may be probed | |
| manually if an "ibm,p8-occ-hwmon" compatible device is found under the | |
| appropriate I2C bus node in the device-tree. | |
| The P9 version of this driver is a client driver of the FSI-based OCC driver. | |
| It will be probed automatically by the FSI-based OCC driver. | |
| Sysfs entries | |
| ------------- | |
| The following attributes are supported. All attributes are read-only unless | |
| specified. | |
| The OCC sensor ID is an integer that represents the unique identifier of the | |
| sensor with respect to the OCC. For example, a temperature sensor for the third | |
| DIMM slot in the system may have a sensor ID of 7. This mapping is unavailable | |
| to the device driver, which must therefore export the sensor ID as-is. | |
| Some entries are only present with certain OCC sensor versions or only on | |
| certain OCCs in the system. The version number is not exported to the user | |
| but can be inferred. | |
| temp[1-n]_label | |
| OCC sensor ID. | |
| [with temperature sensor version 1] | |
| temp[1-n]_input | |
| Measured temperature of the component in millidegrees | |
| Celsius. | |
| [with temperature sensor version >= 2] | |
| temp[1-n]_type | |
| The FRU (Field Replaceable Unit) type | |
| (represented by an integer) for the component | |
| that this sensor measures. | |
| temp[1-n]_fault | |
| Temperature sensor fault boolean; 1 to indicate | |
| that a fault is present or 0 to indicate that | |
| no fault is present. | |
| [with type == 3 (FRU type is VRM)] | |
| temp[1-n]_alarm | |
| VRM temperature alarm boolean; 1 to indicate | |
| alarm, 0 to indicate no alarm | |
| [else] | |
| temp[1-n]_input | |
| Measured temperature of the component in | |
| millidegrees Celsius. | |
| freq[1-n]_label | |
| OCC sensor ID. | |
| freq[1-n]_input | |
| Measured frequency of the component in MHz. | |
| power[1-n]_input | |
| Latest measured power reading of the component in | |
| microwatts. | |
| power[1-n]_average | |
| Average power of the component in microwatts. | |
| power[1-n]_average_interval | |
| The amount of time over which the power average | |
| was taken in microseconds. | |
| [with power sensor version < 2] | |
| power[1-n]_label | |
| OCC sensor ID. | |
| [with power sensor version >= 2] | |
| power[1-n]_label | |
| OCC sensor ID + function ID + channel in the form | |
| of a string, delimited by underscores, i.e. "0_15_1". | |
| Both the function ID and channel are integers that | |
| further identify the power sensor. | |
| [with power sensor version 0xa0] | |
| power[1-n]_label | |
| OCC sensor ID + sensor type in the form of a string, | |
| delimited by an underscore, i.e. "0_system". Sensor | |
| type will be one of "system", "proc", "vdd" or "vdn". | |
| For this sensor version, OCC sensor ID will be the same | |
| for all power sensors. | |
| [present only on "master" OCC; represents the whole system power; only one of | |
| this type of power sensor will be present] | |
| power[1-n]_label | |
| "system" | |
| power[1-n]_input | |
| Latest system output power in microwatts. | |
| power[1-n]_cap | |
| Current system power cap in microwatts. | |
| power[1-n]_cap_not_redundant | |
| System power cap in microwatts when | |
| there is not redundant power. | |
| power[1-n]_cap_max | |
| Maximum power cap that the OCC can enforce in | |
| microwatts. | |
| power[1-n]_cap_min Minimum power cap that the OCC can enforce in | |
| microwatts. | |
| power[1-n]_cap_user The power cap set by the user, in microwatts. | |
| This attribute will return 0 if no user power | |
| cap has been set. This attribute is read-write, | |
| but writing any precision below watts will be | |
| ignored, i.e. requesting a power cap of | |
| 500900000 microwatts will result in a power cap | |
| request of 500 watts. | |
| [with caps sensor version > 1] | |
| power[1-n]_cap_user_source | |
| Indicates how the user power cap was | |
| set. This is an integer that maps to | |
| system or firmware components that can | |
| set the user power cap. | |
| The following "extn" sensors are exported as a way for the OCC to provide data | |
| that doesn't fit anywhere else. The meaning of these sensors is entirely | |
| dependent on their data, and cannot be statically defined. | |
| extn[1-n]_label | |
| ASCII ID or OCC sensor ID. | |
| extn[1-n]_flags | |
| This is one byte hexadecimal value. Bit 7 indicates the | |
| type of the label attribute; 1 for sensor ID, 0 for | |
| ASCII ID. Other bits are reserved. | |
| extn[1-n]_input | |
| 6 bytes of hexadecimal data, with a meaning defined by | |
| the sensor ID. |