summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/usr/isteps/hbToHwsvVoltageMsg.C10
-rw-r--r--src/usr/isteps/hbToHwsvVoltageMsg.H16
-rw-r--r--src/usr/isteps/istepHelperFuncs.H20
-rwxr-xr-xsrc/usr/targeting/common/genHwsvMrwXml.pl9
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/attribute_types.xml3
5 files changed, 45 insertions, 13 deletions
diff --git a/src/usr/isteps/hbToHwsvVoltageMsg.C b/src/usr/isteps/hbToHwsvVoltageMsg.C
index 8b29e7ded..2ba5c483d 100644
--- a/src/usr/isteps/hbToHwsvVoltageMsg.C
+++ b/src/usr/isteps/hbToHwsvVoltageMsg.C
@@ -247,7 +247,7 @@ void HBToHwsvVoltageMsg::addMemoryVoltageDomains(
// There is no reasonable check to validate if a voltage we're
// reading is valid so it has to be assumed good for the cases below
- if(domainProgram == MSS_PROGRAM_TYPE::STATIC)
+ if(domainProgram == MSS_PROGRAM_TYPE::STATIC_TYPE)
{
typename
TARGETING::AttributeTraits< VOLTAGE_ATTR_STATIC >::Type
@@ -257,7 +257,7 @@ void HBToHwsvVoltageMsg::addMemoryVoltageDomains(
entry.voltageMillivolts = static_cast<uint32_t>(voltageMillivolts);
io_domains.push_back(entry);
}
- else if(domainProgram == MSS_PROGRAM_TYPE::DYNAMIC)
+ else if(domainProgram == MSS_PROGRAM_TYPE::DYNAMIC_TYPE)
{
typename
TARGETING::AttributeTraits< VOLTAGE_ATTR_DYNAMIC >::Type
@@ -267,6 +267,12 @@ void HBToHwsvVoltageMsg::addMemoryVoltageDomains(
entry.voltageMillivolts = static_cast<uint32_t>(voltageMillivolts);
io_domains.push_back(entry);
}
+ else if(domainProgram == MSS_PROGRAM_TYPE::DEFAULT_TYPE)
+ {
+ entry.voltageMillivolts =
+ HBToHwsvVoltageMsg::VOLTAGE_SETTING_ALERT_DEFAULT;
+ io_domains.push_back(entry);
+ }
}
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/usr/isteps/hbToHwsvVoltageMsg.H b/src/usr/isteps/hbToHwsvVoltageMsg.H
index 5f66a2a9d..0f7e9704c 100644
--- a/src/usr/isteps/hbToHwsvVoltageMsg.H
+++ b/src/usr/isteps/hbToHwsvVoltageMsg.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2016 */
+/* Contributors Listed Below - COPYRIGHT 2012,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -91,6 +91,13 @@ public:
};
/**
+ * @brief Identifies hwsvPowrMemVoltDomainRequest_t as a DEFAULT voltage
+ * request if voltageMillivolts is set to this constant
+ *
+ */
+ const uint32_t VOLTAGE_SETTING_ALERT_DEFAULT = 0xFFFFFFFF;
+
+ /**
* @struct hwsvPowrMemVoltDomainRequest_t
*
* @brief Structure containing a memory voltage domain type, ID, and
@@ -234,9 +241,10 @@ private:
* @tparam MSS_DOMAIN_PROGRAM
* ID of the attribute to read to determine how we program this domain.
* Value of the attribute should be one of these:
- * MSS_PROGRAM_TYPE::POWERON = no additional programming necessary,
- * MSS_PROGRAM_TYPE::STATIC = use static value,
- * MSS_PROGRAM_TYPE::DYNAMIC = use dynamic value
+ * MSS_PROGRAM_TYPE::POWERON_TYPE = no add'l programming necessary,
+ * MSS_PROGRAM_TYPE::STATIC_TYPE = use static value,
+ * MSS_PROGRAM_TYPE::DYNAMIC_TYPE = use dynamic value,
+ * MSS_PROGRAM_TYPE::DEFAULT_TYPE = send special alert value
*
* @tparam VOLTAGE_ATTR_STATIC
* ID of the attribute which should be read to obtain the given memory
diff --git a/src/usr/isteps/istepHelperFuncs.H b/src/usr/isteps/istepHelperFuncs.H
index 1f6a5c8dd..e924a9dd5 100644
--- a/src/usr/isteps/istepHelperFuncs.H
+++ b/src/usr/isteps/istepHelperFuncs.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -53,11 +53,21 @@ enum EFF_CONFIG_ATTRIBUTES_BASE
*/
enum MSS_PROGRAM_TYPE
{
- POWERON = 0, // domain is programmed as part of regular power on sequence
- STATIC = 1, // domain needs to be programmed, no special computation needed
- DYNAMIC = 2, // domain needs to be programmed, uses dynamic vid logic
+ // domain is programmed as part of regular power on sequence
+ POWERON_TYPE = 0,
+
+ // domain needs to be programmed, no special computation needed
+ STATIC_TYPE = 1,
+
+ // domain needs to be programmed, uses dynamic vid logic
+ DYNAMIC_TYPE = 2,
+
+ // domain needs to be programmed,
+ // POWR responsible for vid values attained via sys vrm xml
+ DEFAULT_TYPE = 3,
};
+
//
// Helper function to set _EFF_CONFIG attributes for HWPs
//
@@ -128,7 +138,7 @@ errlHndl_t computeDynamicMemoryVoltage()
pSysTarget->getAttr< OFFSET_DISABLEMENT_ATTR >();
- if(domainProgram != MSS_PROGRAM_TYPE::DYNAMIC)
+ if(domainProgram != MSS_PROGRAM_TYPE::DYNAMIC_TYPE)
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"INFO: Dynamic offset voltage processing disabled for domain type 0x%08X.",
diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
index 40a28fa2c..64a404c61 100755
--- a/src/usr/targeting/common/genHwsvMrwXml.pl
+++ b/src/usr/targeting/common/genHwsvMrwXml.pl
@@ -31,7 +31,6 @@
# --system=systemname
# Specify which system MRW XML to be generated
# --systemnodes=systemnodesinbrazos
-
# Specify number of nodes for brazos system, by default it is 4
# --mrwdir=pathname
# Specify the complete dir pathname of the MRW. Colon-delimited
@@ -158,6 +157,10 @@ use constant
# Domain needs to be programmed during host_enable_memvolt, and the
# new dynamic vid values must be computed beyond what p9_mss_volt() did
DYNAMIC_PROGRAM => 2,
+
+ # Domain needs to be programmed during host_enable_memvolt, and the
+ # new vid values will come from VRM xml system file consumed by POWR code
+ DEFAULT_PROGRAM => 3,
};
our $mrwdir = "";
@@ -523,6 +526,10 @@ for my $domain (keys %domainProgram)
{
push @systemAttr, [$domain, DYNAMIC_PROGRAM];
}
+ elsif ($domainProgram{$domain} eq "default")
+ {
+ push @systemAttr, [$domain, DEFAULT_PROGRAM];
+ }
else
{
# default to not program in host_enable_memvolt
diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
index b24341205..3b977e538 100755
--- a/src/usr/targeting/common/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
@@ -2024,7 +2024,8 @@
<description>VDDR memory programming type
0 = POWERON - domain is programmed as part of regular power on sequence,
1 = STATIC - domain needs to be programmed, no special computation needed,
- 2 = DYNAMIC - domain needs to be programmed, uses dynamic vid logic
+ 2 = DYNAMIC - domain needs to be programmed, uses dynamic vid logic,
+ 3 = DEFAULT - domain needs to be programmed, pgm values in sys xml file
</description>
<hasStringConversion></hasStringConversion>
<id>MSS_VDDR_PROGRAM</id>
OpenPOWER on IntegriCloud