diff options
author | Louis Stermole <stermole@us.ibm.com> | 2019-01-04 10:26:21 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-01-18 10:59:19 -0600 |
commit | 856a7adf6b5097bd4b9bce7a491ebff32fce8803 (patch) | |
tree | a1452d050f072ce9e8506036a08899475571ea47 /src/import/chips/p9/procedures | |
parent | b5c6e0b3b0d4d570246cdb6215d93de955da474f (diff) | |
download | talos-hostboot-856a7adf6b5097bd4b9bce7a491ebff32fce8803.tar.gz talos-hostboot-856a7adf6b5097bd4b9bce7a491ebff32fce8803.zip |
Fix RC09 ODT errors on Nimbus dual-drop configs
Change-Id: Icefa3c20102627e8819b8f8738bb143d7156d3bb
CQ:SW452278
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70096
Reviewed-by: Michael D. Pardeik <pardeik@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com>
Dev-Ready: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70102
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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures')
-rwxr-xr-x | src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C index 6b078f902..7b40852ff 100755 --- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C +++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2018 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -88,6 +88,8 @@ fapi2::ReturnCode p9_mss_eff_config( const fapi2::Target<fapi2::TARGET_TYPE_MCS> "Unable to decode VPD for %s", mss::c_str(i_target) ); } + // First we process the ODIC and ODT values since we need these initialized for both DIMM + // on a port if we're in a dual-drop config for( const auto& l_spd : l_spd_facades ) { const auto l_dimm = l_spd.get_dimm_target(); @@ -96,7 +98,7 @@ fapi2::ReturnCode p9_mss_eff_config( const fapi2::Target<fapi2::TARGET_TYPE_MCS> FAPI_TRY( mss::eff_dimm::factory( l_spd, l_eff_dimm), "Failed factory for %s", mss::c_str(l_dimm)); - FAPI_INF("Running eff_config on %s", mss::c_str(l_dimm) ); + FAPI_INF("Setting up ODIC and ODT attributes on %s", mss::c_str(l_dimm) ); FAPI_TRY( l_eff_dimm->dram_odic(), "Failed dram_odic for %s", mss::c_str(l_dimm) ); @@ -104,6 +106,19 @@ fapi2::ReturnCode p9_mss_eff_config( const fapi2::Target<fapi2::TARGET_TYPE_MCS> "Failed odt_wr for %s", mss::c_str(l_dimm) ); FAPI_TRY( l_eff_dimm->odt_rd(), "Failed odt_rd for %s", mss::c_str(l_dimm) ); + } + + // Now we continue with the remainder of eff_config + for( const auto& l_spd : l_spd_facades ) + { + const auto l_dimm = l_spd.get_dimm_target(); + + std::shared_ptr<mss::eff_dimm> l_eff_dimm; + FAPI_TRY( mss::eff_dimm::factory( l_spd, l_eff_dimm), + "Failed factory for %s", mss::c_str(l_dimm)); + + FAPI_INF("Running eff_config on %s", mss::c_str(l_dimm) ); + FAPI_TRY( l_eff_dimm->rcd_mfg_id(), "Failed rcd_mfg_id for %s", mss::c_str(l_dimm) ); FAPI_TRY( l_eff_dimm->register_type(), |