summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2018-05-03 15:45:53 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-05-11 17:14:36 -0400
commit496156ffbd83372deb1f7a6e160d4fec3c525b5c (patch)
tree0913d8fc140609071d851324ffcf72513bad893b
parentad181494c943f15cf2d744e57b59ea5b7c166646 (diff)
downloadtalos-hostboot-496156ffbd83372deb1f7a6e160d4fec3c525b5c.tar.gz
talos-hostboot-496156ffbd83372deb1f7a6e160d4fec3c525b5c.zip
Add centaur dynamic VDDR code to hostboot
-Update the makefile for istep07 and add the call to the p9c_mss_vddr_offset hwp -Update attribute mapping to separate the centaur specific values -Update the centaur target to include the attribute for the vddr offset voltage -Update createVddrMsg to use new attributes for centaur voltages Change-Id: I3be51277b7693aa91e60c8873844be785bf97c12 RTC:157672 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58294 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
-rw-r--r--src/usr/isteps/hbToHwsvVoltageMsg.C20
-rw-r--r--src/usr/isteps/istep07/call_mss_volt.C342
-rw-r--r--src/usr/isteps/istep07/makefile2
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/attribute_types.xml180
-rw-r--r--src/usr/targeting/common/xmltohb/target_types.xml19
5 files changed, 395 insertions, 168 deletions
diff --git a/src/usr/isteps/hbToHwsvVoltageMsg.C b/src/usr/isteps/hbToHwsvVoltageMsg.C
index a6eff7a12..49970f13e 100644
--- a/src/usr/isteps/hbToHwsvVoltageMsg.C
+++ b/src/usr/isteps/hbToHwsvVoltageMsg.C
@@ -367,32 +367,32 @@ void HBToHwsvVoltageMsg::createVddrData(
{
(void)addMemoryVoltageDomains<
TARGETING::ATTR_MSS_VDD_PROGRAM,
- TARGETING::ATTR_MSS_VOLT_VDD_MILLIVOLTS,
- TARGETING::ATTR_MSS_VOLT_VDD_OFFSET_MILLIVOLTS,
+ TARGETING::ATTR_CEN_MSS_VOLT_VDD_MILLIVOLTS,
+ TARGETING::ATTR_CEN_MSS_VOLT_VDD_OFFSET_MILLIVOLTS,
TARGETING::ATTR_VDD_ID>(
pMembuf,
io_request);
(void)addMemoryVoltageDomains<
TARGETING::ATTR_MSS_AVDD_PROGRAM,
- TARGETING::ATTR_MSS_VOLT_AVDD_MILLIVOLTS,
- TARGETING::ATTR_MSS_VOLT_AVDD_OFFSET_MILLIVOLTS,
+ TARGETING::ATTR_CEN_MSS_VOLT_AVDD_MILLIVOLTS,
+ TARGETING::ATTR_CEN_MSS_VOLT_AVDD_OFFSET_MILLIVOLTS,
TARGETING::ATTR_AVDD_ID>(
pMembuf,
io_request);
(void)addMemoryVoltageDomains<
TARGETING::ATTR_MSS_VCS_PROGRAM,
- TARGETING::ATTR_MSS_VOLT_VCS_MILLIVOLTS,
- TARGETING::ATTR_MSS_VOLT_VCS_OFFSET_MILLIVOLTS,
+ TARGETING::ATTR_CEN_MSS_VOLT_VCS_MILLIVOLTS,
+ TARGETING::ATTR_CEN_MSS_VOLT_VCS_OFFSET_MILLIVOLTS,
TARGETING::ATTR_VCS_ID>(
pMembuf,
io_request);
(void)addMemoryVoltageDomains<
TARGETING::ATTR_MSS_VPP_PROGRAM,
- TARGETING::ATTR_MSS_VOLT_VPP_MILLIVOLTS,
- TARGETING::ATTR_CEN_MSS_VOLT_VPP,
+ TARGETING::ATTR_CEN_MSS_VOLT_VPP_MILLIVOLTS,
+ TARGETING::ATTR_CEN_MSS_VOLT_VPP_OFFSET_MILLIVOLTS,
TARGETING::ATTR_VPP_ID>(
pMembuf,
io_request);
@@ -400,8 +400,8 @@ void HBToHwsvVoltageMsg::createVddrData(
(void)addMemoryVoltageDomains<
TARGETING::ATTR_MSS_VDDR_PROGRAM,
- TARGETING::ATTR_MSS_VOLT_VDDR_MILLIVOLTS,
- TARGETING::ATTR_CEN_MSS_VOLT,
+ TARGETING::ATTR_CEN_MSS_VOLT_VDDR_MILLIVOLTS,
+ TARGETING::ATTR_CEN_MSS_VOLT_VDDR_OFFSET_MILLIVOLTS,
TARGETING::ATTR_VDDR_ID>(
pMembuf,
io_request);
diff --git a/src/usr/isteps/istep07/call_mss_volt.C b/src/usr/isteps/istep07/call_mss_volt.C
index 7e0540257..be4192fd5 100644
--- a/src/usr/isteps/istep07/call_mss_volt.C
+++ b/src/usr/isteps/istep07/call_mss_volt.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -61,6 +61,7 @@
// HWP
#include <p9_mss_volt.H>
#include <p9c_mss_volt.H>
+#include <p9c_mss_volt_vddr_offset.H>
namespace ISTEP_07
{
@@ -82,162 +83,203 @@ void* call_mss_volt( void *io_pArgs )
bool unused = false;
set_eff_config_attrs_helper(DEFAULT, unused);
- TARGETING::TargetHandleList l_membufTargetList;
+ TargetHandleList l_membufTargetList;
getAllChips(l_membufTargetList, TYPE_MEMBUF);
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_mss_volt: %d membuf targets", l_membufTargetList.size());
-
- if (l_membufTargetList.size() > 0)
+ do
{
- std::vector< fapi2::Target<fapi2::TARGET_TYPE_MEMBUF_CHIP> > l_membufFapiTargetsList;
-
- for(auto & l_membuf_target : l_membufTargetList)
- {
- fapi2::Target <fapi2::TARGET_TYPE_MEMBUF_CHIP>
- l_membuf_fapi_target (l_membuf_target);
-
- l_membufFapiTargetsList.push_back( l_membuf_fapi_target );
- }
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Calling p9c_mss_volt on list of membuf targets");
-
- // p9c_mss_volt.C (vector of centaurs)
- FAPI_INVOKE_HWP(l_err, p9c_mss_volt, l_membufFapiTargetsList);
-
- // process return code
- if ( l_err )
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X: p9c_mss_volt HWP() failed",
- l_err->reasonCode());
-
- // Create IStep error log and cross reference to error that occurred
- l_StepError.addErrorDetails(l_err);
-
- // Commit Error
- errlCommit( l_err, HWPF_COMP_ID );
- }
- else
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : p9c_mss_volt HWP");
- }
- }
- else
- {
- TARGETING::TargetHandleList l_mcsTargetList;
- getAllChiplets(l_mcsTargetList, TYPE_MCS);
-
- std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCS> > l_mcsFapiTargetsList;
- for(auto & l_mcs_target : l_mcsTargetList)
- {
- fapi2::Target <fapi2::TARGET_TYPE_MCS>
- l_mcs_fapi_target (l_mcs_target);
+ "call_mss_volt: %d membuf targets", l_membufTargetList.size());
- l_mcsFapiTargetsList.push_back( l_mcs_fapi_target );
- }
+ if (l_membufTargetList.size() > 0)
+ {
+ std::vector< fapi2::Target<fapi2::TARGET_TYPE_MEMBUF_CHIP> >
+ l_membufFapiTargetsList;
+
+ for(auto & l_membuf_target : l_membufTargetList)
+ {
+ fapi2::Target <fapi2::TARGET_TYPE_MEMBUF_CHIP>
+ l_membuf_fapi_target (l_membuf_target);
+
+ l_membufFapiTargetsList.push_back( l_membuf_fapi_target );
+ }
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "Calling p9c_mss_volt on list of membuf targets");
+
+ // p9c_mss_volt.C (vector of centaurs)
+ FAPI_INVOKE_HWP(l_err, p9c_mss_volt, l_membufFapiTargetsList);
+
+ // process return code
+ if ( l_err )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%.8X: p9c_mss_volt HWP() failed",
+ l_err->reasonCode());
+
+ // Create IStep error log and cross reference to error
+ // that occurred
+ l_StepError.addErrorDetails(l_err);
+
+ // Commit Error
+ errlCommit( l_err, HWPF_COMP_ID );
+
+ break;
+
+ }
+ else
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "SUCCESS : p9c_mss_volt HWP");
+ }
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "Calling p9c_mss_volt_vddr_offset on list of membuf targets");
+
+ // p9c_mss_volt_vddr_offset.C (vector of centaurs)
+ FAPI_INVOKE_HWP(l_err, p9c_mss_volt_vddr_offset,
+ l_membufFapiTargetsList);
+
+ // process return code
+ if ( l_err )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%.8X: p9c_mss_volt_vddr_offset HWP() failed",
+ l_err->reasonCode());
+
+ // Create IStep error log and cross reference to error
+ // that occurred
+ l_StepError.addErrorDetails(l_err);
+
+ // Commit Error
+ errlCommit( l_err, HWPF_COMP_ID );
+ }
+ else
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "SUCCESS : p9c_mss_volt_vddr_offset HWP");
+ }
+
+ }
+ else
+ {
+ TargetHandleList l_mcsTargetList;
+ getAllChiplets(l_mcsTargetList, TYPE_MCS);
+
+ std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCS> >
+ l_mcsFapiTargetsList;
+
+ for(auto & l_mcs_target : l_mcsTargetList)
+ {
+ fapi2::Target <fapi2::TARGET_TYPE_MCS>
+ l_mcs_fapi_target (l_mcs_target);
+
+ l_mcsFapiTargetsList.push_back( l_mcs_fapi_target );
+ }
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "Calling p9_mss_volt on list of mcs targets");
+
+ FAPI_INVOKE_HWP(l_err, p9_mss_volt, l_mcsFapiTargetsList);
+
+ // process return code
+ if ( l_err )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%.8X: p9_mss_volt HWP() failed",
+ l_err->reasonCode());
+
+ // Create IStep error log and cross reference to error
+ // that occurred
+ l_StepError.addErrorDetails(l_err);
+
+ // Commit Error
+ errlCommit( l_err, HWPF_COMP_ID );
+ }
+ else
+ {
+ // No need to compute dynamic values if mss_volt failed
+
+ // Calculate Dynamic Offset voltages for each domain
+ Target* pSysTarget = NULL;
+ targetService().getTopLevelTarget(pSysTarget);
+ assert(
+ (pSysTarget != NULL),
+ "call_mss_volt: Code bug! System target was NULL.");
+
+ // only calculate if system supports dynamic voltage
+ if (pSysTarget->getAttr<ATTR_SUPPORTS_DYNAMIC_MEM_VOLT >() == 1)
+ {
+ l_err = computeDynamicMemoryVoltage<
+ ATTR_MSS_VDD_PROGRAM,
+ ATTR_VDD_ID>();
+ if(l_err)
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%08X: computeDynamicMemoryVoltage for "
+ "VDD domain",
+ l_err->reasonCode());
+ l_StepError.addErrorDetails(l_err);
+ errlCommit(l_err,HWPF_COMP_ID);
+ }
+
+ l_err = computeDynamicMemoryVoltage<
+ ATTR_MSS_AVDD_PROGRAM,
+ ATTR_AVDD_ID>();
+ if(l_err)
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%08X: computeDynamicMemoryVoltage for "
+ "AVDD domain",
+ l_err->reasonCode());
+ l_StepError.addErrorDetails(l_err);
+ errlCommit(l_err,HWPF_COMP_ID);
+ }
+
+ l_err = computeDynamicMemoryVoltage<
+ ATTR_MSS_VCS_PROGRAM,
+ ATTR_VCS_ID>();
+ if(l_err)
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%08X: computeDynamicMemoryVoltage for "
+ "VCS domain",
+ l_err->reasonCode());
+ l_StepError.addErrorDetails(l_err);
+ errlCommit(l_err,HWPF_COMP_ID);
+ }
+
+ l_err = computeDynamicMemoryVoltage<
+ ATTR_MSS_VPP_PROGRAM,
+ ATTR_VPP_ID>();
+ if(l_err)
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%08X: computeDynamicMemoryVoltage for "
+ "VPP domain",
+ l_err->reasonCode());
+ l_StepError.addErrorDetails(l_err);
+ errlCommit(l_err,HWPF_COMP_ID);
+ }
+
+ l_err = computeDynamicMemoryVoltage<
+ ATTR_MSS_VDDR_PROGRAM,
+ ATTR_VDDR_ID>();
+ if(l_err)
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%08X: computeDynamicMemoryVoltage for "
+ "VDDR domain",
+ l_err->reasonCode());
+ l_StepError.addErrorDetails(l_err);
+ errlCommit(l_err,HWPF_COMP_ID);
+ }
+ }
+ }
+ }
+ }while(0);
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Calling p9_mss_volt on list of mcs targets");
-
- FAPI_INVOKE_HWP(l_err, p9_mss_volt, l_mcsFapiTargetsList);
-
- // process return code
- if ( l_err )
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X: p9_mss_volt HWP() failed",
- l_err->reasonCode());
-
- // Create IStep error log and cross reference to error that occurred
- l_StepError.addErrorDetails(l_err);
-
- // Commit Error
- errlCommit( l_err, HWPF_COMP_ID );
- }
- else
- {
- // No need to compute dynamic values if mss_volt failed
-
- // Calculate Dynamic Offset voltages for each domain
- TARGETING::Target* pSysTarget = NULL;
- TARGETING::targetService().getTopLevelTarget(pSysTarget);
- assert(
- (pSysTarget != NULL),
- "call_mss_volt: Code bug! System target was NULL.");
-
- // only calculate if system supports dynamic voltage
- if (pSysTarget->getAttr< TARGETING::ATTR_SUPPORTS_DYNAMIC_MEM_VOLT >() == 1)
- {
- l_err = computeDynamicMemoryVoltage<
- TARGETING::ATTR_MSS_VDD_PROGRAM,
- TARGETING::ATTR_VDD_ID>();
- if(l_err)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%08X: computeDynamicMemoryVoltage for "
- "VDD domain",
- l_err->reasonCode());
- l_StepError.addErrorDetails(l_err);
- errlCommit(l_err,HWPF_COMP_ID);
- }
-
- l_err = computeDynamicMemoryVoltage<
- TARGETING::ATTR_MSS_AVDD_PROGRAM,
- TARGETING::ATTR_AVDD_ID>();
- if(l_err)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%08X: computeDynamicMemoryVoltage for "
- "AVDD domain",
- l_err->reasonCode());
- l_StepError.addErrorDetails(l_err);
- errlCommit(l_err,HWPF_COMP_ID);
- }
-
- l_err = computeDynamicMemoryVoltage<
- TARGETING::ATTR_MSS_VCS_PROGRAM,
- TARGETING::ATTR_VCS_ID>();
- if(l_err)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%08X: computeDynamicMemoryVoltage for "
- "VCS domain",
- l_err->reasonCode());
- l_StepError.addErrorDetails(l_err);
- errlCommit(l_err,HWPF_COMP_ID);
- }
-
- l_err = computeDynamicMemoryVoltage<
- TARGETING::ATTR_MSS_VPP_PROGRAM,
- TARGETING::ATTR_VPP_ID>();
- if(l_err)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%08X: computeDynamicMemoryVoltage for "
- "VPP domain",
- l_err->reasonCode());
- l_StepError.addErrorDetails(l_err);
- errlCommit(l_err,HWPF_COMP_ID);
- }
-
- l_err = computeDynamicMemoryVoltage<
- TARGETING::ATTR_MSS_VDDR_PROGRAM,
- TARGETING::ATTR_VDDR_ID>();
- if(l_err)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%08X: computeDynamicMemoryVoltage for "
- "VDDR domain",
- l_err->reasonCode());
- l_StepError.addErrorDetails(l_err);
- errlCommit(l_err,HWPF_COMP_ID);
- }
- }
- }
- }
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_volt exit" );
return l_StepError.getErrorHandle();
diff --git a/src/usr/isteps/istep07/makefile b/src/usr/isteps/istep07/makefile
index f9cc94058..2ad985616 100644
--- a/src/usr/isteps/istep07/makefile
+++ b/src/usr/isteps/istep07/makefile
@@ -76,6 +76,8 @@ include ${ROOTPATH}/procedure.rules.mk
#mss_volt : Calc dimm voltage
include $(HWP_PATH_1)/p9_mss_volt.mk
include $(HWP_PATH_2)/p9c_mss_volt.mk
+include $(HWP_PATH_2)/p9c_mss_volt_vddr_offset.mk
+include $(HWP_PATH_2)/mss_dynamic_vid_utils.mk
#mss_freq : Calc dimm frequency
include $(HWP_PATH_1)/p9_mss_freq.mk
diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
index 19be4d547..3074a9b64 100755
--- a/src/usr/targeting/common/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
@@ -2779,6 +2779,186 @@
</attribute>
<attribute>
+ <description>
+ DRAM Voltage, each voltage rail would need to have a value.
+ Computed in mss_volt C code - in millivolts
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <hwpfToHbAttrMap>
+ <id>ATTR_CEN_MSS_VOLT</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+ <id>CEN_MSS_VOLT_VDDR_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ DRAM VPP Voltage, each voltage rail would need to have a value.
+ Computed in mss_volt C code - in millivolts. 0V - DDR3, 2.5V - DDR4
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <hwpfToHbAttrMap>
+ <id>ATTR_CEN_MSS_VOLT_VPP</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+ <id>CEN_MSS_VOLT_VPP_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ Computed in mss_volt C code - in millivolts
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <id>CEN_MSS_VOLT_VCS_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ DRAM Voltage, each voltage rail would need to have a value.
+ Computed in mss_volt C code - in millivolts
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <id>CEN_MSS_VOLT_VDD_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ DRAM Voltage, each voltage rail would need to have a value.
+ Computed in mss_volt C code - in millivolts
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <id>CEN_MSS_VOLT_AVDD_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ DRAM Voltage, each voltage rail would need to have a value.
+ Computed in mss_volt C code - in millivolts
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <hwpfToHbAttrMap>
+ <id>ATTR_CEN_MSS_VDDR_OFFSET</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+ <id>CEN_MSS_VOLT_VDDR_OFFSET_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ DRAM VPP Voltage, each voltage rail would need to have a value.
+ Computed in mss_volt C code - in millivolts. 0V - DDR3, 2.5V - DDR4
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <id>CEN_MSS_VOLT_VPP_OFFSET_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ Computed in mss_volt C code - in millivolts
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <id>CEN_MSS_VOLT_VCS_OFFSET_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ DRAM Voltage, each voltage rail would need to have a value.
+ Computed in mss_volt C code - in millivolts
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <id>CEN_MSS_VOLT_VDD_OFFSET_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
+ <description>
+ DRAM Voltage, each voltage rail would need to have a value.
+ Computed in mss_volt C code - in millivolts
+ creator: mss_volt
+ consumer: mss_eff_cnfg, others
+ firmware notes: none
+ </description>
+ <id>CEN_MSS_VOLT_AVDD_OFFSET_MILLIVOLTS</id>
+ <persistency>volatile-zeroed</persistency>
+ <readable></readable>
+ <simpleType>
+ <uint32_t></uint32_t>
+ </simpleType>
+ <writeable></writeable>
+ </attribute>
+
+ <attribute>
<description>Units: uV/Membuf
</description>
<hwpfToHbAttrMap>
diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
index 01a526eb7..6f6ee3a90 100644
--- a/src/usr/targeting/common/xmltohb/target_types.xml
+++ b/src/usr/targeting/common/xmltohb/target_types.xml
@@ -393,28 +393,31 @@
<id>CENTAUR_ECID_FRU_ID</id>
</attribute>
<attribute>
- <id>MSS_VOLT_VDD_MILLIVOLTS</id>
+ <id>CEN_MSS_VOLT_VDD_MILLIVOLTS</id>
</attribute>
<attribute>
- <id>MSS_VOLT_AVDD_MILLIVOLTS</id>
+ <id>CEN_MSS_VOLT_AVDD_MILLIVOLTS</id>
</attribute>
<attribute>
- <id>MSS_VOLT_VCS_MILLIVOLTS</id>
+ <id>CEN_MSS_VOLT_VCS_MILLIVOLTS</id>
</attribute>
<attribute>
- <id>MSS_VOLT_VPP_MILLIVOLTS</id>
+ <id>CEN_MSS_VOLT_VPP_MILLIVOLTS</id>
</attribute>
<attribute>
- <id>MSS_VOLT_VDDR_MILLIVOLTS</id>
+ <id>CEN_MSS_VOLT_VDDR_MILLIVOLTS</id>
</attribute>
<attribute>
- <id>MSS_VOLT_VDD_OFFSET_MILLIVOLTS</id>
+ <id>CEN_MSS_VOLT_VDD_OFFSET_MILLIVOLTS</id>
</attribute>
<attribute>
- <id>MSS_VOLT_AVDD_OFFSET_MILLIVOLTS</id>
+ <id>CEN_MSS_VOLT_AVDD_OFFSET_MILLIVOLTS</id>
</attribute>
<attribute>
- <id>MSS_VOLT_VCS_OFFSET_MILLIVOLTS</id>
+ <id>CEN_MSS_VOLT_VCS_OFFSET_MILLIVOLTS</id>
+ </attribute>
+ <attribute>
+ <id>CEN_MSS_VOLT_VDDR_OFFSET_MILLIVOLTS</id>
</attribute>
<attribute>
<id>VDD_ID</id>
OpenPOWER on IntegriCloud