misc: smpro-errmon: Add DIMM 2x Refresh rate event
In high temperature condition, JEDEC spec requires memory controller to double the refresh rate. This commit adds event_dimm_2x_refresh sysfs to report that events for all memory channels. Signed-off-by: Quan Nguyen <quan@os.amperecomputing.com> Link: https://lore.kernel.org/r/20230310083416.3670980-2-quan@os.amperecomputing.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
f0312cbd2a
Коммит
b0f64c80cb
|
@ -234,8 +234,8 @@ Description:
|
|||
For details, see section `5.10 RAS Internal Error Register Definitions,
|
||||
Altra Family Soc BMC Interface Specification`.
|
||||
|
||||
What: /sys/bus/platform/devices/smpro-errmon.*/event_[vrd_warn_fault|vrd_hot|dimm_hot]
|
||||
KernelVersion: 6.1
|
||||
What: /sys/bus/platform/devices/smpro-errmon.*/event_[vrd_warn_fault|vrd_hot|dimm_hot|dimm_2x_refresh]
|
||||
KernelVersion: 6.1 (event_[vrd_warn_fault|vrd_hot|dimm_hot]), 6.4 (event_dimm_2x_refresh)
|
||||
Contact: Quan Nguyen <quan@os.amperecomputing.com>
|
||||
Description:
|
||||
(RO) Contains the detail information in case of VRD/DIMM warning/hot events
|
||||
|
@ -258,8 +258,11 @@ Description:
|
|||
+---------------+---------------------------------------------------------------+---------------------+
|
||||
| DIMM HOT | /sys/bus/platform/devices/smpro-errmon.*/event_dimm_hot | DIMM Hot |
|
||||
+---------------+---------------------------------------------------------------+---------------------+
|
||||
| DIMM 2X | /sys/bus/platform/devices/smpro-errmon.*/event_dimm_2x_refresh| DIMM 2x refresh rate|
|
||||
| REFRESH RATE | | event in high temp |
|
||||
+---------------+---------------------------------------------------------------+---------------------+
|
||||
|
||||
For more details, see section `5.7 GPI Status Registers,
|
||||
For more details, see section `5.7 GPI Status Registers and 5.9 Memory Error Register Definitions,
|
||||
Altra Family Soc BMC Interface Specification`.
|
||||
|
||||
What: /sys/bus/platform/devices/smpro-misc.*/boot_progress
|
||||
|
|
|
@ -67,6 +67,7 @@
|
|||
#define VRD_WARN_FAULT_EVENT_DATA 0x78
|
||||
#define VRD_HOT_EVENT_DATA 0x79
|
||||
#define DIMM_HOT_EVENT_DATA 0x7A
|
||||
#define DIMM_2X_REFRESH_EVENT_DATA 0x96
|
||||
|
||||
#define MAX_READ_BLOCK_LENGTH 48
|
||||
|
||||
|
@ -190,6 +191,7 @@ enum EVENT_TYPES {
|
|||
VRD_WARN_FAULT_EVENT,
|
||||
VRD_HOT_EVENT,
|
||||
DIMM_HOT_EVENT,
|
||||
DIMM_2X_REFRESH_EVENT,
|
||||
NUM_EVENTS_TYPE,
|
||||
};
|
||||
|
||||
|
@ -198,6 +200,7 @@ static u8 smpro_event_table[NUM_EVENTS_TYPE] = {
|
|||
VRD_WARN_FAULT_EVENT_DATA,
|
||||
VRD_HOT_EVENT_DATA,
|
||||
DIMM_HOT_EVENT_DATA,
|
||||
DIMM_2X_REFRESH_EVENT_DATA,
|
||||
};
|
||||
|
||||
static ssize_t smpro_event_data_read(struct device *dev,
|
||||
|
@ -463,6 +466,7 @@ static DEVICE_ATTR_RO(warn_pmpro);
|
|||
EVENT_RO(vrd_warn_fault, VRD_WARN_FAULT_EVENT);
|
||||
EVENT_RO(vrd_hot, VRD_HOT_EVENT);
|
||||
EVENT_RO(dimm_hot, DIMM_HOT_EVENT);
|
||||
EVENT_RO(dimm_2x_refresh, DIMM_2X_REFRESH_EVENT);
|
||||
|
||||
static struct attribute *smpro_errmon_attrs[] = {
|
||||
&dev_attr_overflow_core_ce.attr,
|
||||
|
@ -488,6 +492,7 @@ static struct attribute *smpro_errmon_attrs[] = {
|
|||
&dev_attr_event_vrd_warn_fault.attr,
|
||||
&dev_attr_event_vrd_hot.attr,
|
||||
&dev_attr_event_dimm_hot.attr,
|
||||
&dev_attr_event_dimm_2x_refresh.attr,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче