[coreboot-gerrit] Patch set updated for coreboot: i945/raminit.c: correctly write CLKCFG for 945GC

Arthur Heymans (arthur@aheymans.xyz) gerrit at coreboot.org
Sun Oct 9 00:03:45 CEST 2016


Arthur Heymans (arthur at aheymans.xyz) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16940

-gerrit

commit 6025c1943e2a64442c9d8a3a7f309525c9dfdc88
Author: Arthur Heymans <arthur at aheymans.xyz>
Date:   Sat Oct 8 21:37:13 2016 +0200

    i945/raminit.c: correctly write CLKCFG for 945GC
    
    MHCBAR(CLKCFG) was previously incorrectly written by the
    sdram_program_memory_frequency function which required falsely
    limiting the max dram frequency for 945GC.
    
    TESTED on Intel d945gclf (memclock 667 and fsb 533) and
    Gigabyte ga-945gcm-s2l (memclock 667 and fsb 1067)
    
    Change-Id: I520efd69fa09fc9fde87c5301fd81121fde6a700
    Signed-off-by: Arthur Heymans <arthur at aheymans.xyz>
---
 src/northbridge/intel/i945/raminit.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/northbridge/intel/i945/raminit.c b/src/northbridge/intel/i945/raminit.c
index 0b9e95c..f1ad6c2 100644
--- a/src/northbridge/intel/i945/raminit.c
+++ b/src/northbridge/intel/i945/raminit.c
@@ -500,9 +500,6 @@ static void sdram_detect_cas_latency_and_ram_speed(struct sys_info * sysinfo, u8
 	case 667: max_ram_speed = 2; break;
 	}
 
-	if (fsbclk() == 533)
-		max_ram_speed = 1;
-
 	sysinfo->memory_frequency = 0;
 	sysinfo->cas = 0;
 
@@ -2084,6 +2081,7 @@ static void sdram_program_memory_frequency(struct sys_info *sysinfo)
 {
 	u32 clkcfg;
 	u8 reg8;
+	u8 offset = IS_ENABLED(CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GM) ? 1 : 0;
 
 	printk(BIOS_DEBUG, "Setting Memory Frequency... ");
 
@@ -2105,9 +2103,9 @@ static void sdram_program_memory_frequency(struct sys_info *sysinfo)
 	}
 
 	switch (sysinfo->memory_frequency) {
-	case 400: clkcfg |= (2 << 4); break;
-	case 533: clkcfg |= (3 << 4); break;
-	case 667: clkcfg |= (4 << 4); break;
+	case 400: clkcfg |= ((1 + offset) << 4); break;
+	case 533: clkcfg |= ((2 + offset) << 4); break;
+	case 667: clkcfg |= ((3 + offset) << 4); break;
 	default: die("Target Memory Frequency Error");
 	}
 



More information about the coreboot-gerrit mailing list