diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2017-02-08 16:14:11 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-03-01 14:44:36 -0500 |
commit | 8b4f11fa8aee0b102c43f2f2944b97d89039f134 (patch) | |
tree | b6bd51b9b7caae327ef60702ebc2665576b5b622 /src/usr/isteps/istep06 | |
parent | de000da6f2163d9bfee21eff1f8e8bdaf77e4eb8 (diff) | |
download | talos-hostboot-8b4f11fa8aee0b102c43f2f2944b97d89039f134.tar.gz talos-hostboot-8b4f11fa8aee0b102c43f2f2944b97d89039f134.zip |
Adjust MIN_FREQ_MHZ based on system power management def files
Added common attribute for FSP to communicate system DPO policies
to Hostboot to use while computing MIN_FREQ_MHZ.
Change-Id: I67f4e7607c389e6d77b1af5a0295b0730cce16ed
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36184
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/istep06')
-rw-r--r-- | src/usr/isteps/istep06/call_host_voltage_config.C | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/usr/isteps/istep06/call_host_voltage_config.C b/src/usr/isteps/istep06/call_host_voltage_config.C index 2d71280ab..467fb1bf8 100644 --- a/src/usr/isteps/istep06/call_host_voltage_config.C +++ b/src/usr/isteps/istep06/call_host_voltage_config.C @@ -289,6 +289,14 @@ void* call_host_voltage_config( void *io_pArgs ) l_turboFreq = l_ceilingFreq; } + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "Proc %.8X Freq from #V: " + "Powersave = %d Turbo = %d, UltraTurbo = %d", + TARGETING::get_huid(l_proc), + l_voltageData.PSFreq, + l_voltageData.turboFreq, + l_voltageData.uTurboFreq ); + } // EQ for-loop // Don't set the boot voltage ATTR -- instead the @@ -323,6 +331,18 @@ void* call_host_voltage_config( void *io_pArgs ) // set the frequency system targets l_sys->setAttr<ATTR_NOMINAL_FREQ_MHZ>( l_nominalFreq ); + // raise the min freq if there is a system policy for it + uint32_t l_dpoPercent = l_sys->getAttr<ATTR_DPO_MIN_FREQ_PERCENT>(); + uint32_t l_dpoFreq = l_nominalFreq; + if( (l_dpoPercent != 0) && (l_dpoPercent < 100) ) + { + l_dpoFreq = (l_nominalFreq*l_dpoPercent)/100; + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "Computed floor=%d, DPO=%d (percent=-%d)", + l_floorFreq, l_dpoFreq, l_dpoPercent ); + l_floorFreq = std::max( l_floorFreq, l_dpoFreq ); + } + l_sys->setAttr<ATTR_MIN_FREQ_MHZ>( l_floorFreq ); l_sys->setAttr<ATTR_FREQ_CORE_CEILING_MHZ>( l_ceilingFreq ); |