diff options
author | Richard J. Knight <rjknight@us.ibm.com> | 2014-12-05 11:19:19 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-12-13 10:39:23 -0600 |
commit | 597e79a3055b155af20d6d64ade2fd2e95699954 (patch) | |
tree | 9b1577bef631b0acae7105958169e7796bd4ad1c | |
parent | 212a11e8f24dae439cf9189762546079bbf40fb1 (diff) | |
download | blackbird-hostboot-597e79a3055b155af20d6d64ade2fd2e95699954.tar.gz blackbird-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>
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" + |