diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2017-08-30 11:49:34 -0500 |
---|---|---|
committer | Martha Broyles <mbroyles@us.ibm.com> | 2017-09-21 09:58:02 -0400 |
commit | 2fe9ab3dcaa6a7208cb5f92619dbc0f5fd83201f (patch) | |
tree | 9aacf8882747f683c77eca2da0fc07525a4034c4 /src/occ_405/amec | |
parent | f92b6d26c9d2f3d1fe0e25de3768ce972d7051d1 (diff) | |
download | talos-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')
-rwxr-xr-x | src/occ_405/amec/amec_sensors_core.c | 22 | ||||
-rwxr-xr-x | src/occ_405/amec/amec_sys.h | 2 |
2 files changed, 24 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 */ /*----------------------------------------------------------------------------*/ diff --git a/src/occ_405/amec/amec_sys.h b/src/occ_405/amec/amec_sys.h index c084a0c..803ca28 100755 --- a/src/occ_405/amec/amec_sys.h +++ b/src/occ_405/amec/amec_sys.h @@ -295,6 +295,7 @@ typedef struct sensor_t tempc; sensor_t stopdeepreqc; sensor_t stopdeepactc; + sensor_t voltdroopcntc; //----------------------------------- // Previous Tick Data @@ -427,6 +428,7 @@ typedef struct typedef struct { sensor_t tempq; + sensor_t voltdroopcntq; } amec_quad_t; //------------------------------------------------------------- |