From da6e77f81deb6d4d7b88c973be06d0008e01d01a Mon Sep 17 00:00:00 2001 From: Chris Cain Date: Mon, 9 Apr 2018 16:03:53 -0500 Subject: 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 Reviewed-by: Martha Broyles Reviewed-by: Andres A. Lugo-Reyes Reviewed-by: Christopher J. Cain --- src/occ_405/amec/amec_freq.c | 6 +++--- src/occ_405/occbuildname.c | 2 +- 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"))) = /**/ "op_occ_180328a\0" /**/ ; +volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = /**/ "op_occ_180409a\0" /**/ ; #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 -- cgit v1.2.1