nehalem: Make SPD address map into parameter.

It's mobo dependent.

Change-Id: I7a9ba0fb7374a61178e9282acd8f10098435f1fd
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/5253
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
diff --git a/src/northbridge/intel/nehalem/raminit.c b/src/northbridge/intel/nehalem/raminit.c
index 24c64ee..c5fe8ba 100644
--- a/src/northbridge/intel/nehalem/raminit.c
+++ b/src/northbridge/intel/nehalem/raminit.c
@@ -3810,7 +3810,7 @@
 }
 #endif
 
-void raminit(const int s3resume)
+void raminit(const int s3resume, const u8 *spd_addrmap)
 {
 	unsigned channel, slot, lane, rank;
 	int i;
@@ -3956,10 +3956,10 @@
 					    0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
 					    0x95
 				};
-				if (slot)
+				if (!spd_addrmap[2 * channel + slot])
 					continue;
 				for (try = 0; try < 5; try++) {
-					v = smbus_read_byte(0x50 + channel,
+					v = smbus_read_byte(spd_addrmap[2 * channel + slot],
 							    DEVICE_TYPE);
 					if (v >= 0)
 						break;
@@ -3973,7 +3973,7 @@
 					gav(info.
 					    spd[channel][0][useful_addresses
 							    [addr]] =
-					    smbus_read_byte(0x50 + channel,
+					    smbus_read_byte(spd_addrmap[2 * channel + slot],
 							    useful_addresses
 							    [addr]));
 				if (info.spd[channel][0][DEVICE_TYPE] != 11)