diff options
Diffstat (limited to 'config/coreboot')
| -rw-r--r-- | config/coreboot/default/patches/0041-nb-intel-gm45-Make-DDR2-raminit-work.patch | 43 | 
1 files changed, 7 insertions, 36 deletions
| diff --git a/config/coreboot/default/patches/0041-nb-intel-gm45-Make-DDR2-raminit-work.patch b/config/coreboot/default/patches/0041-nb-intel-gm45-Make-DDR2-raminit-work.patch index 2f50be66..30af9273 100644 --- a/config/coreboot/default/patches/0041-nb-intel-gm45-Make-DDR2-raminit-work.patch +++ b/config/coreboot/default/patches/0041-nb-intel-gm45-Make-DDR2-raminit-work.patch @@ -1,7 +1,7 @@ -From 65510f6ea53d6f23f47df69d623810aa87041918 Mon Sep 17 00:00:00 2001 +From 88a9c562b77316f1217139e62425f9af1c351c6f Mon Sep 17 00:00:00 2001  From: Leah Rowe <info@minifree.org>  Date: Tue, 6 Aug 2024 00:50:24 +0100 -Subject: [PATCH 2/3] nb/gm45: Fix Angel's DDR2 RCOMP fix on DDR3 boards +Subject: [PATCH 41/59] nb/gm45: Fix Angel's DDR2 RCOMP fix on DDR3 boards  We add this patch: @@ -27,12 +27,12 @@ Angel's patch, only when DDR3 memory is used.  Signed-off-by: Leah Rowe <info@minifree.org>  --- - src/northbridge/intel/gm45/raminit.c          | 182 ++++++++++-------- + src/northbridge/intel/gm45/raminit.c          | 161 +++++++++---------   .../intel/gm45/raminit_rcomp_calibration.c    |   9 +- - 2 files changed, 104 insertions(+), 87 deletions(-) + 2 files changed, 88 insertions(+), 82 deletions(-)  diff --git a/src/northbridge/intel/gm45/raminit.c b/src/northbridge/intel/gm45/raminit.c -index df8f46fbbc..b051374eaa 100644 +index df8f46fbbc..433db3a68c 100644  --- a/src/northbridge/intel/gm45/raminit.c  +++ b/src/northbridge/intel/gm45/raminit.c  @@ -1117,7 +1117,10 @@ static void dram_program_timings(const int spd_type, const timings_t *const timi @@ -40,43 +40,14 @@ index df8f46fbbc..b051374eaa 100644   			else   				reg = (reg & ~(0xf << 10)) | (3 << 10);  -			reg = (reg & ~(0x7 <<  5)) | (2 << 5); -+			if (sysinfo->spd_type == DDR2) ++			if (spd_type == DDR2)  +				reg = (reg & ~(0x7 <<  5)) | (2 << 5);  +			else  +				reg = (reg & ~(0x7 <<  5)) | (3 << 5);   		} else if (timings->mem_clock != MEM_CLOCK_1067MT) {   			reg = (reg & ~(0x7 << 15)) | ((9 - timings->CAS) << 15);   			reg = (reg & ~(0xf << 10)) | ((timings->CAS - 3) << 10); -@@ -1285,12 +1288,23 @@ static void ddr2_odt_setup(const timings_t *const timings, const int sff) - 		reg = (reg & ~(0x7 << (48 - 32))) | ((timings->CAS - 2) << (48 - 32)); - 		reg = (reg & ~(0xf << (44 - 32))) | (8 << (44 - 32)); - 		reg = (reg & ~(0xf << (40 - 32))) | (7 << (40 - 32)); --		if (timings->mem_clock == MEM_CLOCK_667MT) { --			reg = (reg & ~(0xf << (36 - 32))) | (8 << (36 - 32)); --			reg = (reg & ~(0xf << (32 - 32))) | (8 << (32 - 32)); -+		if (sysinfo->spd_type == DDR2) { -+			if (timings->mem_clock == MEM_CLOCK_667MT) { -+				reg = (reg & ~(0xf << (36 - 32))) | (8 << (36 - 32)); -+				reg = (reg & ~(0xf << (32 - 32))) | (8 << (32 - 32)); -+			} else { -+				reg = (reg & ~(0xf << (36 - 32))) | (9 << (36 - 32)); -+				reg = (reg & ~(0xf << (32 - 32))) | (9 << (32 - 32)); -+			} - 		} else { --			reg = (reg & ~(0xf << (36 - 32))) | (9 << (36 - 32)); --			reg = (reg & ~(0xf << (32 - 32))) | (9 << (32 - 32)); -+			/* DDR3 */ -+			if (timings->mem_clock == MEM_CLOCK_667MT) { -+				reg = (reg & ~(0xf << (36 - 32))) | (4 << (36 - 32)); -+				reg = (reg & ~(0xf << (32 - 32))) | (4 << (32 - 32)); -+			} else { -+				reg = (reg & ~(0xf << (36 - 32))) | (5 << (36 - 32)); -+				reg = (reg & ~(0xf << (32 - 32))) | (5 << (32 - 32)); -+			} - 		} - 		mchbar_write32(CxODT_HIGH(ch), reg); -  -@@ -2209,83 +2223,85 @@ void raminit(sysinfo_t *const sysinfo, const int s3resume) +@@ -2209,83 +2212,85 @@ void raminit(sysinfo_t *const sysinfo, const int s3resume)   		raminit_write_training(timings->mem_clock, dimms, s3resume);   	} | 
