From 7c2e5396a3d47c64eb5a553fe412aad4c0f8dc1b Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Sun, 24 Jul 2016 03:28:42 +1000 Subject: nb/intel/x4x: Fix CAS latency detection and max memory detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now hardcode maximum memory frequency capability to 800MHz, as all chipsets in x4x family support PC2-6400 according to the datasheet. CAS latency detection also relies on this, and has been cleaned up. Ram initialization does not work with FSB 1333MHz / DDR2 800MHz combination, so disable this combination for now, and reduce to 667MHz instead. Still don't know why this is the case, but FSB1333/667 works. These changes should now allow existing configurations to continue working, while providing support for previously unworking configurations, due to previous buggy CAS latency detection code. TESTED: on GA-G41M-ES2L CPU: E5200 @ 2.50GHz (FSB 800MHz) 2x 1GB 667MHz hynix worked @ 667 1x 2GB 800Mhz ARAM worked @ 800 1x 1GB 667Mhz StarRam worked @ 667 2x 2GB 800Mhz (generic) worked @ 800 Change-Id: I1ddd7827ee6fe3d4162ba0546f738a8f9decdf93 Signed-off-by: Damien Zammit Reviewed-on: https://review.coreboot.org/15818 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki --- src/northbridge/intel/x4x/raminit_ddr2.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/northbridge/intel/x4x/raminit_ddr2.c') diff --git a/src/northbridge/intel/x4x/raminit_ddr2.c b/src/northbridge/intel/x4x/raminit_ddr2.c index 5acb12736b..5d457e6de1 100644 --- a/src/northbridge/intel/x4x/raminit_ddr2.c +++ b/src/northbridge/intel/x4x/raminit_ddr2.c @@ -293,11 +293,10 @@ static void launch_ddr2(struct sysinfo *s) if (s->selected_timings.CAS == 5) { launch2 = 0x00220201; - } else if ((s->selected_timings.mem_clk == MEM_CLOCK_800MHz) && - (s->selected_timings.CAS == 6)) { + } else if (s->selected_timings.CAS == 6) { launch2 = 0x00230302; } else { - die("Unsupported CAS & Frequency combination detected\n"); + die("Unsupported CAS\n"); } FOR_EACH_POPULATED_CHANNEL(s->dimms, i) { -- cgit v1.2.3