blob: 126d918e1702e8ee50c95b4d3842267351431094 [file] [log] [blame]
Bill Hoffa4c5a7592019-01-14 09:06:44 -06001From daab9055723d6cde608b0ea9bb2318ebb0594e0e Mon Sep 17 00:00:00 2001
2From: Louis Stermole <stermole@us.ibm.com>
3Date: Fri, 4 Jan 2019 10:26:21 -0500
4Subject: [PATCH] Fix RC09 ODT errors on Nimbus dual-drop configs
5
6Change-Id: Icefa3c20102627e8819b8f8738bb143d7156d3bb
7CQ:SW452278
8Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70096
9Reviewed-by: Michael D. Pardeik <pardeik@us.ibm.com>
10Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
11Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
12Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
13Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com>
14Dev-Ready: Louis Stermole <stermole@us.ibm.com>
15Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
16---
17 .../p9/procedures/hwp/memory/p9_mss_eff_config.C | 19 +++++++++++++++++--
18 1 file changed, 17 insertions(+), 2 deletions(-)
19
20diff --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
21index 6b078f9..7b40852 100755
22--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C
23+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C
24@@ -5,7 +5,7 @@
25 /* */
26 /* OpenPOWER HostBoot Project */
27 /* */
28-/* Contributors Listed Below - COPYRIGHT 2015,2018 */
29+/* Contributors Listed Below - COPYRIGHT 2015,2019 */
30 /* [+] International Business Machines Corp. */
31 /* */
32 /* */
33@@ -88,6 +88,8 @@ fapi2::ReturnCode p9_mss_eff_config( const fapi2::Target<fapi2::TARGET_TYPE_MCS>
34 "Unable to decode VPD for %s", mss::c_str(i_target) );
35 }
36
37+ // First we process the ODIC and ODT values since we need these initialized for both DIMM
38+ // on a port if we're in a dual-drop config
39 for( const auto& l_spd : l_spd_facades )
40 {
41 const auto l_dimm = l_spd.get_dimm_target();
42@@ -96,7 +98,7 @@ fapi2::ReturnCode p9_mss_eff_config( const fapi2::Target<fapi2::TARGET_TYPE_MCS>
43 FAPI_TRY( mss::eff_dimm::factory( l_spd, l_eff_dimm),
44 "Failed factory for %s", mss::c_str(l_dimm));
45
46- FAPI_INF("Running eff_config on %s", mss::c_str(l_dimm) );
47+ FAPI_INF("Setting up ODIC and ODT attributes on %s", mss::c_str(l_dimm) );
48
49 FAPI_TRY( l_eff_dimm->dram_odic(),
50 "Failed dram_odic for %s", mss::c_str(l_dimm) );
51@@ -104,6 +106,19 @@ fapi2::ReturnCode p9_mss_eff_config( const fapi2::Target<fapi2::TARGET_TYPE_MCS>
52 "Failed odt_wr for %s", mss::c_str(l_dimm) );
53 FAPI_TRY( l_eff_dimm->odt_rd(),
54 "Failed odt_rd for %s", mss::c_str(l_dimm) );
55+ }
56+
57+ // Now we continue with the remainder of eff_config
58+ for( const auto& l_spd : l_spd_facades )
59+ {
60+ const auto l_dimm = l_spd.get_dimm_target();
61+
62+ std::shared_ptr<mss::eff_dimm> l_eff_dimm;
63+ FAPI_TRY( mss::eff_dimm::factory( l_spd, l_eff_dimm),
64+ "Failed factory for %s", mss::c_str(l_dimm));
65+
66+ FAPI_INF("Running eff_config on %s", mss::c_str(l_dimm) );
67+
68 FAPI_TRY( l_eff_dimm->rcd_mfg_id(),
69 "Failed rcd_mfg_id for %s", mss::c_str(l_dimm) );
70 FAPI_TRY( l_eff_dimm->register_type(),
71--
721.8.2.2
73