summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2020-11-17 16:54:01 +0100
committerAngel Pons <th3fanbus@gmail.com>2020-11-20 00:36:06 +0000
commita93f46ebc066931430ae5794af99f0f3cae1d030 (patch)
tree9a065aaf54d471fc39b2005757cf449ecdaa2e82 /src
parent011661cbfb88187b3ddbcab0ecdce978000b1c54 (diff)
downloadcoreboot-a93f46ebc066931430ae5794af99f0f3cae1d030.tar.xz
nb/intel/sandybridge: Restore nominal Vref for current channel
After aggressive read training, program nominal Vref for the current channel, not only channel 0. This simple mistake can easily degrade memory margins, especially when running at high speed (overclocking). Tested on Asus P8H61-M PRO, still boots. Change-Id: I12630fe33c5c786c8ec131c45c27180c3887d354 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47680 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Diffstat (limited to 'src')
-rw-r--r--src/northbridge/intel/sandybridge/raminit_common.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/northbridge/intel/sandybridge/raminit_common.c b/src/northbridge/intel/sandybridge/raminit_common.c
index d9c60e4e5b..b583264002 100644
--- a/src/northbridge/intel/sandybridge/raminit_common.c
+++ b/src/northbridge/intel/sandybridge/raminit_common.c
@@ -2555,7 +2555,8 @@ static int discover_edges_write_real(ramctr_timing *ctrl, int channel, int slotr
}
}
- MCHBAR32(GDCRTRAININGMOD_ch(0)) = 0;
+ /* Restore nominal Vref after training */
+ MCHBAR32(GDCRTRAININGMOD_ch(channel)) = 0;
printram("CPA\n");
return 0;
}