From 8d0bb9d30bd0794ba572ad50238d13c18c9c0aef Mon Sep 17 00:00:00 2001 From: Stephen Glancy Date: Thu, 13 Dec 2018 14:08:12 -0600 Subject: Updates MWD_COARSE to run multiple patterns Change-Id: Idc5ea0ddbc7d19ff79d0f802ba966f05bdcc18c3 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69848 Tested-by: FSP CI Jenkins Tested-by: Jenkins Server Reviewed-by: Louis Stermole Reviewed-by: ANDRE A. MARIN Tested-by: HWSV CI Tested-by: PPE CI Tested-by: Hostboot CI Reviewed-by: Jennifer A. Stofer Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69861 Reviewed-by: Daniel M. Crowell Tested-by: Daniel M. Crowell --- .../p9/procedures/hwp/memory/lib/dimm/eff_dimm.C | 25 +++++++++++++++++++++- .../p9/procedures/hwp/memory/lib/dimm/eff_dimm.H | 23 +++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/dimm') diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C index 4181e791e..1968516fc 100755 --- a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C @@ -4578,7 +4578,30 @@ fapi_try_exit: return fapi2::current_err; } -// TK:LRDIMM Update and/or verify all bc## steps below +/// +/// @brief Sets the LRDIMM training pattern +/// @return fapi2::FAPI2_RC_SUCCESS if okay +/// +fapi2::ReturnCode eff_lrdimm::lrdimm_training_pattern() +{ + // Default patterns are taken from experiments + // Patterns were selected for having a good balance of transitions + // We need the temporary variable due to how FAPI_ATTR_SET works + uint8_t l_default_patterns[NUM_LRDIMM_TRAINING_PATTERNS] = + { + 0x2b, + 0x3c, + 0x96, + 0x35, + 0x6a, + }; + + FAPI_TRY( FAPI_ATTR_SET(fapi2::ATTR_MSS_LRDIMM_TRAINING_PATTERN, iv_mcs, l_default_patterns) ); + +fapi_try_exit: + return fapi2::current_err; +} + /// /// @brief Determines & sets effective config for DIMM BC00 /// @return fapi2::FAPI2_RC_SUCCESS if okay diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.H b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.H index 693e14a8b..656a061c5 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2018 */ +/* Contributors Listed Below - COPYRIGHT 2016,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -872,6 +872,12 @@ class eff_dimm /// virtual fapi2::ReturnCode dram_rtt_park() = 0; + /// + /// @brief Sets the LRDIMM training pattern + /// @return fapi2::FAPI2_RC_SUCCESS if okay + /// + virtual fapi2::ReturnCode lrdimm_training_pattern() = 0; + /// /// @brief Determines and sets DIMM BC00 /// @return fapi2::FAPI2_RC_SUCCESS if okay @@ -1122,6 +1128,12 @@ class eff_lrdimm : public eff_dimm /// virtual fapi2::ReturnCode dram_odic() final; + /// + /// @brief Sets the LRDIMM training pattern + /// @return fapi2::FAPI2_RC_SUCCESS if okay + /// + virtual fapi2::ReturnCode lrdimm_training_pattern() final; + /// /// @brief Determines and sets DIMM BC00 /// @return fapi2::FAPI2_RC_SUCCESS if okay @@ -1436,6 +1448,15 @@ class eff_rdimm : public eff_dimm /// virtual fapi2::ReturnCode dram_odic() final; + /// + /// @brief Sets the LRDIMM training pattern + /// @return fapi2::FAPI2_RC_SUCCESS if okay + /// + fapi2::ReturnCode lrdimm_training_pattern() + { + return fapi2::FAPI2_RC_SUCCESS; + } + /// /// @brief Determines and sets DIMM BC00 /// @return fapi2::FAPI2_RC_SUCCESS if okay -- cgit v1.2.1