Author: rminnich
Date: 2008-09-16 05:21:29 +0200 (Tue, 16 Sep 2008)
New Revision: 862
Modified:
coreboot-v3/northbridge/amd/k8/dqs.c
Log:
Make debug conditional.
Signed-off-by: Ronald G. Minnich <rminnich(a)gmail.com>
Acked-by: Ronald G. Minnich <rminnich(a)gmail.com>
Modified: coreboot-v3/northbridge/amd/k8/dqs.c
===================================================================
--- coreboot-v3/northbridge/amd/k8/dqs.c 2008-09-07 17:18:10 UTC (rev 861)
+++ coreboot-v3/northbridge/amd/k8/dqs.c 2008-09-16 03:21:29 UTC (rev 862)
@@ -39,7 +39,7 @@
yhlu 2005.10 dqs training
*/
//0: mean no debug info
-#define DQS_TRAIN_DEBUG 1
+#define DQS_TRAIN_DEBUG 0
// always undef this. We only support F2 and later.
#undef K8_REV_F_SUPPORT_F0_F1_WORKAROUND
@@ -74,7 +74,9 @@
static inline void print_debug_dqs_tsc_x(const char *str, unsigned i, unsigned val, unsigned val2)
{
- printk(BIOS_DEBUG, "%s[%02x]=%08x%08x\n", str, i, val, val2);
+ if(DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "%s[%02x]=%08x%08x\n", str, i, val, val2);
+ }
}
@@ -593,16 +595,22 @@
}
}
- printk(BIOS_DEBUG, "\nTrainRcvEn: 0 ctrl 0x%x %d\n", ctrl->node_id, 0);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\nTrainRcvEn: 0 ctrl 0x%x %d\n", ctrl->node_id, 0);
+ }
- printk(BIOS_DEBUG, "TrainRcvEn: buf_a:0x%x\n", *buf_a);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "TrainRcvEn: buf_a:0x%x\n", *buf_a);
+ }
Errors = 0;
/* for each channel */
CTLRMaxDelay = 0;
for(channel = 0; (channel < 2) && (!Errors); channel++)
{
- printk(BIOS_DEBUG, "\tTrainRcvEn51: channel 0x%x %d\n",channel, 1);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\tTrainRcvEn51: channel 0x%x %d\n",channel, 1);
+ }
/* for each rank */
/* there are four recriver pairs, loosely associated with CS */
@@ -611,7 +619,9 @@
unsigned index=(receiver>>1) * 3 + 0x10;
- printk(BIOS_DEBUG, "\t\tTrainRcvEn52: index 0x%x %d\n", index, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainRcvEn52: index 0x%x %d\n", index, 2);
+ }
if(is_Width128) {
if(channel) {
@@ -645,7 +655,9 @@
two_ranks = 0;
}
- printk(BIOS_DEBUG, "\t\tTrainRcvEn53: TestAddr0B 0x%lx %d\n", TestAddr0B, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainRcvEn53: TestAddr0B 0x%lx %d\n", TestAddr0B, 2);
+ }
Write1LTestPattern(TestAddr0, 0, buf_a, buf_b); // rank0 of dimm, test p0
Write1LTestPattern(TestAddr0B, 1, buf_a, buf_b); //rank0 of dimm, test p1
@@ -662,7 +674,9 @@
}
while ( RcvrEnDly < 0xaf) { // Sweep Delay value here
- printk(BIOS_DEBUG, "\t\t\tTrainRcvEn541: RcvrEnDly 0x%x %d\n", RcvrEnDly, 3);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\tTrainRcvEn541: RcvrEnDly 0x%x %d\n", RcvrEnDly, 3);
+ }
if(RcvrEnDly & 1) {
/* Odd steps get another pattern such that even
@@ -703,7 +717,9 @@
ResetDCTWrPtr(ctrl);
- printk(BIOS_DEBUG, "\t\t\tTrainRcvEn542: Test0 0x%x %d\n", Test0, 3);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\tTrainRcvEn542: Test0 0x%x %d\n", Test0, 3);
+ }
if(Test0 == DQS_PASS) {
@@ -713,7 +729,9 @@
ResetDCTWrPtr(ctrl);
- printk(BIOS_DEBUG, "\t\t\tTrainRcvEn543: Test1 0x%x %d\n", Test1, 3);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\tTrainRcvEn543: Test1 0x%x %d\n", Test1, 3);
+ }
if(Test1 == DQS_PASS) {
if(two_ranks) {
@@ -732,7 +750,9 @@
CurrTest = DQS_PASS;
}
}
- printk(BIOS_DEBUG, "\t\t\tTrainRcvEn544: Test0 0x%x %d\n", Test0, 3);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\tTrainRcvEn544: Test0 0x%x %d\n", Test0, 3);
+ }
}
else {
CurrTest = DQS_PASS;
@@ -740,7 +760,9 @@
}
}
- printk(BIOS_DEBUG, "\t\t\tTrainRcvEn55: RcvrEnDly 0x%x %d\n", RcvrEnDly, 3);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\tTrainRcvEn55: RcvrEnDly 0x%x %d\n", RcvrEnDly, 3);
+ }
if(CurrTest == DQS_PASS) {
if(LastTest == DQS_FAIL) {
@@ -761,13 +783,17 @@
TestAddr1 = TestAddr1B;
TestAddr1B = tmp;
- printk(BIOS_DEBUG, "\t\t\tTrainRcvEn56: RcvrEnDly 0x%x %d\n", RcvrEnDly, 3);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\tTrainRcvEn56: RcvrEnDly 0x%x %d\n", RcvrEnDly, 3);
+ }
RcvrEnDly++;
} // while RcvrEnDly
- printk(BIOS_DEBUG, "\t\tTrainRcvEn61: RcvrEnDly 0x%x %d\n", RcvrEnDly, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainRcvEn61: RcvrEnDly 0x%x %d\n", RcvrEnDly, 2);
+ }
if(RcvrEnDlyRmin == 0xaf) {
//no passing window
@@ -814,18 +840,24 @@
}
}
- printk(BIOS_DEBUG, "\t\tTrainRcvEn63: RcvrEnDly 0x%x %d\n", RcvrEnDly, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainRcvEn63: RcvrEnDly 0x%x %d\n", RcvrEnDly, 2);
+ }
if(RcvrEnDly > CTLRMaxDelay) {
CTLRMaxDelay = RcvrEnDly;
}
- printk(BIOS_DEBUG, "\t\tTrainRcvEn64: CTLRMaxDelay 0x%x %d\n", CTLRMaxDelay, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainRcvEn64: CTLRMaxDelay 0x%x %d\n", CTLRMaxDelay, 2);
+ }
} /* receiver */
} /* channel */
- printk(BIOS_DEBUG, "\tTrainRcvEn65: CTLRMaxDelay 0x%x %d\n", CTLRMaxDelay, 1);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\tTrainRcvEn65: CTLRMaxDelay 0x%x %d\n", CTLRMaxDelay, 1);
+ }
/* Program the MaxAsysncLat field with the largest DQS Receiver Enable setting */
SetMaxAL_RcvrDly(ctrl, CTLRMaxDelay);
@@ -857,7 +889,9 @@
#if MEM_TRAIN_SEQ != 1
/* We need tidy output for type 1 */
- printk(BIOS_DEBUG, " CTLRMaxDelay=%02x", CTLRMaxDelay);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, " CTLRMaxDelay=%02x", CTLRMaxDelay);
+ }
#endif
return (CTLRMaxDelay==0xae)?1:0;
@@ -1101,7 +1135,9 @@
bytelane++;
bytelane &= 0x7;
}
- printk(BIOS_DEBUG, "\t\t\t\t\t\tbitmap = 0x%x %d\n", bitmap, 7);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\t\t\tbitmap = 0x%x %d\n", bitmap, 7);
+ }
if(bytelane == 0) {
if(pattern == 1) { //dual channel
@@ -1139,46 +1175,68 @@
Errors = 0;
BanksPresent = 0;
- printk(BIOS_DEBUG, "\t\t\tTrainDQSPos begin 0x%x %d\n", 0, 3);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\tTrainDQSPos begin 0x%x %d\n", 0, 3);
+ }
- printk(BIOS_DEBUG, "TrainDQSPos: MutualCSPassW[48] : 0x%x\n", *MutualCSPassW);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "TrainDQSPos: MutualCSPassW[48] : 0x%x\n", *MutualCSPassW);
+ }
for(DQSDelay=0; DQSDelay<48; DQSDelay++) {
MutualCSPassW[DQSDelay] = 0xff; // Bitmapped status per delay setting, 0xff=All positions passing (1= PASS)
}
for(ChipSel = 0; ChipSel < 8; ChipSel++) { //logical register chipselects 0..7
- printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 11 ChipSel 0x%x %d\n", ChipSel, 4);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 11 ChipSel 0x%x %d\n", ChipSel, 4);
+ }
//FIXME: process 64MUXedMode
if(!ChipSelPresent(ctrl, ChipSel, sysinfo)) continue;
BanksPresent = 1;
TestAddr = Get_MCTSysAddr(ctrl, ChipSel, sysinfo);
- printk(BIOS_DEBUG,"\t\t\t\tTrainDQSPos: 12 TestAddr 0x%x %d\n", TestAddr, 4);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG,"\t\t\t\tTrainDQSPos: 12 TestAddr 0x%x %d\n", TestAddr, 4);
+ }
//set fs and use fs prefix to access the mem
set_FSBASE(TestAddr>>24);
if(Direction == DQS_READDIR) {
- printk(BIOS_DEBUG,"\t\t\t\tTrainDQSPos: 13 for read so write at first %d %d\n", 0, 4);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG,"\t\t\t\tTrainDQSPos: 13 for read so write at first %d %d\n", 0, 4);
+ }
WriteDQSTestPattern(TestAddr<<8, Pattern, buf_a);
}
for(DQSDelay = 0; DQSDelay < 48; DQSDelay++ ){
- printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 141 DQSDelay 0x%x %d\n", DQSDelay, 5);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 141 DQSDelay 0x%x %d\n", DQSDelay, 5);
+ }
if(MutualCSPassW[DQSDelay] == 0) continue; //skip current delay value if other chipselects have failed all 8 bytelanes
SetDQSDelayAllCSR(ctrl, channel, Direction, DQSDelay);
- printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 142 MutualCSPassW 0x%x %d\n", MutualCSPassW[DQSDelay], 5);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 142 MutualCSPassW 0x%x %d\n", MutualCSPassW[DQSDelay], 5);
+ }
if(Direction == DQS_WRITEDIR) {
- printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 143 for write 0x%x %d\n", 0, 5);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 143 for write 0x%x %d\n", 0, 5);
+ }
WriteDQSTestPattern(TestAddr<<8, Pattern, buf_a);
}
- printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 144 Pattern 0x%x %d\n", Pattern, 5);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 144 Pattern 0x%x %d\n", Pattern, 5);
+ }
ReadDQSTestPattern(TestAddr<<8, Pattern);
- printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 145 MutualCSPassW 0x%x %d\n", MutualCSPassW[DQSDelay], 5);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 145 MutualCSPassW 0x%x %d\n", MutualCSPassW[DQSDelay], 5);
+ }
MutualCSPassW[DQSDelay] &= CompareDQSTestPattern(channel, TestAddr<<8, Pattern, buf_a); //0: fail, 1=pass
- printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 146 MutualCSPassW 0x%x %d\n", MutualCSPassW[DQSDelay], 5);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 146 MutualCSPassW 0x%x %d\n", MutualCSPassW[DQSDelay], 5);
+ }
SetTargetWTIO(TestAddr);
FlushDQSTestPattern(TestAddr<<8, Pattern);
ResetTargetWTIO();
@@ -1187,7 +1245,9 @@
if(BanksPresent)
for(ByteLane = 0; ByteLane < 8; ByteLane++) {
- printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 31 ByteLane 0x%x %d\n",ByteLane, 4);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 31 ByteLane 0x%x %d\n",ByteLane, 4);
+ }
LastTest = DQS_FAIL;
RnkDlySeqPassMax = 0;
@@ -1196,8 +1256,10 @@
for(DQSDelay=0; DQSDelay<48; DQSDelay++) {
if(MutualCSPassW[DQSDelay] & (1<<ByteLane)) {
- printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 321 DQSDelay 0x%x %d\n", DQSDelay, 5);
- printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 322 MutualCSPassW 0x%x %d\n", MutualCSPassW[DQSDelay], 5);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 321 DQSDelay 0x%x %d\n", DQSDelay, 5);
+ printk(BIOS_DEBUG, "\t\t\t\t\tTrainDQSPos: 322 MutualCSPassW 0x%x %d\n", MutualCSPassW[DQSDelay], 5);
+ }
RnkDlySeqPassMax = DQSDelay;
if(LastTest == DQS_FAIL) {
@@ -1213,21 +1275,27 @@
LastTest = DQS_FAIL;
}
}
- printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 33 RnkDlySeqPassMax 0x%x %d\n", RnkDlySeqPassMax, 4);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 33 RnkDlySeqPassMax 0x%x %d\n", RnkDlySeqPassMax, 4);
+ }
if(RnkDlySeqPassMax == 0) {
Errors |= SB_NODQSPOS; // no passing window
}
else {
- printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 34 RnkDlyFilterMax 0x%x %d\n", RnkDlyFilterMax, 4);
- printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 34 RnkDlyFilterMin 0x%x %d\n", RnkDlyFilterMin, 4);
- if((RnkDlyFilterMax - RnkDlyFilterMin)< MIN_DQS_WNDW){
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 34 RnkDlyFilterMax 0x%x %d\n", RnkDlyFilterMax, 4);
+
+ printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 34 RnkDlyFilterMin 0x%x %d\n", RnkDlyFilterMin, 4);
+ }
+ if((RnkDlyFilterMax - RnkDlyFilterMin)< MIN_DQS_WNDW){
Errors |= SB_SMALLDQS;
}
else {
unsigned middle_dqs;
middle_dqs = MiddleDQS(RnkDlyFilterMin, RnkDlyFilterMax);
- printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 35 middle_dqs 0x%x %d\n",middle_dqs, 4);
+ if (DQS_TRAIN_DEBUG)
+ printk(BIOS_DEBUG, "\t\t\t\tTrainDQSPos: 35 middle_dqs 0x%x %d\n",middle_dqs, 4);
SetDQSDelayCSR(ctrl, channel, ByteLane, Direction, middle_dqs);
save_dqs_delay(channel, ByteLane, Direction, dqs_delay_a, middle_dqs);
}
@@ -1235,7 +1303,9 @@
}
- printk(BIOS_DEBUG, "\t\t\tTrainDQSPos: end 0x%x %d\n", 0xff, 3);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\t\tTrainDQSPos: end 0x%x %d\n", 0xff, 3);
+ }
return Errors;
@@ -1244,13 +1314,17 @@
static unsigned TrainReadDQS(const struct mem_controller *ctrl, unsigned channel, unsigned pattern, u8 *buf_a, u8 *dqs_delay_a, struct sys_info *sysinfo)
{
- printk(BIOS_DEBUG, "\t\tTrainReadPos 0x%x %d\n", 0, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainReadPos 0x%x %d\n", 0, 2);
+ }
return TrainDQSPos(ctrl, channel, DQS_READDIR, pattern, buf_a, dqs_delay_a, sysinfo);
}
static unsigned TrainWriteDQS(const struct mem_controller *ctrl, unsigned channel, unsigned pattern, u8 *buf_a, u8 *dqs_delay_a, struct sys_info *sysinfo)
{
- printk(BIOS_DEBUG, "\t\tTrainWritePos 0x%x %d\n", 0, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainWritePos 0x%x %d\n", 0, 2);
+ }
return TrainDQSPos(ctrl, channel, DQS_WRITEDIR, pattern, buf_a, dqs_delay_a, sysinfo);
}
@@ -1412,30 +1486,42 @@
}
- printk(BIOS_DEBUG, "\nTrainDQSRdWrPos: 0 ctrl 0x%x %d\n", ctrl->node_id, 0);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\nTrainDQSRdWrPos: 0 ctrl 0x%x %d\n", ctrl->node_id, 0);
- printk(BIOS_DEBUG, "TrainDQSRdWrPos: buf_a: %02x\n", *buf_a);
+ printk(BIOS_DEBUG, "TrainDQSRdWrPos: buf_a: %02x\n", *buf_a);
+ }
Errors = 0;
channel = 0;
while( (channel<2) && (!Errors)) {
- printk(BIOS_DEBUG, "\tTrainDQSRdWrPos: 1 channel 0x%x %d\n",channel, 1);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\tTrainDQSRdWrPos: 1 channel 0x%x %d\n",channel, 1);
+ }
for(DQSWrDelay = 0; DQSWrDelay < 48; DQSWrDelay++) {
unsigned err;
SetDQSDelayAllCSR(ctrl, channel, DQS_WRITEDIR, DQSWrDelay);
- printk(BIOS_DEBUG, "\t\tTrainDQSRdWrPos: 21 DQSWrDelay 0x%x %d\n", DQSWrDelay, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainDQSRdWrPos: 21 DQSWrDelay 0x%x %d\n", DQSWrDelay, 2);
+ }
err= TrainReadDQS(ctrl, channel, pattern, buf_a, dqs_delay_a, sysinfo);
- printk(BIOS_DEBUG, "\t\tTrainDQSRdWrPos: 22 err 0x%x %d\n",err, 2);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\t\tTrainDQSRdWrPos: 22 err 0x%x %d\n",err, 2);
+ }
if(err == 0) break;
Errors |= err;
}
- printk(BIOS_DEBUG, "\tTrainDQSRdWrPos: 3 DQSWrDelay 0x%x %d\n", DQSWrDelay, 1);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\tTrainDQSRdWrPos: 3 DQSWrDelay 0x%x %d\n", DQSWrDelay, 1);
+ }
if(DQSWrDelay < 48) {
Errors = TrainWriteDQS(ctrl, channel, pattern, buf_a, dqs_delay_a, sysinfo);
- printk(BIOS_DEBUG, "\tTrainDQSRdWrPos: 4 Errors 0x%x %d\n", Errors, 1);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\tTrainDQSRdWrPos: 4 Errors 0x%x %d\n", Errors, 1);
+ }
}
channel++;
@@ -1458,7 +1544,9 @@
//restore SSE2 setting
disable_sse2();
- printk(BIOS_DEBUG, "TrainDQSRdWrPos: 0x%x %d\n", 5, 0);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "TrainDQSRdWrPos: 0x%x %d\n", 5, 0);
+ }
return Errors;
@@ -1531,17 +1619,23 @@
static unsigned train_DqsRcvrEn(const struct mem_controller *ctrl, unsigned Pass, struct sys_info *sysinfo)
{
- printk(BIOS_DEBUG, "\ntrain_DqsRcvrEn: begin ctrl 0x%x %d\n", ctrl->node_id, 0);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\ntrain_DqsRcvrEn: begin ctrl 0x%x %d\n", ctrl->node_id, 0);
+ }
if(TrainRcvrEn(ctrl, Pass, sysinfo)) {
return 1;
}
- printk(BIOS_DEBUG, "\ntrain_DqsRcvrEn: end ctrl 0x%x %d\n", ctrl->node_id, 0);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\ntrain_DqsRcvrEn: end ctrl 0x%x %d\n", ctrl->node_id, 0);
+ }
return 0;
}
static unsigned train_DqsPos(const struct mem_controller *ctrl, struct sys_info *sysinfo)
{
- printk(BIOS_DEBUG, "\ntrain_DqsPos: begin ctrl %d\n", ctrl->node_id);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\ntrain_DqsPos: begin ctrl %d\n", ctrl->node_id);
+ }
if(TrainDQSRdWrPos(ctrl, sysinfo) != 0) {
printk(BIOS_ERR, "\nDQS Training Rd Wr failed ctrl %d\n", ctrl->node_id);
return 1;
@@ -1549,7 +1643,9 @@
else {
SetEccDQSRdWrPos(ctrl, sysinfo);
}
- printk(BIOS_DEBUG, "\ntrain_DqsPos: end ctrl 0x%x %d\n", ctrl->node_id, 0);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "\ntrain_DqsPos: end ctrl 0x%x %d\n", ctrl->node_id, 0);
+ }
return 0;
}
@@ -1561,7 +1657,9 @@
unsigned cpu_f0_f1[8];
int i;
- printk(BIOS_DEBUG, "dqs_timing: tsc1[8] :0x%llx", tsc1);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "dqs_timing: tsc1[8] :0x%llx", tsc1);
+ }
for(i = 0; i < controllers; i++) {
if (!sysinfo->ctrl_present[i])
@@ -1706,12 +1804,14 @@
}
sizek = 1 << align;
#if MEM_TRAIN_SEQ != 1
- printk(BIOS_DEBUG, "Setting variable MTRR %d, base: %4ldMB, range: %4ldMB, type %s\n",
- reg, range_startk >>10, sizek >> 10,
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "Setting variable MTRR %d, base: %4ldMB, range: %4ldMB, type %s\n",
+ reg, range_startk >>10, sizek >> 10,
(type==MTRR_TYPE_UNCACHEABLE)?"UC":
((type==MTRR_TYPE_WRBACK)?"WB":"Other")
);
-#endif
+ }
+ #endif
set_var_mtrr_dqs(reg++, range_startk, sizek, type, address_bits);
range_startk += sizek;
range_sizek -= sizek;
@@ -1859,9 +1959,13 @@
/* Skip everything if I don't have any memory on this controller */
if(sysinfo->meminfo[i].dimm_mask==0x00) continue;
- printk(BIOS_DEBUG, "DQS Training:RcvrEn:Pass1: %d", i);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "DQS Training:RcvrEn:Pass1: %d", i);
+ }
if(train_DqsRcvrEn(ctrl+i, 1, sysinfo)) goto out;
- printk(BIOS_DEBUG, " done\n");
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, " done\n");
+ }
}
tsc[1] = cycles();
@@ -1877,9 +1981,13 @@
/* Skip everything if I don't have any memory on this controller */
if(sysinfo->meminfo[i].dimm_mask==0x00) continue;
- printk(BIOS_DEBUG, "DQS Training:DQSPos: %d", i);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "DQS Training:DQSPos: %d", i);
+ }
if(train_DqsPos(ctrl+i, sysinfo)) goto out;
- printk(BIOS_DEBUG, " done\n");
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, " done\n");
+ }
}
tsc[3] = cycles();
@@ -1890,9 +1998,13 @@
/* Skip everything if I don't have any memory on this controller */
if(sysinfo->meminfo[i].dimm_mask==0x00) continue;
- printk(BIOS_DEBUG, "DQS Training:RcvrEn:Pass2: %d", i);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "DQS Training:RcvrEn:Pass2: %d", i);
+ }
if(train_DqsRcvrEn(ctrl+i, 2, sysinfo)) goto out;
- printk(BIOS_DEBUG, " done\n");
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, " done\n");
+ }
sysinfo->mem_trained[i]=1;
}
@@ -1933,7 +2045,9 @@
if(v) {
tsc[0] = cycles();
- printk(BIOS_DEBUG, "set DQS timing:RcvrEn:Pass1: 0x%x\n", i);
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "set DQS timing:RcvrEn:Pass1: 0x%x\n", i);
+ }
}
if(train_DqsRcvrEn(ctrl, 1, sysinfo)) {
sysinfo->mem_trained[i]=0x81; //
@@ -1941,9 +2055,13 @@
}
if(v) {
- printk(BIOS_DEBUG, " done\n");
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, " done\n");
+ }
tsc[1] = cycles();
- printk(BIOS_DEBUG, "set DQS timing:DQSPos: ");
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, "set DQS timing:DQSPos: ");
+ }
print_debug_hex8(i);
}
@@ -1956,7 +2074,9 @@
printk(BIOS_DEBUG, " done\n");
tsc[2] = cycles();
+ if (DQS_TRAIN_DEBUG) {
printk(BIOS_DEBUG, "set DQS timing:RcvrEn:Pass2: ");
+ }
print_debug_hex8(i);
}
if(train_DqsRcvrEn(ctrl, 2, sysinfo)){
@@ -1965,7 +2085,9 @@
}
if(v) {
- printk(BIOS_DEBUG, " done\n");
+ if (DQS_TRAIN_DEBUG) {
+ printk(BIOS_DEBUG, " done\n");
+ }
tsc[3] = cycles();
}
@@ -2016,7 +2138,8 @@
#endif
set_top_mem_ap(sysinfo->tom_k, sysinfo->tom2_k); // keep the ap's tom consistent with bsp's
#if CONFIG_AP_CODE_IN_CAR == 0
- printk(BIOS_DEBUG, "CODE IN ROM AND RUN ON NODE:"); print_debug_hex8(nodeid); printk(BIOS_DEBUG, "\n");
+ printk(BIOS_DEBUG, "CODE IN ROM AND RUN ON NODE: %d\n", nodeid);
+
train_ram(nodeid, sysinfo, sysinfox);
#else
/* Can copy dqs_timing to ap cache and run from cache?