From 21407ef5012141424473c7df5839dc4ab9ab662a Mon Sep 17 00:00:00 2001 From: Stephen Glancy Date: Thu, 14 Dec 2017 13:48:31 -0600 Subject: Fixes WR LVL terminations Disables Qoff (DQ outputs) during write leveling for ranks that are not being calibrated and puts those ranks into WR LVL mode. This solves SI issues related to DQ termination, by only terminating the DQS. Change-Id: I0214554c7e11b4268f5ca92c476363a861f1b842 CQ:SW412938 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/50960 Dev-Ready: STEPHEN GLANCY Tested-by: FSP CI Jenkins Reviewed-by: Louis Stermole Tested-by: Jenkins Server Tested-by: HWSV CI Tested-by: Hostboot CI Reviewed-by: ANDRE A. MARIN Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/50968 Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Daniel M. Crowell --- .../p9/procedures/hwp/memory/lib/phy/mss_training.C | 17 ++++++++++++++++- .../p9/procedures/hwp/memory/lib/phy/mss_training.H | 12 ++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/phy') diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/mss_training.C b/src/import/chips/p9/procedures/hwp/memory/lib/phy/mss_training.C index 06131bd61..6f0ba4e72 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/mss_training.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/mss_training.C @@ -48,6 +48,7 @@ #include #include #include +#include #include #include @@ -201,6 +202,13 @@ fapi2::ReturnCode wr_lvl::pre_workaround( const fapi2::Target> steps_factory(const fapi2::buffer& if(i_cal_steps.getBit()) { FAPI_INF("Write leveling is enabled"); - l_steps.push_back(std::make_shared()); + l_steps.push_back(std::make_shared(i_sim)); } // INITIAL_PAT_WR diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/mss_training.H b/src/import/chips/p9/procedures/hwp/memory/lib/phy/mss_training.H index 69372ef85..3ae5e3365 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/mss_training.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/mss_training.H @@ -301,11 +301,16 @@ class wr_lvl : public phy_step public: /// /// @brief Base constructor + /// @param[in] i_sim - true if in simulation mode /// - wr_lvl() : - phy_step( fapi2::buffer().setBit(), "WR_LVL") + wr_lvl(const bool i_sim) : + phy_step( fapi2::buffer().setBit(), "WR_LVL"), + iv_sim(i_sim) {} + // Delete the default constructor + wr_lvl() = delete; + /// /// @brief Default destructor /// @@ -339,6 +344,9 @@ class wr_lvl : public phy_step /// @return l_cycles - the number of cycles a given calibration step wil take /// uint64_t calculate_cycles( const fapi2::Target& i_target ) const; + + private: + bool iv_sim; }; /// -- cgit v1.2.1