nb/intel/sandybridge: Remove unnecessary per-rank loops
The IOSAV_By_BW_MASK_ch registers are not per-rank. To preserve original behavior, use a for-populated-channels loop instead of for-all-channels. Tested on Asus P8H61-M PRO, still boots. Change-Id: I6db35c41cd05420ceaeda93255f5ed73598a5bdd Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47609 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
parent
4c79f93082
commit
50a6fe73c6
|
@ -1403,7 +1403,7 @@ int read_training(ramctr_timing *ctrl)
|
||||||
FOR_ALL_POPULATED_CHANNELS {
|
FOR_ALL_POPULATED_CHANNELS {
|
||||||
program_timings(ctrl, channel);
|
program_timings(ctrl, channel);
|
||||||
}
|
}
|
||||||
FOR_ALL_CHANNELS FOR_ALL_POPULATED_RANKS FOR_ALL_LANES {
|
FOR_ALL_POPULATED_CHANNELS FOR_ALL_LANES {
|
||||||
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2030,7 +2030,7 @@ int write_training(ramctr_timing *ctrl)
|
||||||
precharge(ctrl);
|
precharge(ctrl);
|
||||||
printram("CPF\n");
|
printram("CPF\n");
|
||||||
|
|
||||||
FOR_ALL_CHANNELS FOR_ALL_POPULATED_RANKS FOR_ALL_LANES {
|
FOR_ALL_POPULATED_CHANNELS FOR_ALL_LANES {
|
||||||
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2053,7 +2053,7 @@ int write_training(ramctr_timing *ctrl)
|
||||||
FOR_ALL_POPULATED_CHANNELS
|
FOR_ALL_POPULATED_CHANNELS
|
||||||
program_timings(ctrl, channel);
|
program_timings(ctrl, channel);
|
||||||
|
|
||||||
FOR_ALL_CHANNELS FOR_ALL_POPULATED_RANKS FOR_ALL_LANES {
|
FOR_ALL_POPULATED_CHANNELS FOR_ALL_LANES {
|
||||||
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2470,7 +2470,7 @@ int read_mpr_training(ramctr_timing *ctrl)
|
||||||
program_timings(ctrl, channel);
|
program_timings(ctrl, channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
FOR_ALL_CHANNELS FOR_ALL_POPULATED_RANKS FOR_ALL_LANES {
|
FOR_ALL_POPULATED_CHANNELS FOR_ALL_LANES {
|
||||||
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2604,7 +2604,7 @@ int discover_edges_write(ramctr_timing *ctrl)
|
||||||
FOR_ALL_POPULATED_CHANNELS
|
FOR_ALL_POPULATED_CHANNELS
|
||||||
program_timings(ctrl, channel);
|
program_timings(ctrl, channel);
|
||||||
|
|
||||||
FOR_ALL_CHANNELS FOR_ALL_POPULATED_RANKS FOR_ALL_LANES {
|
FOR_ALL_POPULATED_CHANNELS FOR_ALL_LANES {
|
||||||
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3095,7 +3095,7 @@ void final_registers(ramctr_timing *ctrl)
|
||||||
|
|
||||||
void restore_timings(ramctr_timing *ctrl)
|
void restore_timings(ramctr_timing *ctrl)
|
||||||
{
|
{
|
||||||
int channel, slotrank, lane;
|
int channel, lane;
|
||||||
|
|
||||||
FOR_ALL_POPULATED_CHANNELS {
|
FOR_ALL_POPULATED_CHANNELS {
|
||||||
MCHBAR32(TC_RAP_ch(channel)) =
|
MCHBAR32(TC_RAP_ch(channel)) =
|
||||||
|
@ -3114,7 +3114,7 @@ void restore_timings(ramctr_timing *ctrl)
|
||||||
wait_for_iosav(channel);
|
wait_for_iosav(channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
FOR_ALL_CHANNELS FOR_ALL_POPULATED_RANKS FOR_ALL_LANES {
|
FOR_ALL_POPULATED_CHANNELS FOR_ALL_LANES {
|
||||||
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
MCHBAR32(IOSAV_By_BW_MASK_ch(channel, lane)) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue