summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2017-02-08 16:14:11 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-03-01 14:44:36 -0500
commit8b4f11fa8aee0b102c43f2f2944b97d89039f134 (patch)
treeb6bd51b9b7caae327ef60702ebc2665576b5b622 /src/usr/isteps
parentde000da6f2163d9bfee21eff1f8e8bdaf77e4eb8 (diff)
downloadtalos-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')
-rw-r--r--src/usr/isteps/istep06/call_host_voltage_config.C20
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 );
OpenPOWER on IntegriCloud