From e1599e83d643c1667a4157d03609c6e29928fb2e Mon Sep 17 00:00:00 2001 From: wdenk Date: Sun, 10 Oct 2004 23:27:33 +0000 Subject: * 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. --- CHANGELOG | 16 ++++++++++++++++ common/cmd_mem.c | 2 +- cpu/mpc5xxx/cpu_init.c | 5 +++++ cpu/mpc5xxx/pci_mpc5200.c | 5 ----- cpu/mpc8260/cpu.c | 14 +++++++++++++- cpu/mpc8260/i2c.c | 4 ++-- cpu/mpc8260/speed.c | 5 ++++- doc/README.autoboot | 43 ++++++++++++++++++++++--------------------- drivers/cfi_flash.c | 2 +- include/asm-ppc/processor.h | 1 + include/configs/IceCube.h | 2 ++ include/configs/MPC8260ADS.h | 2 +- include/image.h | 2 +- 13 files changed, 69 insertions(+), 34 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 1783fb68a8..c0aa327a24 100644 --- 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 diff --git a/common/cmd_mem.c b/common/cmd_mem.c index e5c60bfad4..b95421ad5d 100644 --- a/common/cmd_mem.c +++ b/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) { printf ("FAILURE (data line): " "Is %08lx, should be %08lx\n", - val, readback); + readback, ~val); } } } diff --git a/cpu/mpc5xxx/cpu_init.c b/cpu/mpc5xxx/cpu_init.c index 3599a86fe3..3df005009e 100644 --- a/cpu/mpc5xxx/cpu_init.c +++ b/cpu/mpc5xxx/cpu_init.c @@ -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 */ } diff --git a/cpu/mpc5xxx/pci_mpc5200.c b/cpu/mpc5xxx/pci_mpc5200.c index 94c157f6e8..490fcd2f6f 100644 --- a/cpu/mpc5xxx/pci_mpc5200.c +++ b/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) |= (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); diff --git a/cpu/mpc8260/cpu.c b/cpu/mpc8260/cpu.c index 8adf950f98..8d634b075e 100644 --- a/cpu/mpc8260/cpu.c +++ b/cpu/mpc8260/cpu.c @@ -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); diff --git a/cpu/mpc8260/i2c.c b/cpu/mpc8260/i2c.c index 789c514c91..e0ac684081 100644 --- a/cpu/mpc8260/i2c.c +++ b/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)); - *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)); diff --git a/cpu/mpc8260/speed.c b/cpu/mpc8260/speed.c index 16f4e90b65..a761a178bc 100644 --- a/cpu/mpc8260/speed.c +++ b/cpu/mpc8260/speed.c @@ -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 */ diff --git a/doc/README.autoboot b/doc/README.autoboot index c763578486..c971bb141d 100644 --- a/doc/README.autoboot +++ b/doc/README.autoboot @@ -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 diff --git a/drivers/cfi_flash.c b/drivers/cfi_flash.c index c46ac24760..7ac0be663d 100644 --- a/drivers/cfi_flash.c +++ b/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); 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; diff --git a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h index f7d90f4837..15bfae8524 100644 --- a/include/asm-ppc/processor.h +++ b/include/asm-ppc/processor.h @@ -764,6 +764,7 @@ #define PVR_8260_HIP4 0x80811014 #define PVR_8260_HIP7 0x80822011 #define PVR_8260_HIP7R1 0x80822013 +#define PVR_8260_HIP7RA 0x80822014 /* diff --git a/include/configs/IceCube.h b/include/configs/IceCube.h index 3c1b2ab59b..3752eb42e7 100644 --- a/include/configs/IceCube.h +++ b/include/configs/IceCube.h @@ -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 */ diff --git a/include/configs/MPC8260ADS.h b/include/configs/MPC8260ADS.h index 626f23b6a4..0d5b05a803 100644 --- a/include/configs/MPC8260ADS.h +++ b/include/configs/MPC8260ADS.h @@ -175,7 +175,7 @@ #endif #endif -#define CONFIG_BAUDRATE 38400 +#define CONFIG_BAUDRATE 115200 #define CFG_EXCLUDE CFG_CMD_BEDBUG | \ CFG_CMD_BMP | \ diff --git a/include/image.h b/include/image.h index 55210d564e..4c23f0e5b5 100644 --- a/include/image.h +++ b/include/image.h @@ -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 -- cgit v1.2.3