summaryrefslogtreecommitdiffstats
path: root/src/usr
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
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')
-rw-r--r--src/usr/isteps/istep06/call_host_voltage_config.C20
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types.xml26
-rw-r--r--src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml4
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/target_types.xml1
4 files changed, 46 insertions, 5 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 );
diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
index 8317ff05c..48499b8ed 100644
--- a/src/usr/targeting/common/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
@@ -2554,7 +2554,6 @@
</description>
<simpleType>
<uint32_t>
-<!--TODO RTC:151649 Remove default value when data is pulled from MVPD #V -->
<default>4800</default>
</uint32_t>
</simpleType>
@@ -2568,6 +2567,27 @@
</attribute>
<attribute>
+ <id>DPO_MIN_FREQ_PERCENT</id>
+ <description>
+ Defines a negative percentage value that is applied to
+ the ATTR_NOMINAL_FREQ_MHZ determined from MVPD #V. It
+ is used to explicitly raise the value of MIN_FREQ_MHZ above
+ what is specified by MVPD #V data. On FSP systems this
+ is sourced from the power_management def file.
+ Value must be between 0 and 100.
+ A value of zero indicates no override.
+ </description>
+ <simpleType>
+ <uint32_t>
+ <default>0</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
<id>FREQ_PB_MHZ</id>
<description>
System attribute.
@@ -3714,8 +3734,6 @@
</description>
<simpleType>
<uint32_t>
-<!--TODO RTC:151649 Remove default value when data is pulled from MVPD #V -->
- <default>4800</default>
</uint32_t>
</simpleType>
<persistency>volatile</persistency>
@@ -21297,8 +21315,6 @@ Measured in GB</description>
</description>
<simpleType>
<uint32_t>
-<!--TODO RTC:151649 Remove default value when data is pulled from MVPD #V -->
- <default>4800</default>
</uint32_t>
</simpleType>
<persistency>volatile</persistency>
diff --git a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
index e2dac7acd..44d8ffaea 100644
--- a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
@@ -98,6 +98,10 @@
<default>0x7D0</default>
</attribute>
<attribute>
+ <id>DPO_MIN_FREQ_PERCENT</id>
+ <default>98</default>
+ </attribute>
+ <attribute>
<id>REQUIRED_SYNCH_MODE</id>
<default>2</default><!-- NEVER -->
</attribute>
diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
index 9e0d60185..526a1444b 100755
--- a/src/usr/targeting/common/xmltohb/target_types.xml
+++ b/src/usr/targeting/common/xmltohb/target_types.xml
@@ -607,6 +607,7 @@
<attribute><id>PROC_REFCLOCK_RCVR_TERM</id></attribute>
<attribute><id>PCI_REFCLOCK_RCVR_TERM</id></attribute>
<attribute><id>MIN_FREQ_MHZ</id></attribute>
+ <attribute><id>DPO_MIN_FREQ_PERCENT</id></attribute>
<attribute><id>FREQ_PROC_REFCLOCK</id></attribute>
<attribute><id>FREQ_PROC_REFCLOCK_KHZ</id></attribute>
<attribute><id>FREQ_MEM_REFCLOCK</id></attribute>
OpenPOWER on IntegriCloud