[coreboot-gerrit] Patch set updated for coreboot: nb/intel/sandybridge/raminit: Reset internal state on fallback attempts

Patrick Rudolph (siro@das-labor.org) gerrit at coreboot.org
Sat Nov 19 16:16:57 CET 2016


Patrick Rudolph (siro at das-labor.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17471

-gerrit

commit bc62dfbc5c4b91ffe90aca2583ff46534eb2c354
Author: Patrick Rudolph <siro at das-labor.org>
Date:   Wed Nov 16 18:06:50 2016 +0100

    nb/intel/sandybridge/raminit: Reset internal state on fallback attempts
    
    Some methods like discover_402x assume an clear state.
    Should fix fallback attempt raminit failures.
    
    Change-Id: I7a6fe044c17f5e0dbfa0e9b9d2aed0c3b6ae3972
    Signed-off-by: Patrick Rudolph <siro at das-labor.org>
---
 src/northbridge/intel/sandybridge/raminit.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/northbridge/intel/sandybridge/raminit.c b/src/northbridge/intel/sandybridge/raminit.c
index a07e8a1..5d4adb9 100644
--- a/src/northbridge/intel/sandybridge/raminit.c
+++ b/src/northbridge/intel/sandybridge/raminit.c
@@ -4216,8 +4216,6 @@ void init_dram_ddr3(spd_raw_data *spds, int mobile, int min_tck,
 		halt();
 	}
 
-	memset(&ctrl, 0, sizeof(ctrl));
-
 	early_pch_init_native();
 	early_thermal_init();
 
@@ -4266,6 +4264,8 @@ void init_dram_ddr3(spd_raw_data *spds, int mobile, int min_tck,
 		}
 	}
 	if (!fast_boot) {
+		/* Reset internal state */
+		memset(&ctrl, 0, sizeof(ctrl));
 		ctrl.mobile = mobile;
 		ctrl.tCK = min_tck;
 
@@ -4280,6 +4280,11 @@ void init_dram_ddr3(spd_raw_data *spds, int mobile, int min_tck,
 		printk(BIOS_ERR, "RAM training failed, trying fallback.\n");
 		printram("Disable failing channel.\n");
 
+		/* Reset internal state */
+		memset(&ctrl, 0, sizeof(ctrl));
+		ctrl.mobile = mobile;
+		ctrl.tCK = min_tck;
+
 		/* Reset DDR3 frequency */
 		dram_find_spds_ddr3(spds, &ctrl);
 



More information about the coreboot-gerrit mailing list