summaryrefslogtreecommitdiffstats
path: root/src/occ_405/amec/amec_sensors_centaur.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/occ_405/amec/amec_sensors_centaur.c')
-rw-r--r--src/occ_405/amec/amec_sensors_centaur.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/occ_405/amec/amec_sensors_centaur.c b/src/occ_405/amec/amec_sensors_centaur.c
index f4327ea..a883993 100644
--- a/src/occ_405/amec/amec_sensors_centaur.c
+++ b/src/occ_405/amec/amec_sensors_centaur.c
@@ -54,6 +54,9 @@ uint8_t G_cent_overtemp_bitmap = 0;
uint8_t G_cent_temp_updated_bitmap = 0;
extern uint8_t G_centaur_needs_recovery;
extern uint8_t G_centaur_nest_lfir6;
+extern uint64_t G_inject_dimm;
+extern uint32_t G_inject_dimm_trace[MAX_NUM_CENTAURS][NUM_DIMMS_PER_CENTAUR];
+
/******************************************************************************/
/* Forward Declarations */
@@ -122,6 +125,29 @@ void amec_update_dimm_dts_sensors(CentaurMemData * i_sensor_cache, uint8_t i_cen
continue;
}
+
+ if (g_amec->proc[0].memctl[i_centaur].centaur.dimm_temps[k].temp_sid) // DIMM has sensor ID
+ {
+ if ((G_inject_dimm & ((uint64_t)1 << ((i_centaur * 8) + k))) == 0)
+ {
+ if (G_inject_dimm_trace[i_centaur][k] != 0)
+ {
+ TRAC_INFO("amec_update_dimm_dts_sensors: stopping injection of errors for DIMM%04X", (i_centaur<<8)|k);
+ G_inject_dimm_trace[i_centaur][k] = 0;
+ }
+ }
+ else
+ {
+ if (G_inject_dimm_trace[i_centaur][k] == 0)
+ {
+ TRAC_INFO("amec_update_dimm_dts_sensors: injecting errors for DIMM%04X", (i_centaur<<8)|k);
+ G_inject_dimm_trace[i_centaur][k] = 1;
+ }
+ continue; // Skip this DIMM
+ }
+ }
+
+
l_sens_status = i_sensor_cache->scache.dimm_thermal_sensor[k].fields.status;
fru_temp_t* l_fru = &g_amec->proc[0].memctl[i_centaur].centaur.dimm_temps[k];
OpenPOWER on IntegriCloud