From ea638951acead7f1086c908c0b9f086beab82a22 Mon Sep 17 00:00:00 2001 From: Shinya Kuribayashi Date: Sat, 3 May 2008 13:51:28 +0900 Subject: [MIPS] cpu/mips/cache.S: Add dcache_enable Recent bootelf command fixes (017e9b7925f74878d0e9475388cca9bda5ef9482, "allow ports to override bootelf behavior") requires ports to have this function. Signed-off-by: Shinya Kuribayashi Acked-by: Jean-Christophe PLAGNIOL-VILLARD --- cpu/mips/cache.S | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cpu/mips/cache.S b/cpu/mips/cache.S index f593968320..428d251bf1 100644 --- a/cpu/mips/cache.S +++ b/cpu/mips/cache.S @@ -285,6 +285,22 @@ LEAF(dcache_disable) jr ra END(dcache_disable) +/******************************************************************************* +* +* dcache_enable - enable cache +* +* RETURNS: N/A +* +*/ +LEAF(dcache_enable) + mfc0 t0, CP0_CONFIG + ori t0, CONF_CM_CMASK + xori t0, CONF_CM_CMASK + ori t0, CONF_CM_CACHABLE_NONCOHERENT + mtc0 t0, CP0_CONFIG + jr ra + END(dcache_enable) + #ifdef CFG_INIT_RAM_LOCK_MIPS /******************************************************************************* * -- cgit v1.2.3 From 141ba1cad8e6598a2466e7e2976c6a12285df619 Mon Sep 17 00:00:00 2001 From: Shinya Kuribayashi Date: Sat, 3 May 2008 13:51:44 +0900 Subject: [MIPS] cpu/mips/config.mk: Fix GNU assembler minor version picker Current trick to pick up GNU assembler minor version uses a dot(.) as a delimiter, and take the second field to obtain minor version number. But as can be expected, this doesn't work with a version string which has dots more than needs. Here's an example: $ mips-linux-gnu-as --version | grep 'GNU assembler' GNU assembler (Sourcery G++ Lite 4.2-129) 2.18.50.20080215 $ mips-linux-gnu-as --version | grep 'GNU assembler' | cut -d. -f2 2-129) 2 $ This patch restricts the version format to 2.XX.XX... This will work in most cases. $ mips-linux-gnu-as --version | grep 'GNU assembler' | egrep -o '2\.[0-9\.]+' 2.18.50.20080215 $ mips-linux-gnu-as --version | grep 'GNU assembler' | egrep -o '2\.[0-9\.]+' | cut -d. -f2 18 $ Signed-off-by: Shinya Kuribayashi --- cpu/mips/config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpu/mips/config.mk b/cpu/mips/config.mk index b505a42550..a173c5480c 100644 --- a/cpu/mips/config.mk +++ b/cpu/mips/config.mk @@ -20,7 +20,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # -v=$(shell $(AS) --version |grep "GNU assembler" |cut -d. -f2) +v=$(shell $(AS) --version | grep 'GNU assembler' | egrep -o '2\.[0-9\.]+' | cut -d. -f2) MIPSFLAGS:=$(shell \ if [ "$v" -lt "14" ]; then \ echo "-mcpu=4kc"; \ -- cgit v1.2.3 From 9acde129cc3f9c1b3bc11a821480dd446774d618 Mon Sep 17 00:00:00 2001 From: Andre Schwarz Date: Tue, 29 Apr 2008 19:18:32 +0200 Subject: TSEC: add config options for VSC8601 RGMII PHY The Vitesse VSC8601 RGMII PHY has internal delay for both Rx and Tx clock lines. They are configured using 2 bits in extended register 0x17. Therefore CFG_VSC8601_SKEW_TX and CFG_VSC8601_SKEW_RX have been introduced with valid values 0-3 giving 0.0, 1.4,1.7 and 2.0ns delay. Signed-off-by: Andre Schwarz Acked-by: Andy Fleming Acked-by: Ben Warren -- drivers/net/tsec.c | 6 ++++++ drivers/net/tsec.h | 3 +++ 2 files changed, 9 insertions(+), 0 deletions(-) --- drivers/net/tsec.c | 6 ++++++ drivers/net/tsec.h | 11 +++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 9d22aa38be..f86bfd7eea 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -1277,6 +1277,12 @@ struct phy_info phy_info_VSC8601 = { {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init}, #ifdef CFG_VSC8601_SKEWFIX {MIIM_VSC8601_EPHY_CON,MIIM_VSC8601_EPHY_CON_INIT_SKEW,NULL}, +if defined(CFG_VSC8601_SKEW_TX) && defined(CFG_VSC8601_SKEW_RX) + {MIIM_EXT_PAGE_ACCESS,1,NULL}, +#define VSC8101_SKEW (CFG_VSC8601_SKEW_TX<<14)|(CFG_VSC8601_SKEW_RX<<12) + {MIIM_VSC8601_SKEW_CTRL,VSC8101_SKEW,NULL}, + {MIIM_EXT_PAGE_ACCESS,0,NULL}, +#endif #endif {miim_end,} }, diff --git a/drivers/net/tsec.h b/drivers/net/tsec.h index cfa7d1aad7..597ea1d3c7 100644 --- a/drivers/net/tsec.h +++ b/drivers/net/tsec.h @@ -112,6 +112,8 @@ #define MIIM_GBIT_CONTROL 0x9 #define MIIM_GBIT_CONTROL_INIT 0xe00 +#define MIIM_EXT_PAGE_ACCESS 0x1f + /* Broadcom BCM54xx -- taken from linux sungem_phy */ #define MIIM_BCM54xx_AUXSTATUS 0x19 #define MIIM_BCM54xx_AUXSTATUS_LINKMODE_MASK 0x0700 @@ -161,8 +163,9 @@ /* Entry for Vitesse VSC8601 regs starts here (Not complete) */ /* Vitesse VSC8601 Extended PHY Control Register 1 */ -#define MIIM_VSC8601_EPHY_CON 0x17 +#define MIIM_VSC8601_EPHY_CON 0x17 #define MIIM_VSC8601_EPHY_CON_INIT_SKEW 0x1120 +#define MIIM_VSC8601_SKEW_CTRL 0x1c /* 88E1011 PHY Status Register */ #define MIIM_88E1011_PHY_STATUS 0x11 @@ -177,9 +180,9 @@ #define MIIM_88E1011_PHY_MDI_X_AUTO 0x0060 /* 88E1111 PHY LED Control Register */ -#define MIIM_88E1111_PHY_LED_CONTROL 24 -#define MIIM_88E1111_PHY_LED_DIRECT 0x4100 -#define MIIM_88E1111_PHY_LED_COMBINE 0x411C +#define MIIM_88E1111_PHY_LED_CONTROL 24 +#define MIIM_88E1111_PHY_LED_DIRECT 0x4100 +#define MIIM_88E1111_PHY_LED_COMBINE 0x411C /* 88E1145 Extended PHY Specific Control Register */ #define MIIM_88E1145_PHY_EXT_CR 20 -- cgit v1.2.3 From b71190f3250aaffcc81c35f6cfd3498cb7c48013 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Thu, 1 May 2008 09:05:26 +0200 Subject: Fix implicit declaration build warnings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - warning: implicit declaration of function ‘serial_initialize’ Signed-off-by: Marcel Ziswiler --- lib_arm/board.c | 1 + lib_m68k/board.c | 1 + 2 files changed, 2 insertions(+) diff --git a/lib_arm/board.c b/lib_arm/board.c index 22d573a398..67506b35e1 100644 --- a/lib_arm/board.c +++ b/lib_arm/board.c @@ -44,6 +44,7 @@ #include #include #include +#include #ifdef CONFIG_DRIVER_SMC91111 #include "../drivers/net/smc91111.h" diff --git a/lib_m68k/board.c b/lib_m68k/board.c index 915920641d..6654f971b2 100644 --- a/lib_m68k/board.c +++ b/lib_m68k/board.c @@ -45,6 +45,7 @@ #include #endif #include +#include #if defined(CONFIG_CMD_BEDBUG) #include #endif -- cgit v1.2.3 From 8e90cd0447a0f0ccf529ef86f0e6b56187d3b82a Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Thu, 1 May 2008 09:05:34 +0200 Subject: Fix defined but not used build warning - warning: 'srom' defined but not used Signed-off-by: Marcel Ziswiler --- board/trizepsiv/eeprom.c | 1 - 1 file changed, 1 deletion(-) diff --git a/board/trizepsiv/eeprom.c b/board/trizepsiv/eeprom.c index 3d3bc00221..7a2b90585b 100644 --- a/board/trizepsiv/eeprom.c +++ b/board/trizepsiv/eeprom.c @@ -24,7 +24,6 @@ #include #include -static unsigned char srom[128]; extern u16 read_srom_word(int); extern void write_srom_word(int offset, u16 val); -- cgit v1.2.3 From fa956fde60b7ec4dd66bd62f9910fd341b5049a1 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 1 May 2008 04:13:05 -0400 Subject: mkimage: make mmap() checks consistent The mmap() related code is full of inconsistent casts/constants when it comes to error checking, and may break when building on some systems (like ones that do not implicitly define the caddr_t type). Let's just avoid the whole mess by writing the code nice and clean in the first place. Signed-off-by: Mike Frysinger --- tools/mkimage.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/tools/mkimage.c b/tools/mkimage.c index ea7a826f8c..967fe9a776 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -28,7 +28,7 @@ extern int errno; #ifndef MAP_FAILED -#define MAP_FAILED (-1) +#define MAP_FAILED (void *)(-1) #endif extern unsigned long crc32 (unsigned long crc, const char *buf, unsigned int len); @@ -218,9 +218,8 @@ NXTARG: ; exit (EXIT_FAILURE); } - ptr = (unsigned char *)mmap(0, sbuf.st_size, - PROT_READ, MAP_SHARED, ifd, 0); - if ((caddr_t)ptr == (caddr_t)-1) { + ptr = mmap(0, sbuf.st_size, PROT_READ, MAP_SHARED, ifd, 0); + if (ptr == MAP_FAILED) { fprintf (stderr, "%s: Can't read %s: %s\n", cmdname, imagefile, strerror(errno)); exit (EXIT_FAILURE); @@ -330,9 +329,8 @@ NXTARG: ; exit (EXIT_FAILURE); } - ptr = (unsigned char *)mmap(0, sbuf.st_size, - PROT_READ|PROT_WRITE, MAP_SHARED, ifd, 0); - if (ptr == (unsigned char *)MAP_FAILED) { + ptr = mmap(0, sbuf.st_size, PROT_READ|PROT_WRITE, MAP_SHARED, ifd, 0); + if (ptr == MAP_FAILED) { fprintf (stderr, "%s: Can't map %s: %s\n", cmdname, imagefile, strerror(errno)); exit (EXIT_FAILURE); @@ -410,9 +408,8 @@ copy_file (int ifd, const char *datafile, int pad) exit (EXIT_FAILURE); } - ptr = (unsigned char *)mmap(0, sbuf.st_size, - PROT_READ, MAP_SHARED, dfd, 0); - if (ptr == (unsigned char *)MAP_FAILED) { + ptr = mmap(0, sbuf.st_size, PROT_READ, MAP_SHARED, dfd, 0); + if (ptr == MAP_FAILED) { fprintf (stderr, "%s: Can't read %s: %s\n", cmdname, datafile, strerror(errno)); exit (EXIT_FAILURE); @@ -594,9 +591,8 @@ static void fit_handle_file (void) exit (EXIT_FAILURE); } - ptr = (unsigned char *)mmap (0, sbuf.st_size, - PROT_READ|PROT_WRITE, MAP_SHARED, tfd, 0); - if ((caddr_t)ptr == (caddr_t)-1) { + ptr = mmap (0, sbuf.st_size, PROT_READ|PROT_WRITE, MAP_SHARED, tfd, 0); + if (ptr == MAP_FAILED) { fprintf (stderr, "%s: Can't read %s: %s\n", cmdname, tmpfile, strerror(errno)); unlink (tmpfile); -- cgit v1.2.3 From 6fdd002689190a0022c7b3dbab37fcba724580ce Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Fri, 2 May 2008 02:35:59 +0200 Subject: Fix misspelled comment Signed-off-by: Marcel Ziswiler --- include/asm-arm/io.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/asm-arm/io.h b/include/asm-arm/io.h index c33b9e8d34..f4ae307003 100644 --- a/include/asm-arm/io.h +++ b/include/asm-arm/io.h @@ -123,7 +123,7 @@ extern void __raw_readsl(unsigned int addr, void *data, int longlen); * only. Their primary purpose is to access PCI and ISA peripherals. * * Note that for a big endian machine, this implies that the following - * big endian mode connectivity is in place, as described by numerious + * big endian mode connectivity is in place, as described by numerous * ARM documents: * * PCI: D0-D7 D8-D15 D16-D23 D24-D31 -- cgit v1.2.3 From 3648085c464c8c22ef76fab006ca4344d3796124 Mon Sep 17 00:00:00 2001 From: Jean-Christophe PLAGNIOL-VILLARD Date: Fri, 2 May 2008 19:48:56 +0200 Subject: qemu_mips: add README Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD --- doc/README.qemu_mips | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 doc/README.qemu_mips diff --git a/doc/README.qemu_mips b/doc/README.qemu_mips new file mode 100644 index 0000000000..476c5e6899 --- /dev/null +++ b/doc/README.qemu_mips @@ -0,0 +1,18 @@ + +Notes for the Qemu MIPS port + +Example usage: + +# ln -s u-boot.bin mips_bios.bin +start it: +qemu-system-mips -L . /dev/null -nographic + +or + +if you use a qemu version after commit 4224 + +create image: +# dd of=flash bs=1k count=4k if=/dev/zero +# dd of=flash bs=1k conv=notrunc if=u-boot.bin +start it: +# qemu-system-mips -pflash flash -monitor null -nographic -- cgit v1.2.3 From ccf1ad535ae1c0dc2d466235c668adbdfe3a55b7 Mon Sep 17 00:00:00 2001 From: Jeremy McNicoll Date: Fri, 2 May 2008 16:10:04 -0400 Subject: SBC8548: fix address mask to allow 64M flash Fix incorrect mask to enable all 64MB of onboard flash. Previously U-Boot incorrectly mapped only 8MB of flash, this patch correctly maps all the available flash. Signed-off-by: Jeremy McNicoll --- include/configs/sbc8548.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/configs/sbc8548.h b/include/configs/sbc8548.h index 49a72347fb..c84b70a87d 100644 --- a/include/configs/sbc8548.h +++ b/include/configs/sbc8548.h @@ -148,7 +148,7 @@ * 1111 1111 1000 0000 0110 1110 0110 0101 = ff806e65 OR0 * * OR6: - * Addr Mask = 64M = OR6[0:16] = 1111 1100 0000 0000 0 + * Addr Mask = 64M = OR6[0:16] = 1111 1000 0000 0000 0 * XAM = OR6[17:18] = 11 * CSNT = OR6[20] = 1 * ACS = half cycle delay = OR6[21:22] = 11 @@ -157,7 +157,7 @@ * EAD = use external address latch delay = OR6[31] = 1 * * 0 4 8 12 16 20 24 28 - * 1111 1100 0000 0000 0110 1110 0110 0101 = fc006e65 OR6 + * 1111 1000 0000 0000 0110 1110 0110 0101 = f8006e65 OR6 */ #define CFG_BOOT_BLOCK 0xff800000 /* start of 8MB Flash */ @@ -167,7 +167,7 @@ #define CFG_BR6_PRELIM 0xfb801801 #define CFG_OR0_PRELIM 0xff806e65 -#define CFG_OR6_PRELIM 0xfc006e65 +#define CFG_OR6_PRELIM 0xf8006e65 #define CFG_FLASH_BANKS_LIST {CFG_FLASH_BASE} #define CFG_MAX_FLASH_BANKS 1 /* number of banks */ -- cgit v1.2.3 From 4acc2a108ad0a669165924704a6cb083f9138242 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 2 May 2008 18:17:50 -0400 Subject: fix building when saveenv is disabled in some setups If you enable environment in the flash, but disable the embedded option, and you disable the saveenv command, then the #if nested logic will trigger a compile failure: env_flash.c: In function 'env_relocate_spec': env_flash.c:399: error: 'flash_addr' undeclared (first use in this function) The fix is to add CMD_SAVEENV ifdef protection like everywhere else. Signed-off-by: Mike Frysinger --- common/env_flash.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/env_flash.c b/common/env_flash.c index eccfb62a3b..a92160ddfb 100644 --- a/common/env_flash.c +++ b/common/env_flash.c @@ -378,7 +378,9 @@ void env_relocate_spec (void) puts ("*** Warning - some problems detected " "reading environment; recovered successfully\n\n"); #endif /* CFG_ENV_ADDR_REDUND */ +#ifdef CMD_SAVEENV memcpy (env_ptr, (void*)flash_addr, CFG_ENV_SIZE); +#endif #endif /* ! ENV_IS_EMBEDDED || CFG_ENV_ADDR_REDUND */ } -- cgit v1.2.3 From aa737945e6f37a5de5dbad550a7694e0cb2a8120 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 2 May 2008 21:45:12 -0400 Subject: version_autogenerated.h: use printf rather than echo -n Some systems are dumb and do not implement the -n flag to echo (like OS X). Convert the Makefile to use printf as this should work everywhere. Signed-off-by: Mike Frysinger Signed-off-by: Wolfgang Denk --- Makefile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index ac0a17f6ce..ca860ba9f3 100644 --- a/Makefile +++ b/Makefile @@ -352,11 +352,9 @@ $(U_BOOT_ONENAND): $(ONENAND_IPL) $(obj)u-boot.bin $(obj)include/autoconf.mk cat $(obj)onenand_ipl/onenand-ipl-4k.bin $(obj)u-boot.bin > $(obj)u-boot-flexonenand.bin $(VERSION_FILE): - @( echo -n "#define U_BOOT_VERSION \"U-Boot " ; \ - echo -n "$(U_BOOT_VERSION)" ; \ - echo -n $(shell $(CONFIG_SHELL) $(TOPDIR)/tools/setlocalversion \ - $(TOPDIR)) ; \ - echo "\"" ) > $@.tmp + @( printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' "$(U_BOOT_VERSION)" \ + '$(shell $(CONFIG_SHELL) $(TOPDIR)/tools/setlocalversion $(TOPDIR))' \ + ) > $@.tmp @cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@ gdbtools: -- cgit v1.2.3 From 7c0773fde6100b61be2558cb5d8c442a3194aecb Mon Sep 17 00:00:00 2001 From: Wolfgang Denk Date: Sun, 4 May 2008 00:35:15 +0200 Subject: drivers/net/tsec.c: Fix typo. Signed-off-by: Wolfgang Denk --- drivers/net/tsec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index f86bfd7eea..c7af930b6b 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -1277,7 +1277,7 @@ struct phy_info phy_info_VSC8601 = { {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init}, #ifdef CFG_VSC8601_SKEWFIX {MIIM_VSC8601_EPHY_CON,MIIM_VSC8601_EPHY_CON_INIT_SKEW,NULL}, -if defined(CFG_VSC8601_SKEW_TX) && defined(CFG_VSC8601_SKEW_RX) +#if defined(CFG_VSC8601_SKEW_TX) && defined(CFG_VSC8601_SKEW_RX) {MIIM_EXT_PAGE_ACCESS,1,NULL}, #define VSC8101_SKEW (CFG_VSC8601_SKEW_TX<<14)|(CFG_VSC8601_SKEW_RX<<12) {MIIM_VSC8601_SKEW_CTRL,VSC8101_SKEW,NULL}, -- cgit v1.2.3