diff options
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C | 18 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/shared/mss_const.H | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C b/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C index 89e4be5ee..316d7dc9b 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C @@ -38,6 +38,11 @@ #include <mss.H> #include <lib/ccs/ccs.H> #include <lib/fir/check.H> +#include <lib/phy/mss_lrdimm_training.H> + +#ifdef LRDIMM_CAPABLE + #include <lib/workarounds/quad_encode_workarounds.H> +#endif using fapi2::TARGET_TYPE_MCBIST; using fapi2::TARGET_TYPE_MCA; @@ -335,6 +340,19 @@ fapi2::ReturnCode execute( const fapi2::Target<TARGET_TYPE_MCBIST>& i_target, } } +#if LRDIMM_CAPABLE + + if(mss::workarounds::contains_command_mrs(i_program.iv_instructions)) + { + // Get ranks in pair bombs out if we can't get any ranks in this pair, so we should be safe here + for (const auto& p : i_ports) + { + FAPI_TRY(mss::workarounds::fix_shadow_register_corruption(p)); + } + } + +#endif + fapi_try_exit: i_program.iv_instructions.clear(); return fapi2::current_err; diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/shared/mss_const.H b/src/import/chips/p9/procedures/hwp/memory/lib/shared/mss_const.H index db61b8afb..bf84c1662 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/shared/mss_const.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/shared/mss_const.H @@ -207,6 +207,7 @@ enum ffdc_function_codes // LR helper functions FINE_RECORDER_ADD_RESULTS = 119, FINE_RECORDER_FIND_EYE = 120, + FIX_SHADOW_REGISTER = 121, // LR training function DWL_CALL_OUT = 130, |