diff options
Diffstat (limited to 'src/occ_405')
-rwxr-xr-x | src/occ_405/cent/centaur_data.c | 1 | ||||
-rwxr-xr-x | src/occ_405/cent/centaur_data.h | 1 | ||||
-rwxr-xr-x | src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c | 4 | ||||
-rwxr-xr-x | src/occ_405/dimm/dimm.c | 14 | ||||
-rwxr-xr-x | src/occ_405/occbuildname.c | 2 | ||||
-rw-r--r-- | src/occ_405/pss/avsbus.c | 4 |
6 files changed, 21 insertions, 5 deletions
diff --git a/src/occ_405/cent/centaur_data.c b/src/occ_405/cent/centaur_data.c index 5e96736..98636f2 100755 --- a/src/occ_405/cent/centaur_data.c +++ b/src/occ_405/cent/centaur_data.c @@ -132,6 +132,7 @@ centaur_data_task_t G_centaur_data_task = { #endif dimm_sensor_flags_t G_dimm_enabled_sensors = {0}; +dimm_sensor_flags_t G_dimm_present_sensors = {0}; //AMEC needs to know when data for a centaur has been collected. uint32_t G_updated_centaur_mask = 0; diff --git a/src/occ_405/cent/centaur_data.h b/src/occ_405/cent/centaur_data.h index f6596f0..17831e4 100755 --- a/src/occ_405/cent/centaur_data.h +++ b/src/occ_405/cent/centaur_data.h @@ -136,6 +136,7 @@ extern uint32_t G_updated_centaur_mask; //global bitmap of enabled dimm sensors extern dimm_sensor_flags_t G_dimm_enabled_sensors; +extern dimm_sensor_flags_t G_dimm_present_sensors; //global bitmap of dimms that have ever gone over the error temperature extern dimm_sensor_flags_t G_dimm_overtemp_bitmap; diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c index 34f2e0d..7edcba9 100755 --- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c +++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c @@ -1906,8 +1906,8 @@ errlHndl_t data_store_mem_cfg(const cmdh_fsp_cmd_t * i_cmd_ptr, // Store the hardware sensor ID G_sysConfigData.dimm_huids[l_i2c_port][l_dimm_num] = l_data_set->hw_sensor_id; - // Set bit vector of enabled DIMM sensors - G_dimm_enabled_sensors.bytes[l_i2c_port] |= 0x80 >> l_dimm_num; + // Set bit vector of present DIMM sensors (they will be enabled in task_dimm_sm) + G_dimm_present_sensors.bytes[l_i2c_port] |= 0x80 >> l_dimm_num; // Store the temperature sensor ID g_amec->proc[0].memctl[l_i2c_port].centaur.dimm_temps[l_dimm_num].temp_sid = diff --git a/src/occ_405/dimm/dimm.c b/src/occ_405/dimm/dimm.c index 7a026b1..2f2289b 100755 --- a/src/occ_405/dimm/dimm.c +++ b/src/occ_405/dimm/dimm.c @@ -293,7 +293,7 @@ void mark_dimm_failed() * @reasoncode DIMM_GPE_FAILURE * @userdata1 GPE returned rc code * @userdata4 ERC_DIMM_COMPLETE_FAILURE - * @devdesc Failure writing dimm i2c mode register + * @devdesc Disabling DIMM due to repeated I2C failures */ l_err = createErrl(DIMM_MID_MARK_DIMM_FAILED, DIMM_GPE_FAILURE, @@ -735,8 +735,18 @@ void task_dimm_sm(struct task *i_self) static bool L_readIssued = false; const uint8_t engine = G_sysConfigData.dimm_i2c_engine; static bool L_occ_owns_lock = false; + // 60,000 x 500us (tick time) x 2 (called every other tick) = 60 seconds + static unsigned int L_startup_delay = 60000; - if (G_mem_monitoring_allowed) + if (L_startup_delay > 0) + { + if (--L_startup_delay == 0) + { + TRAC_INFO("task_dimm_sm: Startup delay completed, DIMM temp collection will be started (0x%08X)", G_dimm_present_sensors.words[0]); + G_dimm_enabled_sensors = G_dimm_present_sensors; + } + } + else if (G_mem_monitoring_allowed) { #ifdef DEBUG_LOCK_TESTING SIMULATE_HOST(); diff --git a/src/occ_405/occbuildname.c b/src/occ_405/occbuildname.c index 2943093..c604412 100755 --- a/src/occ_405/occbuildname.c +++ b/src/occ_405/occbuildname.c @@ -34,6 +34,6 @@ volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = #else -volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = /*<BuildName>*/ "op_occ_170803a\0" /*</BuildName>*/ ; +volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = /*<BuildName>*/ "op_occ_170816a\0" /*</BuildName>*/ ; #endif diff --git a/src/occ_405/pss/avsbus.c b/src/occ_405/pss/avsbus.c index b008020..815979f 100644 --- a/src/occ_405/pss/avsbus.c +++ b/src/occ_405/pss/avsbus.c @@ -978,6 +978,8 @@ uint8_t process_avsbus_status() if ((foundOT == 1) && !loggedOT) { loggedOT = TRUE; + TRAC_ERR("process_avsbus_status: AVSBUS Over Temperature Warning (Vdd: 0x%08X, Vdn: 0x%08X)", + vdd_status, vdn_status); /* @ * @errortype * @moduleid PSS_MID_AVSBUS_READ @@ -1004,6 +1006,8 @@ uint8_t process_avsbus_status() if ((foundOC == 1) && !loggedOC) { loggedOC = TRUE; + TRAC_ERR("process_avsbus_status: AVSBUS Over Current Warning (Vdd: 0x%08X, Vdn: 0x%08X)", + vdd_status, vdn_status); /* @ * @errortype * @moduleid PSS_MID_AVSBUS_READ |