summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2018-06-14 10:53:51 +0200
committerArthur Heymans <arthur@aheymans.xyz>2018-06-17 14:17:31 +0000
commitdf946b8696731cda45a7e37e934307c3153b824f (patch)
treee77ebc5be723b0f65b0bb99660ae0d736ebab11e
parent76f7b79fb8d05e34ae247b77408a342a89ccf11b (diff)
nb/intel/x4x: Issue a hard reset with empty MRC cache on warm reset
The dram controller cannot fully initialize the dram on warm reset (receive enable calibration consistently fails) therefore requiring cached timings. This option is mostly useful when rebooting after having flashed a new rom which overwrites the mrc cache region. Change-Id: I405c0eca076fe081641ede9a670f734c98cbf8fc Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/27100 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
-rw-r--r--src/northbridge/intel/x4x/raminit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/northbridge/intel/x4x/raminit.c b/src/northbridge/intel/x4x/raminit.c
index d41b74c8db..9d37ada38f 100644
--- a/src/northbridge/intel/x4x/raminit.c
+++ b/src/northbridge/intel/x4x/raminit.c
@@ -653,6 +653,11 @@ void sdram_initialize(int boot_path, const u8 *spd_map)
/* Failed S3 resume, reset to come up cleanly */
outb(0x6, 0xcf9);
halt();
+ } else if (boot_path == BOOT_PATH_WARM_RESET) {
+ /* On warm reset some of dram calibrations fail
+ and therefore requiring valid cached settings */
+ outb(0xe, 0xcf9);
+ halt();
}
ctrl_cached = NULL;
} else {