diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/isteps/hbToHwsvVoltageMsg.C | 10 | ||||
-rw-r--r-- | src/usr/isteps/hbToHwsvVoltageMsg.H | 16 | ||||
-rw-r--r-- | src/usr/isteps/istepHelperFuncs.H | 20 | ||||
-rwxr-xr-x | src/usr/targeting/common/genHwsvMrwXml.pl | 9 | ||||
-rwxr-xr-x | src/usr/targeting/common/xmltohb/attribute_types.xml | 3 |
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> |