* Patch by Gridish Shlomi, 30 Aug 2004:
authorwdenk <wdenk>
Sun, 10 Oct 2004 23:27:33 +0000 (23:27 +0000)
committerwdenk <wdenk>
Sun, 10 Oct 2004 23:27:33 +0000 (23:27 +0000)
  - 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.

13 files changed:
CHANGELOG
common/cmd_mem.c
cpu/mpc5xxx/cpu_init.c
cpu/mpc5xxx/pci_mpc5200.c
cpu/mpc8260/cpu.c
cpu/mpc8260/i2c.c
cpu/mpc8260/speed.c
doc/README.autoboot
drivers/cfi_flash.c
include/asm-ppc/processor.h
include/configs/IceCube.h
include/configs/MPC8260ADS.h
include/image.h

index 1783fb68a8eabee5010140ef0bd33dfa8c095de1..c0aa327a24f4e25a7e68c12a6fc3a829c3d611f1 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,22 @@
 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:
   - Improve platform.S code for omap1510inn that detects whether code
     is running from SDRAM or not. Patch allows SDRAM to be configured
index e5c60bfad442552e94a349913b5daa465f59c854..b95421ad5d55daca3d34c91ee7e1c2abd6f4c9cd 100644 (file)
@@ -736,7 +736,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                        if(readback != ~val) {
                            printf ("FAILURE (data line): "
                                "Is %08lx, should be %08lx\n",
-                                       val, readback);
+                                       readback, ~val);
                        }
                    }
                }
index 3599a86fe329ecd52bf1b7f4539cdbcb70be1b0a..3df005009ebca12113549a355db5c983e2d11f91 100644 (file)
@@ -170,6 +170,11 @@ void cpu_init_f (void)
        /* Configure the XLB Arbiter */
        *(vu_long *)MPC5XXX_XLBARB_MPRIEN = 0xff;
        *(vu_long *)MPC5XXX_XLBARB_MPRIVAL = 0x11111111;
+
+# if defined(CFG_XLB_PIPELINING)
+       /* Enable piplining */
+       *(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~(1 << 31);
+# endif
 #endif /* CONFIG_MPC5200 */
 }
 
index 94c157f6e882a6c000e9fc930e156886cfca8b85..490fcd2f6f1772e14bcdd406104a65a226b828e4 100644 (file)
@@ -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) |= (3 << 8) | (3 << 5);
 
-#if 0
-       /* Enable piplining */
-       *(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~(1 << 31);
-#endif
-
        /* Disable interrupts from PCI controller */
        *(vu_long *)MPC5XXX_PCI_GSCR &= ~(7 << 12);
        *(vu_long *)MPC5XXX_PCI_ICR &= ~(7 << 24);
index 8adf950f980e77e8a466a7e05b1c853dbb608fc2..8d634b075ef41876df0b04ff1d3cf854708269af 100644 (file)
@@ -68,6 +68,7 @@ int checkcpu (void)
                k = 4;
                break;
        case PVR_8260_HIP7R1:
+       case PVR_8260_HIP7RA:
        case PVR_8260_HIP7:
                k = 7;
                break;
@@ -129,9 +130,20 @@ int checkcpu (void)
        case 0x0A01:
                puts ("0.1 1K49M");
                break;
+       case 0x0A10:
+               puts ("1.0 1K49M");
+               break;
        case 0x0C00:
+               puts ("0.0 0K50M");
+               break;
+       case 0x0C10:
+               puts ("1.0 0K50M");
+               break;
        case 0x0D00:
-               printf ("0.0 0K50M");
+               puts ("0.0 0K50M");
+               break;
+       case 0x0D10:
+               puts ("1.0 0K50M");
                break;
        default:
                printf ("unknown [immr=0x%04x,k=0x%04x]", m, k);
index 789c514c911126078707f59eac33cefbaad87596..e0ac6840815f87db632e1c5dc1f688c749808b0a 100644 (file)
@@ -149,7 +149,7 @@ i2c_roundrate(int hz, int speed, int filter, int modval,
 
     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)) {
          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));
     div = moddiv * brgdiv ;
-    *totspeed = (hz + div - 1) / div;
+    *totspeed = hz / div;
 
     PRINTD(("\t\taccepted brgval=%d, totspeed=%d\n", *brgval, *totspeed));
 
index 16f4e90b65d27b3017af0e1be6b6511924102b11..a761a178bc12e179fe32fde00af597361a8de839 100644 (file)
@@ -125,7 +125,10 @@ int get_clocks (void)
        busdf = (scmr & SCMR_BUSDF_MSK) >> SCMR_BUSDF_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;
                gd->vco_out = clkin * (pllmf + 1);
        } else {                        /* HiP3, HiP4 */
index c7635784860d3ce87055a8bd4620168a8d44366e..c971bb141d354f0a66e785876579ae2b7886dc2c 100644 (file)
@@ -67,13 +67,13 @@ What they do
   CONFIG_BOOT_RETRY_TIME
   CONFIG_BOOT_RETRY_MIN
 
-  bootretry environment variable
+  "bootretry" environment variable
 
        These options determine what happens after autoboot is
        stopped and U-Boot is waiting for commands.
 
        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
        CONFIG_BOOT_RETRY_TIME. CONFIG_BOOT_RETRY_MIN is optional and
        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
        doesn't do anything unless the environment variable
-       'bootretry' is >= 0.
+       "bootretry" is >= 0.
 
   CONFIG_AUTOBOOT_KEYED
   CONFIG_AUTOBOOT_PROMPT
@@ -96,10 +96,10 @@ What they do
   CONFIG_AUTOBOOT_DELAY_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
        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
        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
        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
        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
 
index c46ac247601cefa9c1f2e39e4c24ad8e1b795ec6..7ac0be663d4e3124ee601a5edea27661884719fb 100644 (file)
@@ -1115,7 +1115,7 @@ static int flash_write_cfiword (flash_info_t * info, ulong dest,
                flag = ((cptr.lp[0] & cword.l) == cword.l);
                break;
        case FLASH_CFI_64BIT:
-               flag = ((cptr.lp[0] & cword.ll) == cword.ll);
+               flag = ((cptr.llp[0] & cword.ll) == cword.ll);
                break;
        default:
                return 2;
index f7d90f4837b2d70f52b88078e32e03f935960ec0..15bfae8524d45cdf512dee5800cf6c6c45758987 100644 (file)
 #define PVR_8260_HIP4   0x80811014
 #define PVR_8260_HIP7   0x80822011
 #define PVR_8260_HIP7R1 0x80822013
+#define PVR_8260_HIP7RA        0x80822014
 
 
 /*
index 3c1b2ab59b5f996b5c523c6097843dd73d0a4fc1..3752eb42e71c5444c9cd5a589c8cd10d97bca4d1 100644 (file)
@@ -68,6 +68,8 @@
 #define CONFIG_PCI_IO_PHYS     CONFIG_PCI_IO_BUS
 #define CONFIG_PCI_IO_SIZE     0x01000000
 
+#define CFG_XLB_PIPELINING     1
+
 #define CONFIG_NET_MULTI       1
 #define CONFIG_EEPRO100                1
 #define CFG_RX_ETH_BUFFER      8  /* use 8 rx buffer on eepro100  */
index 626f23b6a436c28ab32f3446c4ea146183e38bf4..0d5b05a8035ea2349a1f87ac01c22dc41b19233d 100644 (file)
 #endif
 #endif
 
-#define CONFIG_BAUDRATE                38400
+#define CONFIG_BAUDRATE                115200
 
 #define CFG_EXCLUDE             CFG_CMD_BEDBUG | \
                                 CFG_CMD_BMP    | \
index 55210d564e33d0404cd1c387f153037cb3f3d606..4c23f0e5b5293652391b81c2cf364e10ba77f030 100644 (file)
@@ -96,7 +96,7 @@
  *     byte order. This list is terminated by an "(uint32_t)0".
  *     Immediately after the terminating 0 follow the images, one by
  *     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
  *     U-Boot or FPGA images) which usually will be programmed to