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>
This commit is contained in:
parent
2ab8ec7cfb
commit
902626c23c
|
@ -207,6 +207,7 @@ void main(unsigned long bist)
|
|||
{
|
||||
u32 reg32;
|
||||
int s3resume = 0;
|
||||
const u8 spd_addrmap[4] = { 0x50, 0, 0x51, 0 };
|
||||
|
||||
timestamp_init(rdtsc ());
|
||||
|
||||
|
@ -286,7 +287,7 @@ void main(unsigned long bist)
|
|||
|
||||
timestamp_add_now(TS_BEFORE_INITRAM);
|
||||
|
||||
raminit(s3resume);
|
||||
raminit(s3resume, spd_addrmap);
|
||||
|
||||
timestamp_add_now(TS_AFTER_INITRAM);
|
||||
|
||||
|
|
|
@ -3810,7 +3810,7 @@ set_fsb_frequency (void)
|
|||
}
|
||||
#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 @@ void raminit(const int s3resume)
|
|||
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 @@ void raminit(const int s3resume)
|
|||
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)
|
||||
|
|
|
@ -22,6 +22,13 @@
|
|||
|
||||
#include "nehalem.h"
|
||||
|
||||
void raminit(int s3resume);
|
||||
/* spd_addrmap is array of 4 elements:
|
||||
Channel 0 Slot 0
|
||||
Channel 0 Slot 1
|
||||
Channel 1 Slot 0
|
||||
Channel 1 Slot 1
|
||||
0 means "not present"
|
||||
*/
|
||||
void raminit(const int s3resume, const u8 *spd_addrmap);
|
||||
|
||||
#endif /* RAMINIT_H */
|
||||
|
|
Loading…
Reference in New Issue