Преглед на файлове

Merge branch 'master' of git://git.denx.de/u-boot-ppc4xx

Wolfgang Denk преди 17 години
родител
ревизия
20a71d93d6
променени са 2 файла, в които са добавени 18 реда и са изтрити 12 реда
  1. 12 12
      cpu/ppc4xx/44x_spd_ddr2.c
  2. 6 0
      include/ppc4xx.h

+ 12 - 12
cpu/ppc4xx/44x_spd_ddr2.c

@@ -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);
-				modt1 = CALC_ODT_W(0);
+				modt0 = CALC_ODT_W(0) | CALC_ODT_W(1);
+				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);
-				modt3 = CALC_ODT_W(2);
+				modt2 = CALC_ODT_W(2) | CALC_ODT_W(3);
+				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;
 			}
 			}
 		}
 		}

+ 6 - 0
include/ppc4xx.h

@@ -46,6 +46,12 @@
 #endif
 #endif
 
 
 #if defined(CONFIG_440)
 #if defined(CONFIG_440)
+/*
+ * Enable long long (%ll ...) printf format on 440 PPC's since most of
+ * them support 36bit physical addressing
+ */
+#define CFG_64BIT_VSPRINTF
+#define CFG_64BIT_STRTOUL
 #include <ppc440.h>
 #include <ppc440.h>
 #else
 #else
 #include <ppc405.h>
 #include <ppc405.h>