summaryrefslogtreecommitdiff
path: root/src/northbridge
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2017-02-27 16:27:21 +0100
committerNico Huber <nico.h@gmx.de>2017-05-08 14:40:04 +0200
commitddc88286979ebce24320f1fc44ba881ea8fdf114 (patch)
tree9361ff4dd8217ae3523510cf1b77346725356a61 /src/northbridge
parent0edf5dc331d427758fc6c72f176e019ede06fb92 (diff)
downloadcoreboot-ddc88286979ebce24320f1fc44ba881ea8fdf114.tar.xz
nb/x4x/raminit.c: Remove ME locking code
This code ought not to run if ME is disabled. It also prohibits writing to some GMCH regs like GGC bit1. Intel ® 4 Series Chipset Family datasheet refers to this as "ME stolen Memory lock" without actually describing this functionality. Change-Id: Iaa8646e535e13c44c010ccd434a5af954cf7dfbc Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/18513 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src/northbridge')
-rw-r--r--src/northbridge/intel/x4x/raminit_ddr2.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/northbridge/intel/x4x/raminit_ddr2.c b/src/northbridge/intel/x4x/raminit_ddr2.c
index eca7189145..35caaa6b73 100644
--- a/src/northbridge/intel/x4x/raminit_ddr2.c
+++ b/src/northbridge/intel/x4x/raminit_ddr2.c
@@ -2106,15 +2106,19 @@ void raminit_ddr2(struct sysinfo *s)
printk(BIOS_DEBUG, "Done power settings\n");
// ME related
- if (RANK_IS_POPULATED(s->dimms, 0, 0)
- || RANK_IS_POPULATED(s->dimms, 1, 0)) {
- MCHBAR8(0xa2f) = MCHBAR8(0xa2f) | (1 << 0);
+ /*
+ * FIXME: This locks some registers like bit1 of GGC
+ * and is only needed in case of ME being used.
+ */
+ if (ME_UMA_SIZEMB != 0) {
+ if (RANK_IS_POPULATED(s->dimms, 0, 0)
+ || RANK_IS_POPULATED(s->dimms, 1, 0))
+ MCHBAR8(0xa2f) = MCHBAR8(0xa2f) | (1 << 0);
+ if (RANK_IS_POPULATED(s->dimms, 0, 1)
+ || RANK_IS_POPULATED(s->dimms, 1, 1))
+ MCHBAR8(0xa2f) = MCHBAR8(0xa2f) | (1 << 1);
+ MCHBAR32(0xa30) = MCHBAR32(0xa30) | (1 << 26);
}
- if (RANK_IS_POPULATED(s->dimms, 0, 1)
- || RANK_IS_POPULATED(s->dimms, 1, 1)) {
- MCHBAR8(0xa2f) = MCHBAR8(0xa2f) | (1 << 1);
- }
- MCHBAR32(0xa30) = MCHBAR32(0xa30) | (1 << 26);
printk(BIOS_DEBUG, "Done ddr2\n");
}