diff options
author | Chris Cain <cjcain@us.ibm.com> | 2018-04-09 16:03:53 -0500 |
---|---|---|
committer | Christopher J. Cain <cjcain@us.ibm.com> | 2018-04-10 09:44:45 -0400 |
commit | da6e77f81deb6d4d7b88c973be06d0008e01d01a (patch) | |
tree | eedfad8cd7940493ce6cca90b91dc7a307268737 | |
parent | 1bf5605f1d80899f0f649fef365fb77f2f5607ba (diff) | |
download | talos-occ-da6e77f81deb6d4d7b88c973be06d0008e01d01a.tar.gz talos-occ-da6e77f81deb6d4d7b88c973be06d0008e01d01a.zip |
Use Turbo for max frequency until WOF is fully enabled
Change-Id: Ie670ed425c580718e3b90b1cabb4417062c951f0
CQ: SW424084
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56974
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com>
Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com>
-rwxr-xr-x | src/occ_405/amec/amec_freq.c | 6 | ||||
-rwxr-xr-x | src/occ_405/occbuildname.c | 2 | ||||
-rw-r--r-- | src/occ_405/wof/wof.c | 20 |
3 files changed, 14 insertions, 14 deletions
diff --git a/src/occ_405/amec/amec_freq.c b/src/occ_405/amec/amec_freq.c index 496be9f..66ea8de 100755 --- a/src/occ_405/amec/amec_freq.c +++ b/src/occ_405/amec/amec_freq.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2017 */ +/* Contributors Listed Below - COPYRIGHT 2011,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -122,7 +122,7 @@ errlHndl_t amec_set_freq_range(const OCC_MODE i_mode) l_freq_min = G_sysConfigData.sys_mode_freq.table[OCC_MODE_MIN_FREQUENCY]; // Set Max frequency (turbo if wof off, otherwise max possible (ultra turbo) - if( g_amec->wof.wof_disabled ) + if( g_amec->wof.wof_disabled || (g_amec->wof.wof_init_state != WOF_ENABLED)) { l_freq_max = G_sysConfigData.sys_mode_freq.table[OCC_MODE_TURBO]; } @@ -141,7 +141,7 @@ errlHndl_t amec_set_freq_range(const OCC_MODE i_mode) (i_mode == OCC_MODE_DYN_POWER_SAVE_FP) ) { // clip to turbo if WOF is disabled - if( g_amec->wof.wof_disabled ) + if( g_amec->wof.wof_disabled || (g_amec->wof.wof_init_state != WOF_ENABLED)) { l_freq_max = G_sysConfigData.sys_mode_freq.table[OCC_MODE_TURBO]; } diff --git a/src/occ_405/occbuildname.c b/src/occ_405/occbuildname.c index 8131806..e980878 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_180328a\0" /*</BuildName>*/ ; +volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = /*<BuildName>*/ "op_occ_180409a\0" /*</BuildName>*/ ; #endif diff --git a/src/occ_405/wof/wof.c b/src/occ_405/wof/wof.c index d5bd592..7bdd95d 100644 --- a/src/occ_405/wof/wof.c +++ b/src/occ_405/wof/wof.c @@ -383,6 +383,13 @@ void call_wof_main( void ) if( g_wof->wof_init_state == PGPE_WOF_ENABLED_NO_PREV_DATA ) { g_wof->wof_init_state = WOF_ENABLED; + // Set the the frequency ranges + errlHndl_t l_errl = amec_set_freq_range(CURRENT_MODE()); + if(l_errl) + { + INTR_TRAC_ERR("call_wof_main: amec_set_freq_range reported an error"); + commitErrl( &l_errl); + } } } } // >= PGPE_WOF_ENABLED_NO_PREV_DATA @@ -521,7 +528,7 @@ uint8_t calc_quad_step_from_start( void ) uint32_t calc_vfrt_mainstore_addr( void ) { // Wof tables address calculation - // (Base_addr + + // (Base_addr + // (sizeof VFRT * (total active quads * ( (g_wof->vdn_step_from_start * vdd_size) + (g_wof->vdd_step_from_start) ) + (g_wof->quad_step_from_start)))) g_wof->vfrt_mm_offset = g_wof->vfrt_block_size * (( g_wof->active_quads_size * @@ -593,7 +600,7 @@ void copy_vfrt_to_sram_callback( void ) * * Description: Callback function for G_wof_vfrt_req GPE request to * confirm the new VFRT is being used by the PGPE and - * record the switch on the 405. Also updates the + * record the switch on the 405. Also updates the * initialization */ void wof_vfrt_callback( void ) @@ -961,7 +968,7 @@ void calculate_core_leakage( void ) G_oppb.iddq.avgtemp_all_good_cores_off, quad_v_idx, g_wof->tempprocthrmc[core_idx], - g_wof->v_core_100uV[quad_idx]) + g_wof->v_core_100uV[quad_idx]) + (g_wof->all_cores_off_iso * G_oppb.iddq.good_normal_cores[quad_idx]) / 24; @@ -1479,13 +1486,6 @@ void set_clear_wof_disabled( uint8_t i_action, // commit the error log commitErrl( &l_errl ); - - // Set the the frequency ranges - l_errl = amec_set_freq_range(CURRENT_MODE()); - if(l_errl) - { - commitErrl( &l_errl); - } } } else |