diff options
author | Sven Schnelle <svens@stackframe.org> | 2011-02-21 09:39:17 +0000 |
---|---|---|
committer | Sven Schnelle <svens@stackframe.org> | 2011-02-21 09:39:17 +0000 |
commit | 541269bc85b7d63b7660cd299e70335a52d5fdf4 (patch) | |
tree | 5494ba16137a9830a8a5a9bb3ccd5c856f7962e6 /src/northbridge/intel/i945/raminit.h | |
parent | 0c8e664713d4dc726bedb5ba0b2e356eed9ae14c (diff) |
[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 <svens@stackframe.org>
Acked-by: Patrick Georgi <patrick@georgi-clan.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6374 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/northbridge/intel/i945/raminit.h')
-rw-r--r-- | src/northbridge/intel/i945/raminit.h | 3 |
1 files changed, 2 insertions, 1 deletions
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); |