diff options
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> |