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>
This commit is contained in:
parent
8f407f695e
commit
09e3bfbd8b
|
@ -32,6 +32,8 @@
|
||||||
* supported.
|
* supported.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <reset.h>
|
||||||
|
|
||||||
// #define DEBUG_DIMM_SPD 1
|
// #define DEBUG_DIMM_SPD 1
|
||||||
|
|
||||||
static u8 ReconfigureDIMMspare_D(struct MCTStatStruc *pMCTstat,
|
static u8 ReconfigureDIMMspare_D(struct MCTStatStruc *pMCTstat,
|
||||||
|
@ -3685,7 +3687,8 @@ retry_dqs_training_and_levelization:
|
||||||
|
|
||||||
if (pDCTstat->NodePresent) {
|
if (pDCTstat->NodePresent) {
|
||||||
if (pDCTstat->TrainErrors & (1 << SB_FatalError)) {
|
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)) {
|
if (pDCTstat->TrainErrors & (1 << SB_RetryConfigTrain)) {
|
||||||
retry_requested = 1;
|
retry_requested = 1;
|
||||||
|
|
Loading…
Reference in New Issue