Przeglądaj źródła

* Patch by Gridish Shlomi, 30 Aug 2004:
- Add support to revA version of PQ27 and PQ27E.
- Reverted MPC8260ADS baudrate back to original 115200

* Patch by Hojin, 17 Sep 2004:
Fix typo in cfi_flash.c

* Patch by Mark Jonas, 09 September 2004:
mtest's data line test (with CFG_ALT_MEMTEST set) returned a wrong
error message

* Patch by Mark Jonas, 31 August 2004:
Added option CFG_XLB_PIPELINING to enable XLB pipelining. This
improves FTP performance for MPC5200 systems. Enabled for IceCube
by default.

wdenk 20 lat temu
rodzic
commit
e1599e83d6

+ 16 - 0
CHANGELOG

@@ -2,6 +2,22 @@
 Changes since U-Boot 1.1.1:
 Changes since U-Boot 1.1.1:
 ======================================================================
 ======================================================================
 
 
+* Patch by Gridish Shlomi, 30 Aug 2004:
+  - Add support to revA version of PQ27 and PQ27E.
+  - Reverted MPC8260ADS baudrate back to original 115200
+
+* Patch by Hojin, 17 Sep 2004:
+  Fix typo in cfi_flash.c
+  
+* Patch by Mark Jonas, 09 September 2004:
+  mtest's data line test (with CFG_ALT_MEMTEST set) returned a wrong
+  error message
+
+* Patch by Mark Jonas, 31 August 2004:
+  Added option CFG_XLB_PIPELINING to enable XLB pipelining. This
+  improves FTP performance for MPC5200 systems. Enabled for IceCube
+  by default.
+
 * Patch by Michael Bendzick, 30 Aug 2004:
 * Patch by Michael Bendzick, 30 Aug 2004:
   - Improve platform.S code for omap1510inn that detects whether code
   - Improve platform.S code for omap1510inn that detects whether code
     is running from SDRAM or not. Patch allows SDRAM to be configured
     is running from SDRAM or not. Patch allows SDRAM to be configured

+ 1 - 1
common/cmd_mem.c

@@ -736,7 +736,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 			if(readback != ~val) {
 			if(readback != ~val) {
 			    printf ("FAILURE (data line): "
 			    printf ("FAILURE (data line): "
 				"Is %08lx, should be %08lx\n",
 				"Is %08lx, should be %08lx\n",
-					val, readback);
+					readback, ~val);
 			}
 			}
 		    }
 		    }
 		}
 		}

+ 5 - 0
cpu/mpc5xxx/cpu_init.c

@@ -170,6 +170,11 @@ void cpu_init_f (void)
 	/* Configure the XLB Arbiter */
 	/* Configure the XLB Arbiter */
 	*(vu_long *)MPC5XXX_XLBARB_MPRIEN = 0xff;
 	*(vu_long *)MPC5XXX_XLBARB_MPRIEN = 0xff;
 	*(vu_long *)MPC5XXX_XLBARB_MPRIVAL = 0x11111111;
 	*(vu_long *)MPC5XXX_XLBARB_MPRIVAL = 0x11111111;
+
+# if defined(CFG_XLB_PIPELINING)
+	/* Enable piplining */
+	*(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~(1 << 31);
+# endif
 #endif	/* CONFIG_MPC5200 */
 #endif	/* CONFIG_MPC5200 */
 }
 }
 
 

+ 0 - 5
cpu/mpc5xxx/pci_mpc5200.c

@@ -129,11 +129,6 @@ void pci_mpc5xxx_init (struct pci_controller *hose)
 	*(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~((7 << 8) | (3 << 5));
 	*(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~((7 << 8) | (3 << 5));
 	*(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (3 << 8) | (3 << 5);
 	*(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (3 << 8) | (3 << 5);
 
 
-#if 0
-	/* Enable piplining */
-	*(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~(1 << 31);
-#endif
-
 	/* Disable interrupts from PCI controller */
 	/* Disable interrupts from PCI controller */
 	*(vu_long *)MPC5XXX_PCI_GSCR &= ~(7 << 12);
 	*(vu_long *)MPC5XXX_PCI_GSCR &= ~(7 << 12);
 	*(vu_long *)MPC5XXX_PCI_ICR &= ~(7 << 24);
 	*(vu_long *)MPC5XXX_PCI_ICR &= ~(7 << 24);

+ 13 - 1
cpu/mpc8260/cpu.c

@@ -68,6 +68,7 @@ int checkcpu (void)
 		k = 4;
 		k = 4;
 		break;
 		break;
 	case PVR_8260_HIP7R1:
 	case PVR_8260_HIP7R1:
+	case PVR_8260_HIP7RA:
 	case PVR_8260_HIP7:
 	case PVR_8260_HIP7:
 		k = 7;
 		k = 7;
 		break;
 		break;
@@ -129,9 +130,20 @@ int checkcpu (void)
 	case 0x0A01:
 	case 0x0A01:
 		puts ("0.1 1K49M");
 		puts ("0.1 1K49M");
 		break;
 		break;
+	case 0x0A10:
+		puts ("1.0 1K49M");
+		break;
 	case 0x0C00:
 	case 0x0C00:
+		puts ("0.0 0K50M");
+		break;
+	case 0x0C10:
+		puts ("1.0 0K50M");
+		break;
 	case 0x0D00:
 	case 0x0D00:
-		printf ("0.0 0K50M");
+		puts ("0.0 0K50M");
+		break;
+	case 0x0D10:
+		puts ("1.0 0K50M");
 		break;
 		break;
 	default:
 	default:
 		printf ("unknown [immr=0x%04x,k=0x%04x]", m, k);
 		printf ("unknown [immr=0x%04x,k=0x%04x]", m, k);

+ 2 - 2
cpu/mpc8260/i2c.c

@@ -149,7 +149,7 @@ i2c_roundrate(int hz, int speed, int filter, int modval,
 
 
     PRINTD(("\t\tmoddiv=%d, brgdiv=%d\n", moddiv, brgdiv));
     PRINTD(("\t\tmoddiv=%d, brgdiv=%d\n", moddiv, brgdiv));
 
 
-    *brgval = (brgdiv / 2) - 3 - (2*filter);
+    *brgval = ((brgdiv + 1) / 2) - 3 - (2*filter);
 
 
     if ((*brgval < 0) || (*brgval > 255)) {
     if ((*brgval < 0) || (*brgval > 255)) {
 	  PRINTD(("\t\trejected brgval=%d\n", *brgval));
 	  PRINTD(("\t\trejected brgval=%d\n", *brgval));
@@ -158,7 +158,7 @@ i2c_roundrate(int hz, int speed, int filter, int modval,
 
 
     brgdiv = 2 * (*brgval + 3 + (2 * filter));
     brgdiv = 2 * (*brgval + 3 + (2 * filter));
     div = moddiv * brgdiv ;
     div = moddiv * brgdiv ;
-    *totspeed = (hz + div - 1) / div;
+    *totspeed = hz / div;
 
 
     PRINTD(("\t\taccepted brgval=%d, totspeed=%d\n", *brgval, *totspeed));
     PRINTD(("\t\taccepted brgval=%d, totspeed=%d\n", *brgval, *totspeed));
 
 

+ 4 - 1
cpu/mpc8260/speed.c

@@ -125,7 +125,10 @@ int get_clocks (void)
 	busdf = (scmr & SCMR_BUSDF_MSK) >> SCMR_BUSDF_SHIFT;
 	busdf = (scmr & SCMR_BUSDF_MSK) >> SCMR_BUSDF_SHIFT;
 	cpmdf = (scmr & SCMR_CPMDF_MSK) >> SCMR_CPMDF_SHIFT;
 	cpmdf = (scmr & SCMR_CPMDF_MSK) >> SCMR_CPMDF_SHIFT;
 
 
-	if ((get_pvr () == PVR_8260_HIP7) || (get_pvr () == PVR_8260_HIP7R1)) { /* HiP7 */
+	/* HiP7, HiP7 Rev01, HiP7 RevA */
+	if ((get_pvr () == PVR_8260_HIP7) ||
+	    (get_pvr () == PVR_8260_HIP7R1) ||
+	    (get_pvr () == PVR_8260_HIP7RA)) {
 		pllmf = (scmr & SCMR_PLLMF_MSKH7) >> SCMR_PLLMF_SHIFT;
 		pllmf = (scmr & SCMR_PLLMF_MSKH7) >> SCMR_PLLMF_SHIFT;
 		gd->vco_out = clkin * (pllmf + 1);
 		gd->vco_out = clkin * (pllmf + 1);
 	} else {                        /* HiP3, HiP4 */
 	} else {                        /* HiP3, HiP4 */

+ 22 - 21
doc/README.autoboot

@@ -67,13 +67,13 @@ What they do
   CONFIG_BOOT_RETRY_TIME
   CONFIG_BOOT_RETRY_TIME
   CONFIG_BOOT_RETRY_MIN
   CONFIG_BOOT_RETRY_MIN
 
 
-  bootretry environment variable
+  "bootretry" environment variable
 
 
 	These options determine what happens after autoboot is
 	These options determine what happens after autoboot is
 	stopped and U-Boot is waiting for commands.
 	stopped and U-Boot is waiting for commands.
 
 
 	CONFIG_BOOT_RETRY_TIME must be defined to enable the boot
 	CONFIG_BOOT_RETRY_TIME must be defined to enable the boot
-	retry feature. If the environment variable 'bootretry' is
+	retry feature. If the environment variable "bootretry" is
 	found then its value is used, otherwise the retry timeout is
 	found then its value is used, otherwise the retry timeout is
 	CONFIG_BOOT_RETRY_TIME. CONFIG_BOOT_RETRY_MIN is optional and
 	CONFIG_BOOT_RETRY_TIME. CONFIG_BOOT_RETRY_MIN is optional and
 	defaults to CONFIG_BOOT_RETRY_TIME. All times are in seconds.
 	defaults to CONFIG_BOOT_RETRY_TIME. All times are in seconds.
@@ -87,7 +87,7 @@ What they do
 
 
 	If CONFIG_BOOT_RETRY_TIME < 0 the feature is there, but
 	If CONFIG_BOOT_RETRY_TIME < 0 the feature is there, but
 	doesn't do anything unless the environment variable
 	doesn't do anything unless the environment variable
-	'bootretry' is >= 0.
+	"bootretry" is >= 0.
 
 
   CONFIG_AUTOBOOT_KEYED
   CONFIG_AUTOBOOT_KEYED
   CONFIG_AUTOBOOT_PROMPT
   CONFIG_AUTOBOOT_PROMPT
@@ -96,10 +96,10 @@ What they do
   CONFIG_AUTOBOOT_DELAY_STR2
   CONFIG_AUTOBOOT_DELAY_STR2
   CONFIG_AUTOBOOT_STOP_STR2
   CONFIG_AUTOBOOT_STOP_STR2
 
 
-  bootdelaykey	environment variable
-  bootstopkey	environment variable
-  bootdelaykey2	environment variable
-  bootstopkey2	environment variable
+  "bootdelaykey"  environment variable
+  "bootstopkey"   environment variable
+  "bootdelaykey2" environment variable
+  "bootstopkey2"  environment variable
 
 
 	These options give more control over stopping autoboot. When
 	These options give more control over stopping autoboot. When
 	they are used a specific character or string is required to
 	they are used a specific character or string is required to
@@ -119,17 +119,17 @@ What they do
 	down the seconds. "autoboot in %d seconds\n" is a reasonable
 	down the seconds. "autoboot in %d seconds\n" is a reasonable
 	prompt.
 	prompt.
 
 
-	If CONFIG_AUTOBOOT_DELAY_STR or bootdelaykey is specified and
-	this string is received from console input before autoboot
-	starts booting, U-Boot gives a command prompt. The U-Boot
-	prompt will time out if CONFIG_BOOT_RETRY_TIME is used,
-	otherwise it never times out.
+        If CONFIG_AUTOBOOT_DELAY_STR or "bootdelaykey" is specified
+        and this string is received from console input before
+        autoboot starts booting, U-Boot gives a command prompt. The
+        U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
+        used, otherwise it never times out.
 
 
-	If CONFIG_AUTOBOOT_STOP_STR or bootstopkey is specified and
-	this string is received from console input before autoboot
-	starts booting, U-Boot gives a command prompt. The U-Boot
-	prompt never times out, even if CONFIG_BOOT_RETRY_TIME is
-	used.
+        If CONFIG_AUTOBOOT_STOP_STR or "bootstopkey" is specified and
+        this string is received from console input before autoboot
+        starts booting, U-Boot gives a command prompt. The U-Boot
+        prompt never times out, even if CONFIG_BOOT_RETRY_TIME is
+        used.
 
 
 	The string recognition is not very sophisticated. If a
 	The string recognition is not very sophisticated. If a
 	partial match is detected, the first non-matching character
 	partial match is detected, the first non-matching character
@@ -138,10 +138,11 @@ What they do
 	character of a key string does not appear in the rest of the
 	character of a key string does not appear in the rest of the
 	string.
 	string.
 
 
-	Using the CONFIG_AUTOBOOT_DELAY_STR2 /  bootdelaykey2  and/or
-	CONFIG_AUTOBOOT_STOP_STR2   /   bootstopkey  #defines  and/or
-	environment variables you can  specify  a  second,  alternate
-	string (which allows you to have two "password" strings).
+        Using the CONFIG_AUTOBOOT_DELAY_STR2 #define or the
+        "bootdelaykey2" environment variable and/or the
+        CONFIG_AUTOBOOT_STOP_STR2 #define or the "bootstopkey"
+        environment variable you can specify a second, alternate
+        string (which allows you to have two "password" strings).
 
 
   CONFIG_ZERO_BOOTDELAY_CHECK
   CONFIG_ZERO_BOOTDELAY_CHECK
 
 

+ 1 - 1
drivers/cfi_flash.c

@@ -1115,7 +1115,7 @@ static int flash_write_cfiword (flash_info_t * info, ulong dest,
 		flag = ((cptr.lp[0] & cword.l) == cword.l);
 		flag = ((cptr.lp[0] & cword.l) == cword.l);
 		break;
 		break;
 	case FLASH_CFI_64BIT:
 	case FLASH_CFI_64BIT:
-		flag = ((cptr.lp[0] & cword.ll) == cword.ll);
+		flag = ((cptr.llp[0] & cword.ll) == cword.ll);
 		break;
 		break;
 	default:
 	default:
 		return 2;
 		return 2;

+ 1 - 0
include/asm-ppc/processor.h

@@ -764,6 +764,7 @@
 #define PVR_8260_HIP4   0x80811014
 #define PVR_8260_HIP4   0x80811014
 #define PVR_8260_HIP7   0x80822011
 #define PVR_8260_HIP7   0x80822011
 #define PVR_8260_HIP7R1 0x80822013
 #define PVR_8260_HIP7R1 0x80822013
+#define PVR_8260_HIP7RA	0x80822014
 
 
 
 
 /*
 /*

+ 2 - 0
include/configs/IceCube.h

@@ -68,6 +68,8 @@
 #define CONFIG_PCI_IO_PHYS	CONFIG_PCI_IO_BUS
 #define CONFIG_PCI_IO_PHYS	CONFIG_PCI_IO_BUS
 #define CONFIG_PCI_IO_SIZE	0x01000000
 #define CONFIG_PCI_IO_SIZE	0x01000000
 
 
+#define CFG_XLB_PIPELINING	1
+
 #define CONFIG_NET_MULTI	1
 #define CONFIG_NET_MULTI	1
 #define CONFIG_EEPRO100		1
 #define CONFIG_EEPRO100		1
 #define CFG_RX_ETH_BUFFER	8  /* use 8 rx buffer on eepro100  */
 #define CFG_RX_ETH_BUFFER	8  /* use 8 rx buffer on eepro100  */

+ 1 - 1
include/configs/MPC8260ADS.h

@@ -175,7 +175,7 @@
 #endif
 #endif
 #endif
 #endif
 
 
-#define CONFIG_BAUDRATE		38400
+#define CONFIG_BAUDRATE		115200
 
 
 #define CFG_EXCLUDE		 CFG_CMD_BEDBUG | \
 #define CFG_EXCLUDE		 CFG_CMD_BEDBUG | \
 				 CFG_CMD_BMP	| \
 				 CFG_CMD_BMP	| \

+ 1 - 1
include/image.h

@@ -96,7 +96,7 @@
  *	byte order. This list is terminated by an "(uint32_t)0".
  *	byte order. This list is terminated by an "(uint32_t)0".
  *	Immediately after the terminating 0 follow the images, one by
  *	Immediately after the terminating 0 follow the images, one by
  *	one, all aligned on "uint32_t" boundaries (size rounded up to
  *	one, all aligned on "uint32_t" boundaries (size rounded up to
- *	a multiple of 4 bytes).
+ *	a multiple of 4 bytes - except for the last file).
  *
  *
  * "Firmware Images" are binary images containing firmware (like
  * "Firmware Images" are binary images containing firmware (like
  *	U-Boot or FPGA images) which usually will be programmed to
  *	U-Boot or FPGA images) which usually will be programmed to