summaryrefslogtreecommitdiffstats
path: root/src/occ_405/amec/amec_sensors_core.c
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2017-08-30 11:49:34 -0500
committerMartha Broyles <mbroyles@us.ibm.com>2017-09-21 09:58:02 -0400
commit2fe9ab3dcaa6a7208cb5f92619dbc0f5fd83201f (patch)
tree9aacf8882747f683c77eca2da0fc07525a4034c4 /src/occ_405/amec/amec_sensors_core.c
parentf92b6d26c9d2f3d1fe0e25de3768ce972d7051d1 (diff)
downloadtalos-occ-2fe9ab3dcaa6a7208cb5f92619dbc0f5fd83201f.tar.gz
talos-occ-2fe9ab3dcaa6a7208cb5f92619dbc0f5fd83201f.zip
Add Droop counter sensors
Change-Id: If4c367eaeaaf746619d537d4d8424cf018591563 RTC: 155684 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45574 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Diffstat (limited to 'src/occ_405/amec/amec_sensors_core.c')
-rwxr-xr-xsrc/occ_405/amec/amec_sensors_core.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/occ_405/amec/amec_sensors_core.c b/src/occ_405/amec/amec_sensors_core.c
index df5fb09..da0a09b 100755
--- a/src/occ_405/amec/amec_sensors_core.c
+++ b/src/occ_405/amec/amec_sensors_core.c
@@ -56,6 +56,7 @@ extern data_cnfg_t * G_data_cnfg;
void amec_calc_dts_sensors(CoreData * i_core_data_ptr, uint8_t i_core);
void amec_calc_freq_and_util_sensors(CoreData * i_core_data_ptr, uint8_t i_core);
void amec_calc_ips_sensors(CoreData * i_core_data_ptr, uint8_t i_core);
+void amec_calc_droop_sensors(CoreData * i_core_data_ptr, uint8_t i_core);
//*************************************************************************/
// Code
@@ -115,6 +116,11 @@ void amec_update_proc_core_sensors(uint8_t i_core)
amec_calc_ips_sensors(l_core_data_ptr,i_core);
}
+ //-------------------------------------------------------
+ // Update voltage droop counters
+ //-------------------------------------------------------
+ amec_calc_droop_sensors(l_core_data_ptr, i_core);
+
// ------------------------------------------------------
// Update PREVIOUS values for next time
// ------------------------------------------------------
@@ -768,6 +774,22 @@ void amec_calc_ips_sensors(CoreData * i_core_data_ptr, uint8_t i_core)
sensor_update( AMECSENSOR_ARRAY_PTR(IPSC0,i_core), (uint16_t) temp32);
}
+// -------------------------------------------------
+// Droop count sum for core and quad
+// ------------------------------------------------
+void amec_calc_droop_sensors(CoreData * i_core_data_ptr, uint8_t i_core)
+{
+ //CoreData only has any new droop events since the last time CoreData was read
+ uint32_t l_quad_droops = i_core_data_ptr->droop.cache_large_event;
+ uint32_t l_core_droops = i_core_data_ptr->droop.core_small_event;
+ int l_quad = i_core / 4;
+ sensor_t * l_quad_sensor = AMECSENSOR_ARRAY_PTR(VOLTDROOPCNTQ0, l_quad);
+ sensor_t * l_core_sensor = AMECSENSOR_ARRAY_PTR(VOLTDROOPCNTC0, i_core);
+
+ sensor_update( l_core_sensor, l_core_droops);
+ sensor_update( l_quad_sensor, l_quad_droops);
+}
+
/*----------------------------------------------------------------------------*/
/* End */
/*----------------------------------------------------------------------------*/
OpenPOWER on IntegriCloud