aboutsummaryrefslogtreecommitdiff
path: root/src/northbridge/intel/sandybridge/raminit_common.c
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2017-10-31 11:36:55 +0100
committerFelix Held <felix-coreboot@felixheld.de>2018-07-26 14:11:38 +0000
commit652c491917dce44be6fe0bdce475824af3d43c87 (patch)
treeb680131d04445d73a70282fe2a7e95d7ca904705 /src/northbridge/intel/sandybridge/raminit_common.c
parent8ba9e8cf63f92902cdb71eb5c4d3b3ea579380f4 (diff)
nb/intel/sandybridge/raminit: Fix PDWN_mode on desktops
On desktop boards the PPD bit of MRS register MR0 is set and thus DLL_Off mode shouldn't be used, as enforced by datasheet 2nd-gen-core-family-mobile-vol-2-datasheet chapter 2.17.1. Change-Id: Ic42f2ff3e719636be67b00fa37155939cd2e17de Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/22260 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Diffstat (limited to 'src/northbridge/intel/sandybridge/raminit_common.c')
-rw-r--r--src/northbridge/intel/sandybridge/raminit_common.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/northbridge/intel/sandybridge/raminit_common.c b/src/northbridge/intel/sandybridge/raminit_common.c
index 3e769ec5a4..44f7f6d82c 100644
--- a/src/northbridge/intel/sandybridge/raminit_common.c
+++ b/src/northbridge/intel/sandybridge/raminit_common.c
@@ -3202,7 +3202,14 @@ void final_registers(ramctr_timing * ctrl)
write32(DEFAULT_MCHBAR + 0x400c, (read32(DEFAULT_MCHBAR + 0x400c) & 0xFFFFCFFF) | 0x1000); // OK
write32(DEFAULT_MCHBAR + 0x440c, (read32(DEFAULT_MCHBAR + 0x440c) & 0xFFFFCFFF) | 0x1000); // OK
- write32(DEFAULT_MCHBAR + 0x4cb0, 0x00000740);
+
+ if (ctrl->mobile)
+ /* APD - DLL Off, 64 DCLKs until idle, decision per rank */
+ MCHBAR32(PM_PDWN_Config) = 0x00000740;
+ else
+ /* APD - PPD, 64 DCLKs until idle, decision per rank */
+ MCHBAR32(PM_PDWN_Config) = 0x00000340;
+
write32(DEFAULT_MCHBAR + 0x4380, 0x00000aaa); // OK
write32(DEFAULT_MCHBAR + 0x4780, 0x00000aaa); // OK
write32(DEFAULT_MCHBAR + 0x4f88, 0x5f7003ff); // OK