Skip to content

Commit

Permalink
WOF: More bug fixes and enable wof by default
Browse files Browse the repository at this point in the history
- 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>
  • Loading branch information
aalugore authored and wilbryan committed Jun 23, 2017
1 parent 98cb615 commit cc46aff
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 14 deletions.
2 changes: 1 addition & 1 deletion src/occ_405/amec/amec_freq.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 )
Expand Down
2 changes: 1 addition & 1 deletion src/occ_405/amec/amec_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

}

Expand Down
4 changes: 3 additions & 1 deletion src/occ_405/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
25 changes: 14 additions & 11 deletions src/occ_405/mode.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand Down

0 comments on commit cc46aff

Please sign in to comment.