nb/intel/ironlake: Correct even more replay issues
The per-lane registers need to be modified in some cases. Also, MRC does not have any delay after the loop, so remove it. Tested on out-of-tree HP 630, still boots. Change-Id: If02e171d2e999f4a5be5b43ecc5aafe8ca092951 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/49585 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
a8b82717ee
commit
3d35756d5a
|
@ -3458,15 +3458,18 @@ void raminit(const int s3resume, const u8 *spd_addrmap)
|
|||
write_1d0(0x0, 0xeb, 3, 1);
|
||||
write_1d0(0x0, 0xf3, 6, 1);
|
||||
|
||||
for (channel = 0; channel < NUM_CHANNELS; channel++)
|
||||
for (lane = 0; lane < 9; lane++) {
|
||||
u16 addr = 0x125 + get_lane_offset(0, 0, lane);
|
||||
u8 a;
|
||||
a = read_500(&info, channel, addr, 6); // = 0x20040080 //!!!!
|
||||
write_500(&info, channel, a, addr, 6, 1);
|
||||
}
|
||||
for (channel = 0; channel < NUM_CHANNELS; channel++) {
|
||||
u8 a = 0;
|
||||
if (info.populated_ranks[channel][0][1] && info.clock_speed_index > 1)
|
||||
a = 3;
|
||||
if (info.silicon_revision == 0 || info.silicon_revision == 1)
|
||||
a = 3;
|
||||
|
||||
udelay(1000);
|
||||
for (lane = 0; lane < 9; lane++) {
|
||||
const u16 addr = 0x125 + get_lane_offset(0, 0, lane);
|
||||
rmw_500(&info, channel, addr, 6, 0xf, a);
|
||||
}
|
||||
}
|
||||
|
||||
if (s3resume) {
|
||||
if (info.cached_training == NULL) {
|
||||
|
|
Loading…
Reference in New Issue