summaryrefslogtreecommitdiffstats
path: root/src/occ_405
diff options
context:
space:
mode:
authorAndres Lugo-Reyes <aalugore@us.ibm.com>2017-06-20 15:47:07 -0500
committerWilliam A. Bryan <wilbryan@us.ibm.com>2017-06-23 12:11:58 -0400
commitcc46aff01f157339d04f213bbc9725ae66046f50 (patch)
treefbf22a754a262aa794c51593687e35ccb09ff766 /src/occ_405
parent98cb615a76cabc056fb7a590f815b740e3ea98bb (diff)
downloadtalos-occ-cc46aff01f157339d04f213bbc9725ae66046f50.tar.gz
talos-occ-cc46aff01f157339d04f213bbc9725ae66046f50.zip
WOF: More bug fixes and enable wof by default
- Hardcode vfrt block size until present in SRAM - Reorder re-enabling wof with mode change - enable wof by default Change-Id: I7f1038397e86c1f443d7f586388f56f2fdcb8a3e RTC:174543 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42159 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405')
-rwxr-xr-xsrc/occ_405/amec/amec_freq.c2
-rw-r--r--src/occ_405/amec/amec_init.c2
-rwxr-xr-xsrc/occ_405/main.c4
-rwxr-xr-xsrc/occ_405/mode.c25
4 files changed, 19 insertions, 14 deletions
diff --git a/src/occ_405/amec/amec_freq.c b/src/occ_405/amec/amec_freq.c
index b138d4b..4d0be6b 100755
--- a/src/occ_405/amec/amec_freq.c
+++ b/src/occ_405/amec/amec_freq.c
@@ -129,7 +129,7 @@ errlHndl_t amec_set_freq_range(const OCC_MODE i_mode)
// Use max frequency for performance modes and FMF
if( (i_mode == OCC_MODE_NOM_PERFORMANCE) || (i_mode == OCC_MODE_MAX_PERFORMANCE) ||
- (i_mode == OCC_MODE_FMF) || (i_mode ==OCC_MODE_DYN_POWER_SAVE) ||
+ (i_mode == OCC_MODE_FMF) || (i_mode == OCC_MODE_DYN_POWER_SAVE) ||
(i_mode == OCC_MODE_DYN_POWER_SAVE_FP) )
{
if( g_amec->wof.wof_disabled )
diff --git a/src/occ_405/amec/amec_init.c b/src/occ_405/amec/amec_init.c
index 7e70ed9..ceaf360 100644
--- a/src/occ_405/amec/amec_init.c
+++ b/src/occ_405/amec/amec_init.c
@@ -352,7 +352,7 @@ void amec_init_gamec_struct(void)
g_amec->sys.current_mem_pwr_ctl = MEM_PWR_CTL_NO_SUPPORT;
// Initialize wof_disabled
- g_amec->wof.wof_disabled = WOF_RC_DRIVER_WOF_DISABLED;
+ g_amec->wof.wof_disabled = 0x00000000;
}
diff --git a/src/occ_405/main.c b/src/occ_405/main.c
index 7abdbfb..f8f88ca 100755
--- a/src/occ_405/main.c
+++ b/src/occ_405/main.c
@@ -636,7 +636,9 @@ void read_wof_header(void)
MAIN_TRAC_INFO("MAIN: VFRT block size %d", G_wof_header.vfrt_block_size);
// Make wof header data visible to amester
g_amec->wof.version = G_wof_header.version;
- g_amec->wof.vfrt_block_size = G_wof_header.vfrt_block_size;
+ // TODO: RTC 174543 - Read vfrt blck size from header once correct
+ // in SRAM
+ g_amec->wof.vfrt_block_size = 256;
g_amec->wof.vfrt_blck_hdr_sz = G_wof_header.vfrt_blck_hdr_sz;
g_amec->wof.vfrt_data_size = G_wof_header.vfrt_data_size;
g_amec->wof.active_quads_size = G_wof_header.active_quads_size;
diff --git a/src/occ_405/mode.c b/src/occ_405/mode.c
index f8b00cb..fbaec25 100755
--- a/src/occ_405/mode.c
+++ b/src/occ_405/mode.c
@@ -271,10 +271,10 @@ errlHndl_t SMGR_mode_transition_to_nominal()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_NOMINAL);
+ CURRENT_MODE() = OCC_MODE_NOMINAL;
+
// WOF is disabled in nominal mode
set_clear_wof_disabled( SET, WOF_RC_MODE_NO_SUPPORT_MASK );
-
- CURRENT_MODE() = OCC_MODE_NOMINAL;
TRAC_IMP("SMGR: Mode to Nominal Transition Completed");
return l_errlHndl;
@@ -297,10 +297,11 @@ errlHndl_t SMGR_mode_transition_to_powersave()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_PWRSAVE);
+ CURRENT_MODE() = OCC_MODE_PWRSAVE;
+
// WOF is disabled in SPS mode
set_clear_wof_disabled( SET, WOF_RC_MODE_NO_SUPPORT_MASK );
- CURRENT_MODE() = OCC_MODE_PWRSAVE;
TRAC_IMP("SMGR: Mode to PowerSave Transition Completed");
return l_errlHndl;
@@ -323,10 +324,12 @@ errlHndl_t SMGR_mode_transition_to_dynpowersave()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_DYN_POWER_SAVE);
+
+ CURRENT_MODE() = OCC_MODE_DYN_POWER_SAVE;
+
// WOF is enabled in DPS, clear the mode bit
set_clear_wof_disabled( CLEAR, WOF_RC_MODE_NO_SUPPORT_MASK );
- CURRENT_MODE() = OCC_MODE_DYN_POWER_SAVE;
TRAC_IMP("SMGR: Mode to Dynamic PowerSave-Favor Energy Transition Completed");
return l_errlHndl;
@@ -348,10 +351,10 @@ errlHndl_t SMGR_mode_transition_to_dynpowersave_fp()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_DYN_POWER_SAVE_FP);
+ CURRENT_MODE() = OCC_MODE_DYN_POWER_SAVE_FP;
// WOF is enabled in DPS-FP, clear the mode bit
set_clear_wof_disabled( CLEAR, WOF_RC_MODE_NO_SUPPORT_MASK );
- CURRENT_MODE() = OCC_MODE_DYN_POWER_SAVE_FP;
TRAC_IMP("SMGR: Mode to Dynamic PowerSave-Favor Performance Transition Completed");
return l_errlHndl;
@@ -374,10 +377,11 @@ errlHndl_t SMGR_mode_transition_to_turbo()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_TURBO);
+ CURRENT_MODE() = OCC_MODE_TURBO;
+
// WOF is disabled in turbo mode
set_clear_wof_disabled( SET, WOF_RC_MODE_NO_SUPPORT_MASK );
- CURRENT_MODE() = OCC_MODE_TURBO;
TRAC_IMP("SMGR: Mode to Turbo Transition Completed");
return l_errlHndl;
@@ -400,10 +404,10 @@ errlHndl_t SMGR_mode_transition_to_ffo()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_FFO);
+ CURRENT_MODE() = OCC_MODE_FFO;
// WOF is disabled in FFO
set_clear_wof_disabled( SET, WOF_RC_MODE_NO_SUPPORT_MASK );
- CURRENT_MODE() = OCC_MODE_FFO;
TRAC_IMP("SMGR: Mode to FFO Transition Completed");
return l_errlHndl;
@@ -425,10 +429,9 @@ errlHndl_t SMGR_mode_transition_to_fmf()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_FMF);
+ CURRENT_MODE() = OCC_MODE_FMF;
// WOF is enabled in FMF, clear the mode bit
set_clear_wof_disabled( CLEAR, WOF_RC_MODE_NO_SUPPORT_MASK );
-
- CURRENT_MODE() = OCC_MODE_FMF;
TRAC_IMP("SMGR: Mode to FMF Transition Completed");
return l_errlHndl;
@@ -450,10 +453,10 @@ errlHndl_t SMGR_mode_transition_to_nom_perf()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_NOM_PERFORMANCE);
+ CURRENT_MODE() = OCC_MODE_NOM_PERFORMANCE;
// WOF is enabled in nominal performance mode, clear the mode bit
set_clear_wof_disabled( CLEAR, WOF_RC_MODE_NO_SUPPORT_MASK );
- CURRENT_MODE() = OCC_MODE_NOM_PERFORMANCE;
TRAC_IMP("SMGR: Mode to Nominal Performance Transition Completed");
return l_errlHndl;
@@ -475,10 +478,10 @@ errlHndl_t SMGR_mode_transition_to_max_perf()
// Set Freq Mode for AMEC to use
l_errlHndl = amec_set_freq_range(OCC_MODE_MAX_PERFORMANCE);
+ CURRENT_MODE() = OCC_MODE_MAX_PERFORMANCE;
// WOF is enabled in max performance mode, clear the mode bit
set_clear_wof_disabled( CLEAR, WOF_RC_MODE_NO_SUPPORT_MASK );
- CURRENT_MODE() = OCC_MODE_MAX_PERFORMANCE;
TRAC_IMP("SMGR: Mode to Maximum Performance Transition Completed");
return l_errlHndl;
OpenPOWER on IntegriCloud