From 06029fd46fa0cfb7d21a7810b7bec6a77fa77243 Mon Sep 17 00:00:00 2001 From: Jacob Harvey Date: Tue, 19 Sep 2017 14:14:56 -0500 Subject: [PATCH] Change training advance check Change the check to check for fails that exceed ECC This will handle the DDR_PHY fir popping on every training Change-Id: Ifff4c542c620846954acbc0d9d909053233fb2e7 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46447 Tested-by: FSP CI Jenkins Dev-Ready: JACOB L. HARVEY Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: Louis Stermole Reviewed-by: ANDRE A. MARIN Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46479 Reviewed-by: Hostboot Team Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: William G. Hoffa --- .../hwp/memory/p9_mss_draminit_training_adv.C | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_training_adv.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_training_adv.C index ae3cd643cfc..98df4c3c071 100644 --- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_training_adv.C +++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_training_adv.C @@ -134,12 +134,15 @@ extern "C" { bool l_cal_fail = false; + // l_fails is used to see if we need to rerun training. + // The other vector, l_fails, will be used to store errors across all of the ports std::vector l_temp_fails; + FAPI_TRY( mss::setup_and_execute_cal(p, rp, l_cal_steps_enabled, l_cal_abort_on_error) ); FAPI_TRY( mss::find_and_log_cal_errors(p, rp, l_cal_abort_on_error, l_cal_fail, l_temp_fails) ); // If we got a fail, let's ignore the previous fails and run backup pattern - if (l_cal_fail) + if (l_temp_fails.size() != 0) { l_cal_fail = false; @@ -163,8 +166,9 @@ extern "C" FAPI_TRY( mss::setup_and_execute_cal(p, rp, l_cal_steps_enabled, l_cal_abort_on_error) ); FAPI_TRY( mss::find_and_log_cal_errors(p, rp, l_cal_abort_on_error, l_cal_fail, l_fails) ); - // If l_cal_fail == true here, error out - if (l_cal_fail) + // Fail out for now. + // TK should restore values here + if (l_fails.size() != 0) { fapi2::Target l_dimm;