|
|
@ -1150,50 +1150,50 @@ static void program_codt(unsigned long *dimm_populated, |
|
|
|
if (dimm_type == SDRAM_DDR2) { |
|
|
|
if (dimm_type == SDRAM_DDR2) { |
|
|
|
codt |= SDRAM_CODT_DQS_1_8_V_DDR2; |
|
|
|
codt |= SDRAM_CODT_DQS_1_8_V_DDR2; |
|
|
|
if ((total_dimm == 1) && (firstSlot == TRUE)) { |
|
|
|
if ((total_dimm == 1) && (firstSlot == TRUE)) { |
|
|
|
if (total_rank == 1) { |
|
|
|
if (total_rank == 1) { /* PUUU */ |
|
|
|
codt |= CALC_ODT_R(0); |
|
|
|
codt |= CALC_ODT_R(0); |
|
|
|
modt0 = CALC_ODT_W(0); |
|
|
|
modt0 = CALC_ODT_W(0); |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt2 = 0x00000000; |
|
|
|
modt2 = 0x00000000; |
|
|
|
modt3 = 0x00000000; |
|
|
|
modt3 = 0x00000000; |
|
|
|
} |
|
|
|
} |
|
|
|
if (total_rank == 2) { |
|
|
|
if (total_rank == 2) { /* PPUU */ |
|
|
|
codt |= CALC_ODT_R(0) | CALC_ODT_R(1); |
|
|
|
codt |= CALC_ODT_R(0) | CALC_ODT_R(1); |
|
|
|
modt0 = CALC_ODT_W(0); |
|
|
|
modt0 = CALC_ODT_W(0) | CALC_ODT_W(1); |
|
|
|
modt1 = CALC_ODT_W(0); |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt2 = 0x00000000; |
|
|
|
modt2 = 0x00000000; |
|
|
|
modt3 = 0x00000000; |
|
|
|
modt3 = 0x00000000; |
|
|
|
} |
|
|
|
} |
|
|
|
} else if ((total_dimm == 1) && (firstSlot != TRUE)) { |
|
|
|
} else if ((total_dimm == 1) && (firstSlot != TRUE)) { |
|
|
|
if (total_rank == 1) { |
|
|
|
if (total_rank == 1) { /* UUPU */ |
|
|
|
codt |= CALC_ODT_R(2); |
|
|
|
codt |= CALC_ODT_R(2); |
|
|
|
modt0 = 0x00000000; |
|
|
|
modt0 = 0x00000000; |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt2 = CALC_ODT_W(2); |
|
|
|
modt2 = CALC_ODT_W(2); |
|
|
|
modt3 = 0x00000000; |
|
|
|
modt3 = 0x00000000; |
|
|
|
} |
|
|
|
} |
|
|
|
if (total_rank == 2) { |
|
|
|
if (total_rank == 2) { /* UUPP */ |
|
|
|
codt |= CALC_ODT_R(2) | CALC_ODT_R(3); |
|
|
|
codt |= CALC_ODT_R(2) | CALC_ODT_R(3); |
|
|
|
modt0 = 0x00000000; |
|
|
|
modt0 = 0x00000000; |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt2 = CALC_ODT_W(2); |
|
|
|
modt2 = CALC_ODT_W(2) | CALC_ODT_W(3); |
|
|
|
modt3 = CALC_ODT_W(2); |
|
|
|
modt3 = 0x00000000; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (total_dimm == 2) { |
|
|
|
if (total_dimm == 2) { |
|
|
|
if (total_rank == 2) { |
|
|
|
if (total_rank == 2) { /* PUPU */ |
|
|
|
codt |= CALC_ODT_R(0) | CALC_ODT_R(2); |
|
|
|
codt |= CALC_ODT_R(0) | CALC_ODT_R(2); |
|
|
|
modt0 = CALC_ODT_RW(2); |
|
|
|
modt0 = CALC_ODT_RW(2); |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt2 = CALC_ODT_RW(0); |
|
|
|
modt2 = CALC_ODT_RW(0); |
|
|
|
modt3 = 0x00000000; |
|
|
|
modt3 = 0x00000000; |
|
|
|
} |
|
|
|
} |
|
|
|
if (total_rank == 4) { |
|
|
|
if (total_rank == 4) { /* PPPP */ |
|
|
|
codt |= CALC_ODT_R(0) | CALC_ODT_R(1) | |
|
|
|
codt |= CALC_ODT_R(0) | CALC_ODT_R(1) | |
|
|
|
CALC_ODT_R(2) | CALC_ODT_R(3); |
|
|
|
CALC_ODT_R(2) | CALC_ODT_R(3); |
|
|
|
modt0 = CALC_ODT_RW(2); |
|
|
|
modt0 = CALC_ODT_RW(2) | CALC_ODT_RW(3); |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt1 = 0x00000000; |
|
|
|
modt2 = CALC_ODT_RW(0); |
|
|
|
modt2 = CALC_ODT_RW(0) | CALC_ODT_RW(1); |
|
|
|
modt3 = 0x00000000; |
|
|
|
modt3 = 0x00000000; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|