summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2014-12-05 11:19:19 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-12-13 10:39:23 -0600
commit597e79a3055b155af20d6d64ade2fd2e95699954 (patch)
tree9b1577bef631b0acae7105958169e7796bd4ad1c /src
parent212a11e8f24dae439cf9189762546079bbf40fb1 (diff)
downloadtalos-hostboot-597e79a3055b155af20d6d64ade2fd2e95699954.tar.gz
talos-hostboot-597e79a3055b155af20d6d64ade2fd2e95699954.zip
SW287957: INITPROC: Memory procedure updates for palmetto/habanero
Change-Id: Ie35bd64c667848b2a831801ac963129ea8d1f4f2 CQ:SW287957 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14733 Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Tested-by: Richard J. Knight <rjknight@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14735 Tested-by: Jenkins Server Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/include/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.H4
-rw-r--r--src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H3
-rw-r--r--src/include/usr/hwpf/plat/fapiPlatAttributeService.H4
-rw-r--r--src/usr/hwpf/hwp/dimm_spd_attributes.xml19
-rw-r--r--src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config.C9
-rw-r--r--src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt.C69
-rw-r--r--src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C2
-rw-r--r--src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C3
8 files changed, 60 insertions, 53 deletions
diff --git a/src/include/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.H b/src/include/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.H
index 91912b6d3..8e68566eb 100644
--- a/src/include/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.H
+++ b/src/include/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.H
@@ -26,7 +26,7 @@
/**
* @file getControlCapable.H
*
- * @brief MBvpd accessor for the ATTR_MSS_POWER_CONTROL_CAPABLE attributes
+ * @brief MBvpd accessor for the ATTR_VPD_POWER_CONTROL_CAPABLE attributes
*/
#ifndef _HWP_MVPDCONTROLCAPABLEDATA_
@@ -35,7 +35,7 @@
extern "C"
{
/**
- * @brief MBvpd accessor for the ATTR_MSS_POWER_CONTROL_CAPABLE attribute
+ * @brief MBvpd accessor for the ATTR_VPD_POWER_CONTROL_CAPABLE attribute
*
* Access Power control capable value in MBvpd record VSPD keyword MR
*
diff --git a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H
index 6b15ea68d..3920001b5 100644
--- a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H
+++ b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H
@@ -22,7 +22,7 @@
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: getMBvpdTermData.H,v 1.5 2014/02/08 11:36:19 whs Exp $
+// $Id: getMBvpdTermData.H,v 1.6 2014/11/24 15:47:50 cswenson Exp $
/**
* @file getMBvpdTermData.H
@@ -257,3 +257,4 @@ fapi::ReturnCode getMBvpdTermData(
}
#endif
+
diff --git a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H
index 79dd46229..70d4ef11c 100644
--- a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H
+++ b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H
@@ -725,7 +725,7 @@ fapi::ReturnCode fapiPlatGetOscswitchCtl
/**
* @brief This function supports a new memory attribute. Called by the
- * FAPI_ATTR_GET macro when getting the ATTR_MSS_POWER_CONTROL_CAPABLE
+ * FAPI_ATTR_GET macro when getting the ATTR_VPD_POWER_CONTROL_CAPABLE
* attribute.
* It should not be called directly.
*
@@ -820,7 +820,7 @@ fapi::ReturnCode fapiPlatGetRCDCntlWord015 (const fapi::Target * i_pTarget,
//------------------------------------------------------------------------------
// MACRO to support the power control capable memory attribute
//------------------------------------------------------------------------------
-#define ATTR_MSS_POWER_CONTROL_CAPABLE_GETMACRO(ID, PTARGET, VAL) \
+#define ATTR_VPD_POWER_CONTROL_CAPABLE_GETMACRO(ID, PTARGET, VAL) \
fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\
fapi::FAPI_RC_SUCCESS : fapi::platAttrSvc::fapiPlatGetControlCapable(PTARGET,VAL)
diff --git a/src/usr/hwpf/hwp/dimm_spd_attributes.xml b/src/usr/hwpf/hwp/dimm_spd_attributes.xml
index 6b3ceabf5..c1d00e973 100644
--- a/src/usr/hwpf/hwp/dimm_spd_attributes.xml
+++ b/src/usr/hwpf/hwp/dimm_spd_attributes.xml
@@ -22,7 +22,7 @@
<!-- permissions and limitations under the License. -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
-<!-- $Id: dimm_spd_attributes.xml,v 1.42 2014-11-14 20:00:37 dcrowell Exp $ -->
+<!-- $Id: dimm_spd_attributes.xml,v 1.45 2014/12/10 14:03:53 rjknight Exp $ -->
<!-- XML file specifying DIMM SPD attributes used by HW Procedures. -->
<attributes>
@@ -611,7 +611,7 @@ The attribute would contain byte 69 nibble 1, followed by byte 69 nibble 0, foll
<targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
<description>RCD Timing. Supplied by VPD, used by mss_eff_config.C. Each dimm will have a value.
consumer: mss_eff_config
- </description>
+ </description>
<valueType>uint8</valueType>
<enum>1T = 0x01, 3T = 0x03</enum>
<odmVisable/>
@@ -2520,7 +2520,6 @@ Data will be pulled from backplane VPD if IS DIMMs present.</description>
<platInit/>
</attribute>
-<!--@fixme RTC: 112608
<attribute>
<id>ATTR_VPD_POWER_CONTROL_CAPABLE</id>
<targetType>TARGET_TYPE_MEMBUF_CHIP</targetType>
@@ -2530,15 +2529,15 @@ Data will be pulled from backplane VPD if IS DIMMs present.</description>
<platInit/>
<odmVisable/>
</attribute>
--->
-<attribute>
- <id>ATTR_VPD_DIMM_RCD_IBT</id>
- <targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
+
+ <attribute>
+ <id>ATTR_VPD_DIMM_RCD_IBT</id>
+ <targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
<description>RCD IBT. Used in mss_dram_init and is computed in mss_eff_cnfg. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. Each dimm will have a value.
- creator: mss_eff_cnfg
- consumer: mss_dram_init
- firmware notes: none</description>
+creator: mss_eff_cnfg
+consumer: mss_dram_init
+firmware notes: none</description>
<valueType>uint32</valueType>
<enum>IBT_OFF = 0, IBT_100 = 100, IBT_150 = 150, IBT_200 = 200, IBT_300 = 300</enum>
<odmVisable/>
diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config.C b/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config.C
index fdab9f19b..cce29d178 100644
--- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config.C
+++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config.C
@@ -22,7 +22,7 @@
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: mss_eff_config.C,v 1.48 2014/10/13 22:51:53 asaetow Exp $
+// $Id: mss_eff_config.C,v 1.49 2014/12/01 18:52:15 asaetow Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/
// centaur/working/procedures/ipl/fapi/mss_eff_config.C,v $
//------------------------------------------------------------------------------
@@ -45,10 +45,11 @@
//------------------------------------------------------------------------------
// Version:| Author: | Date: | Comment:
//---------|----------|---------|-----------------------------------------------
-// 1.49 | asaetow |15-OCT-14| Added RDIMM SPD/VPD support for ATTR_EFF_DIMM_RCD_CNTL_WORD_0_15 to take in SPD bits69:76 thru new VPD attribute ATTR_VPD_DIMM_RCD_CNTL_WORD_0_15.
+// 1.49 | asaetow |01-DEC-14| Added RDIMM SPD/VPD support for ATTR_EFF_DIMM_RCD_CNTL_WORD_0_15 to take in SPD bits69:76 thru new VPD attribute ATTR_VPD_DIMM_RCD_CNTL_WORD_0_15.
// | | | Added ATTR_VPD_DIMM_RCD_IBT and ATTR_VPD_DIMM_RCD_OUTPUT_TIMING merge, per meeting with Ken and Dan P.
-// | | | NOTE: DO NOT pickup w/o getMBvpdTermData.C vX.XX or newer. TBD from Dan.C
-// | | | NOTE: DO NOT pickup w/o dimm_spd_attributes.xml v1.40 or newer.
+// | | | NOTE: DO NOT pickup w/o getMBvpdTermData.C v1.18 or newer from Dan.C and Corey.
+// | | | NOTE: DO NOT pickup w/o getMBvpdTermData.H v1.6 or newer from Dan.C and Corey.
+// | | | NOTE: DO NOT pickup w/o dimm_spd_attributes.xml v1.44 or newer.
// | | | NOTE: DO NOT pickup w/o memory_mss_eff_config.xml v1.3 or newer.
// | | | Added hardcode for RC0-DA4=0b0 and RC9-DBA1-DBA0-DA4-DA3=0b00X0, per meeting with Ken and Dan P.
// | | | Changed l_mss_volt to p_l_mss_eff_config_data->mss_volt.
diff --git a/src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt.C b/src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt.C
index 42d2d3cb8..e53be1730 100644
--- a/src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt.C
+++ b/src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt.C
@@ -25,6 +25,11 @@
// $Id: mss_volt.C,v 1.17 2014/11/19 16:29:07 jdsloat Exp $
/* File mss_volt.C created by JEFF SABROWSKI on Fri 21 Oct 2011. */
+//------------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2007
+// *! All Rights Reserved -- Property of IBM
+// *! *** ***
+//------------------------------------------------------------------------------
// *! TITLE : mss_volt.C
// *! DESCRIPTION : Tools for centaur procedures
// *! OWNER NAME : Jacob Sloat (jdsloat@us.ibm.com)
@@ -105,18 +110,18 @@ fapi::ReturnCode mss_volt(std::vector<fapi::Target> & i_targets_memb)
if (l_rc) break;
- l_rc = FAPI_ATTR_GET(ATTR_MSS_VOLT_OVERRIDE, &i_targets_memb[i], l_volt_override);
- if (l_rc) break;
+ l_rc = FAPI_ATTR_GET(ATTR_MSS_VOLT_OVERRIDE, &i_targets_memb[i], l_volt_override);
+ if (l_rc) break;
- // Note if there is an overrride being applied on the domain
- if ( (l_volt_override != fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_NONE) && (l_volt_override_domain == fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_NONE) )
- {
- l_volt_override_domain = l_volt_override;
- }
+ // Note if there is an overrride being applied on the domain
+ if ( (l_volt_override != fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_NONE) && (l_volt_override_domain == fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_NONE) )
+ {
+ l_volt_override_domain = l_volt_override;
+ }
- // Error if our overides are not the same across the domain
- if (l_volt_override_domain != l_volt_override)
- {
+ // Error if our overides are not the same across the domain
+ if (l_volt_override_domain != l_volt_override)
+ {
// this just needs to callout the mismatching memb.
const uint8_t &OVERRIDE_TYPE = l_volt_override;
const uint8_t &OVERRIDE_DOMAIN_TYPE = l_volt_override_domain;
@@ -124,7 +129,7 @@ fapi::ReturnCode mss_volt(std::vector<fapi::Target> & i_targets_memb)
FAPI_ERR("Mismatch volt override request. Domain: 0x%x Current Target Requests: 0x%x", l_volt_override_domain, l_volt_override);
FAPI_SET_HWP_ERROR(l_rc, RC_MSS_VOLT_OVERIDE_MIXING);
fapiLogError(l_rc);
- }
+ }
// Loop through the 2 MBA's
for (uint32_t j=0; j < l_mbaChiplets.size(); j++)
@@ -243,33 +248,33 @@ fapi::ReturnCode mss_volt(std::vector<fapi::Target> & i_targets_memb)
}
- if (l_volt_override != fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_NONE)
- {
- if (l_volt_override == fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_VOLT_135)
- {
- l_selected_dram_voltage = 1350;
- FAPI_INF( "mss_volt_overide being applied. MSS_VOLT_OVERRIDE: 1.35V");
- FAPI_INF( "NOTE: Still checking for violations of tolerated voltage. If DIMMs cannot tolerate, the override will not be applied.");
- }
- else if (l_volt_override == fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_VOLT_120)
- {
- l_selected_dram_voltage = 1200;
- FAPI_INF( "mss_volt_overide being applied. MSS_VOLT_OVERRIDE: 1.20V");
- FAPI_INF( "NOTE: Still checking for violations of tolerated voltage. If DIMMs cannot tolerate, the override will not be applied.");
- }
- else
- {
+ if (l_volt_override != fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_NONE)
+ {
+ if (l_volt_override == fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_VOLT_135)
+ {
+ l_selected_dram_voltage = 1350;
+ FAPI_INF( "mss_volt_overide being applied. MSS_VOLT_OVERRIDE: 1.35V");
+ FAPI_INF( "NOTE: Still checking for violations of tolerated voltage. If DIMMs cannot tolerate, the override will not be applied.");
+ }
+ else if (l_volt_override == fapi::ENUM_ATTR_MSS_VOLT_OVERRIDE_VOLT_120)
+ {
+ l_selected_dram_voltage = 1200;
+ FAPI_INF( "mss_volt_overide being applied. MSS_VOLT_OVERRIDE: 1.20V");
+ FAPI_INF( "NOTE: Still checking for violations of tolerated voltage. If DIMMs cannot tolerate, the override will not be applied.");
+ }
+ else
+ {
const uint8_t &OVERRIDE_TYPE = l_volt_override;
FAPI_ERR("Unknown volt override request. Override Request: 0x%x", l_volt_override);
FAPI_SET_HWP_ERROR(l_rc, RC_MSS_VOLT_OVERIDE_UKNOWN);
fapiLogError(l_rc);
- }
+ }
- }
+ }
else if (l_dram_ddr3_found_flag && ((l_spd_volts_all_dimms & fapi::ENUM_ATTR_SPD_MODULE_NOMINAL_VOLTAGE_OP1_35) == fapi::ENUM_ATTR_SPD_MODULE_NOMINAL_VOLTAGE_OP1_35))
{
l_selected_dram_voltage=1350;
- l_selected_dram_voltage_vpp = DDR3_VPP_VOLT;
+ l_selected_dram_voltage_vpp = DDR3_VPP_VOLT;
}
else if (l_dram_ddr4_found_flag && ((l_spd_volts_all_dimms & fapi::ENUM_ATTR_SPD_MODULE_NOMINAL_VOLTAGE_OP1_2X) == fapi::ENUM_ATTR_SPD_MODULE_NOMINAL_VOLTAGE_OP1_2X))
{
@@ -279,7 +284,7 @@ fapi::ReturnCode mss_volt(std::vector<fapi::Target> & i_targets_memb)
else if ((l_spd_volts_all_dimms & fapi::ENUM_ATTR_SPD_MODULE_NOMINAL_VOLTAGE_NOTOP1_5) != fapi::ENUM_ATTR_SPD_MODULE_NOMINAL_VOLTAGE_NOTOP1_5)
{
l_selected_dram_voltage=1500;
- l_selected_dram_voltage_vpp = DDR3_VPP_VOLT;
+ l_selected_dram_voltage_vpp = DDR3_VPP_VOLT;
}
else
{
@@ -427,7 +432,7 @@ fapi::ReturnCode mss_volt(std::vector<fapi::Target> & i_targets_memb)
FAPI_INF( "mss_volt calculation complete. MSS_VOLT: %d", l_selected_dram_voltage);
if (l_rc) break;
- l_rc = FAPI_ATTR_SET(ATTR_MSS_VOLT_VPP, &i_targets_memb[i], l_selected_dram_voltage_vpp);
+ l_rc = FAPI_ATTR_SET(ATTR_MSS_VOLT_VPP, &i_targets_memb[i], l_selected_dram_voltage_vpp);
FAPI_INF( "mss_volt calculation complete. MSS_VOLT_VPP: %d", l_selected_dram_voltage_vpp);
if (l_rc) break;
diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C b/src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C
index b52512a31..4e4fe0291 100644
--- a/src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C
+++ b/src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C
@@ -26,7 +26,7 @@
/**
* @file getControlCapable.C
*
- * @brief MBvpd accessor for the ATTR_MSS_POWER_CONTROL_CAPABLE attributes
+ * @brief MBvpd accessor for the ATTR_VPD_POWER_CONTROL_CAPABLE attributes
*/
#include <stdint.h>
diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C
index 6a059bb28..54a2443ff 100644
--- a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C
+++ b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C
@@ -22,7 +22,7 @@
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: getMBvpdTermData.C,v 1.17 2014/11/03 16:52:04 cswenson Exp $
+// $Id: getMBvpdTermData.C,v 1.18 2014/11/24 15:47:48 cswenson Exp $
/**
* @file getMBvpdTermData.C
*
@@ -1441,3 +1441,4 @@ fapi::ReturnCode translate_SLEW_RATE (const fapi::MBvpdTermData i_attr,
}
} // extern "C"
+
OpenPOWER on IntegriCloud