From 541269bc85b7d63b7660cd299e70335a52d5fdf4 Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Mon, 21 Feb 2011 09:39:17 +0000 Subject: [i945] Add SPD adress mapping The current code works only with dual channel if Channel 0 uses SPD address 0x50/0x51, while the second channel has to use 0x52/0x53. For hardware that uses other addresses (like the ThinkPad X60) this means we get only one module running instead of both. This patch adds a second parameter to sdram_initialize, which is an array with 2 * DIMM_SOCKETS members. It should contain the SPD addresses for every single DIMM socket. If NULL is given as the second parameter, the code uses the old addressing scheme. Signed-off-by: Sven Schnelle Acked-by: Patrick Georgi git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6374 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/northbridge/intel/i945/raminit.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/northbridge/intel/i945/raminit.h') diff --git a/src/northbridge/intel/i945/raminit.h b/src/northbridge/intel/i945/raminit.h index ede194cce8..4f77e8efe3 100644 --- a/src/northbridge/intel/i945/raminit.h +++ b/src/northbridge/intel/i945/raminit.h @@ -63,11 +63,12 @@ struct sys_info { u8 banks[2 * DIMM_SOCKETS]; u8 banksize[2 * 2 * DIMM_SOCKETS]; + const u8 *spd_addresses; } __attribute__ ((packed)); void receive_enable_adjust(struct sys_info *sysinfo); -void sdram_initialize(int boot_path); +void sdram_initialize(int boot_path, const u8 *sdram_addresses); unsigned long get_top_of_ram(void); int fixup_i945_errata(void); void udelay(u32 us); -- cgit v1.2.3