diff options
author | Andres Lugo-Reyes <aalugore@us.ibm.com> | 2017-08-16 09:18:28 -0500 |
---|---|---|
committer | Andres A. Lugo-Reyes <aalugore@us.ibm.com> | 2017-09-13 11:55:44 -0400 |
commit | 852ad09ac2d25bf0afe543b1bf81c2cfea0429e2 (patch) | |
tree | 413370a11f3a91b5389eb464983f64534cda49e3 /src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c | |
parent | a43395b0328e9af2be16bbe85dcc6b692d0fe6a7 (diff) | |
download | talos-occ-852ad09ac2d25bf0afe543b1bf81c2cfea0429e2.tar.gz talos-occ-852ad09ac2d25bf0afe543b1bf81c2cfea0429e2.zip |
WOF: Initial WOF soft reset support
Change-Id: I04b29c5c9b6acc1fb230c51b86eeda8c679130d5
RTC:174965
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45168
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com>
Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com>
Diffstat (limited to 'src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c')
-rwxr-xr-x | src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c index fc3072f..80601ea 100755 --- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c +++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c @@ -329,15 +329,41 @@ errlHndl_t data_store_freq_data(const cmdh_fsp_cmd_t * i_cmd_ptr, l_freq = G_proc_fmax_mhz; } - // If Ultra Turbo is 0, disable WOF, else enable - if( l_freq == 0 ) + // Check if (H)TMGT will let WOF run, else clear flags + switch( l_freq ) { - set_clear_wof_disabled( SET, WOF_RC_UTURBO_IS_ZERO ); - } - else - { - set_clear_wof_disabled( CLEAR, WOF_RC_UTURBO_IS_ZERO ); - set_clear_wof_disabled( CLEAR, WOF_RC_OCC_WOF_DISABLED ); + case WOF_MISSING_ULTRA_TURBO: + CMDH_TRAC_INFO("WOF Disabled due to 0 UT value."); + set_clear_wof_disabled( SET, WOF_RC_UTURBO_IS_ZERO ); + l_freq = 0; + break; + + case WOF_SYSTEM_DISABLED: + CMDH_TRAC_INFO("WOF Disabled due to SYSTEM_WOF_DISABLE"); + set_clear_wof_disabled( SET, WOF_RC_SYSTEM_WOF_DISABLE ); + l_freq = 0; + break; + + case WOF_RESET_LIMIT_REACHED: + CMDH_TRAC_INFO("WOF Disabled due to reset limit"); + set_clear_wof_disabled( SET, WOF_RC_RESET_LIMIT_REACHED ); + l_freq = 0; + break; + + case WOF_UNSUPPORTED_FREQ: + CMDH_TRAC_INFO("WOF Disabled due to unsupported frequency"); + set_clear_wof_disabled( SET, WOF_RC_UNSUPPORTED_FREQUENCIES ); + l_freq = 0; + break; + + default: + CMDH_TRAC_INFO("WOF is Enabled! so far..."); + set_clear_wof_disabled( CLEAR, WOF_RC_UTURBO_IS_ZERO ); + set_clear_wof_disabled( CLEAR, WOF_RC_SYSTEM_WOF_DISABLE ); + set_clear_wof_disabled( CLEAR, WOF_RC_RESET_LIMIT_REACHED ); + set_clear_wof_disabled( CLEAR, WOF_RC_UNSUPPORTED_FREQUENCIES ); + set_clear_wof_disabled( CLEAR, WOF_RC_OCC_WOF_DISABLED ); + break; } l_table[OCC_MODE_UTURBO] = l_freq; |