From 09e3bfbd8b886f9c4803271bcd87db15fdb89ab6 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Wed, 27 Apr 2016 12:46:57 -0500 Subject: 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 Reviewed-on: https://review.coreboot.org/14529 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth Tested-by: Raptor Engineering Automated Test Stand Reviewed-by: Paul Menzel --- src/northbridge/amd/amdmct/mct_ddr3/mct_d.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c index 284e8906cc..bea67b2552 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 + // #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; -- cgit v1.2.3