summaryrefslogtreecommitdiffstats
path: root/src/occ_405/amec/amec_health.c
diff options
context:
space:
mode:
authorWael El-Essawy <welessa@us.ibm.com>2016-05-25 15:30:11 -0500
committerWael El-Essawy <welessa@us.ibm.com>2016-06-13 19:13:35 -0400
commitdd417235fda3a7086940b974780193e51370367c (patch)
tree6e2dca9b26ef6242a504b8755e5ad2453ecdde62 /src/occ_405/amec/amec_health.c
parent3f12319ca9d5266bab68f5c360bce9f0b758c418 (diff)
downloadtalos-occ-dd417235fda3a7086940b974780193e51370367c.tar.gz
talos-occ-dd417235fda3a7086940b974780193e51370367c.zip
Processor Thermal Control Loop
Enable processor thermal control loop. Enable frequency votes due to thermal and error reading temperatures. Verify The following: *Error log generation when a proc reaches Error limit *Reach throttle points when: -- Processor reached over temperature limit -- Processor temperature sensors timeout enable transition to active mode Change-Id: Iae24f64a872e031e1cf93ff0d9248d3fa3847ed7 RTC: 130210 RTC: 133942 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25458 Tested-by: FSP CI Jenkins Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Reviewed-by: Wael El-Essawy <welessa@us.ibm.com>
Diffstat (limited to 'src/occ_405/amec/amec_health.c')
-rwxr-xr-xsrc/occ_405/amec/amec_health.c34
1 files changed, 13 insertions, 21 deletions
diff --git a/src/occ_405/amec/amec_health.c b/src/occ_405/amec/amec_health.c
index 45986ab..1e061bf 100755
--- a/src/occ_405/amec/amec_health.c
+++ b/src/occ_405/amec/amec_health.c
@@ -746,8 +746,8 @@ void amec_health_check_proc_temp()
/* Local Variables */
/*------------------------------------------------------------------------*/
uint16_t l_ot_error;
- static uint32_t l_error_count = 0;
- static BOOLEAN l_ot_error_logged = FALSE;
+ static uint32_t L_error_count = 0;
+ static BOOLEAN L_ot_error_logged = FALSE;
sensor_t *l_sensor;
errlHndl_t l_err = NULL;
@@ -765,18 +765,18 @@ void amec_health_check_proc_temp()
if (l_sensor->sample > l_ot_error)
{
// Increment the error counter for this FRU
- l_error_count++;
+ L_error_count++;
// Trace and log error the first time this occurs
- if (l_error_count == AMEC_HEALTH_ERROR_TIMER)
+ if (L_error_count == AMEC_HEALTH_ERROR_TIMER)
{
// Have we logged an OT error for this FRU already?
- if (l_ot_error_logged == TRUE)
+ if (L_ot_error_logged == TRUE)
{
break;
}
- l_ot_error_logged = TRUE;
+ L_ot_error_logged = TRUE;
TRAC_ERR("amec_health_check_error_temp: processor has exceeded OT error! temp[%u] ot_error[%u]",
l_sensor->sample,
@@ -821,14 +821,14 @@ void amec_health_check_proc_temp()
else
{
// Trace that we have now dropped below the error threshold
- if (l_error_count >= AMEC_HEALTH_ERROR_TIMER)
+ if (L_error_count >= AMEC_HEALTH_ERROR_TIMER)
{
TRAC_INFO("amec_health_check_proc_temp: We have dropped below error threshold for processors. error_count[%u]",
- l_error_count);
+ L_error_count);
}
// Reset the error counter for this FRU
- l_error_count = 0;
+ L_error_count = 0;
}
}while (0);
@@ -844,8 +844,6 @@ void amec_health_check_proc_temp()
// End Function Specification
void amec_health_check_proc_timeout()
{
-/* TEMP/TODO: Enable when needed */
-#if 0
/*------------------------------------------------------------------------*/
/* Local Variables */
/*------------------------------------------------------------------------*/
@@ -907,16 +905,11 @@ void amec_health_check_proc_timeout()
// Get pointer to core data
l_core_data_ptr = proc_get_bulk_core_data_ptr(l_bad_core_index);
- // Trace some critical registers to understand this error better
- TRAC_ERR("OHA_Status_Reg[0x%08X] PM_State_Hist_Reg[0x%08X]",
- l_core_data_ptr->oha.oha_ro_status_reg.words.low_order,
- l_core_data_ptr->pcb_slave.pm_history.words.high_order);
- TRAC_ERR("SensorV0[0x%08X%08X] SensorV1[0x%08X%08X]",
- (uint32_t)(l_core_data_ptr->dts_cpm.sensors_v0.value >> 32),
- (uint32_t)(l_core_data_ptr->dts_cpm.sensors_v0.value & 0x00000000ffffffffull),
- (uint32_t)(l_core_data_ptr->dts_cpm.sensors_v1.value >> 32),
- (uint32_t)(l_core_data_ptr->dts_cpm.sensors_v1.value & 0x00000000ffffffffull));
+ TRAC_ERR("Core Sensors[0x%04X%04X] Quad Sensor[0x%04X]",
+ (uint16_t)(l_core_data_ptr->dts.core[0].result ),
+ (uint16_t)(l_core_data_ptr->dts.core[0].result ),
+ (uint16_t)(l_core_data_ptr->dts.cache.result));
/* @
* @errortype
@@ -948,7 +941,6 @@ void amec_health_check_proc_timeout()
}
}
}while(0);
-#endif
}
// Function Specification
OpenPOWER on IntegriCloud