Timothy Pearson (tpearson@raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14529
-gerrit
commit ab8a702250d8f042a0b7322b93571bdcf3067193 Author: Timothy Pearson tpearson@raptorengineeringinc.com Date: Wed Apr 27 12:46:57 2016 -0500
nb/amd/mct_ddr3: Restart system on training failure instead of using die()
DIMM training can sporadically fail due to external influences or various errata. In these cases, restarting to retry training is a more appropriate response than halting the system and requiring manual intervention.
Change-Id: Id49f7419f56e0640a84448cc06ecbaf62bed145e Signed-off-by: Timothy Pearson tpearson@raptorengineeringinc.com --- src/northbridge/amd/amdmct/mct_ddr3/mct_d.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c index 284e890..bea67b2 100644 --- a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c +++ b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c @@ -32,6 +32,8 @@ * supported. */
+#include <reset.h> + // #define DEBUG_DIMM_SPD 1
static u8 ReconfigureDIMMspare_D(struct MCTStatStruc *pMCTstat, @@ -3685,7 +3687,8 @@ retry_dqs_training_and_levelization:
if (pDCTstat->NodePresent) { if (pDCTstat->TrainErrors & (1 << SB_FatalError)) { - die("DIMM training FAILED! Halting system."); + printk(BIOS_ERR, "DIMM training FAILED! Restarting system..."); + soft_reset(); } if (pDCTstat->TrainErrors & (1 << SB_RetryConfigTrain)) { retry_requested = 1;