summaryrefslogtreecommitdiffstats
path: root/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
diff options
context:
space:
mode:
authorAndres Lugo-Reyes <aalugore@us.ibm.com>2017-08-16 09:18:28 -0500
committerAndres A. Lugo-Reyes <aalugore@us.ibm.com>2017-09-13 11:55:44 -0400
commit852ad09ac2d25bf0afe543b1bf81c2cfea0429e2 (patch)
tree413370a11f3a91b5389eb464983f64534cda49e3 /src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
parenta43395b0328e9af2be16bbe85dcc6b692d0fe6a7 (diff)
downloadtalos-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-xsrc/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c42
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;
OpenPOWER on IntegriCloud