diff options
author | Andres Lugo-Reyes <aalugore@us.ibm.com> | 2017-06-20 15:47:07 -0500 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2017-06-23 12:11:58 -0400 |
commit | cc46aff01f157339d04f213bbc9725ae66046f50 (patch) | |
tree | fbf22a754a262aa794c51593687e35ccb09ff766 /src/occ_405 | |
parent | 98cb615a76cabc056fb7a590f815b740e3ea98bb (diff) | |
download | talos-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-x | src/occ_405/amec/amec_freq.c | 2 | ||||
-rw-r--r-- | src/occ_405/amec/amec_init.c | 2 | ||||
-rwxr-xr-x | src/occ_405/main.c | 4 | ||||
-rwxr-xr-x | src/occ_405/mode.c | 25 |
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; |