summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <tpearson@raptorengineeringinc.com>2016-04-27 12:46:57 -0500
committerTimothy Pearson <tpearson@raptorengineeringinc.com>2016-04-28 20:04:54 +0200
commit09e3bfbd8b886f9c4803271bcd87db15fdb89ab6 (patch)
treeeaf1733d4d4edf054df327c3cd4c698b8f502dcf
parent8f407f695ec9fa2aa52e3685a8f225f03dfecc1d (diff)
downloadcoreboot-09e3bfbd8b886f9c4803271bcd87db15fdb89ab6.tar.gz
coreboot-09e3bfbd8b886f9c4803271bcd87db15fdb89ab6.tar.bz2
coreboot-09e3bfbd8b886f9c4803271bcd87db15fdb89ab6.zip
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> Reviewed-on: https://review.coreboot.org/14529 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com> Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r--src/northbridge/amd/amdmct/mct_ddr3/mct_d.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
index 284e8906cc02..bea67b255296 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;