diff options
64 files changed, 1612 insertions, 557 deletions
@@ -1,3 +1,1183 @@ +commit f2352877cb2daac88115192fb09991a2397d0b27 +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Sun Dec 6 23:58:28 2009 -0600 + + MAKEALL: Fix return value + + Previously MAKEALL would always return a value of 0, even if 1 or more + boards did not compile. This change causes MAKEALL to return 0 if all + boards were able to build, otherwise 1. + + This change also requires changing the script interpreter from sh to + bash to support bash's PIPESTATUS variable. + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit fbc1c8f6f6c972524197829c56dd8f2f5da0200a +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Sun Dec 6 01:33:24 2009 -0600 + + tools/mkimage: Remove duplicate line of code + + Recent commits 1a99de2cb4d08eb3bf9fb3f60a9d533150de8c0e and + 6a590c5f5fd12cdd27f3153522acfac3854590e7 both fixed the same bug in the + same manner. Unfortunately git was "smart" enough to merge both changes + which resulted in some duplicate code. + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + + Reordered code and comment a bit. + + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit df002fa6b9cd475909ede35bf95b803c2289c6a4 +Author: Heiko Schocher <hs@denx.de> +Date: Sat Dec 5 11:59:51 2009 +0100 + + i2c: fix dangling comment in do_i2c_mw() + + commit bd3784df94bfeca43fbf34094df9cb1bd3ecca3b deleted some unused + code in do_i2c_mw(), but missed to also remove the respective + commment. This patch fixes this. + + Signed-off-by: Heiko Schocher <hs@denx.de> + +commit f8450829f921cf10667af98a8d08edfa3d998f04 +Author: Heiko Schocher <hs@denx.de> +Date: Tue Dec 1 19:30:47 2009 +0100 + + 52xx, manroland: add fdt_fixup_memory() in ft_board_setup() + + To update the real memory size in the memory node on the + uc101 and mucmc52 boards call fdt_fixup_memory() in + ft_board_setup(). + + Signed-off-by: Heiko Schocher <hs@denx.de> + +commit 0ec81db20294efdad2454a753e79f1fe244a43ca +Author: Daniel Hobi <daniel.hobi@schmid-telecom.ch> +Date: Tue Dec 1 14:05:55 2009 +0100 + + Fix computation in nand_util.c:get_len_incl_bad + + Depending on offset, flash size and the number of bad blocks, + get_len_incl_bad may return a too small value which may lead to: + + 1) If there are no bad blocks, nand_{read,write}_skip_bad chooses the + bad block aware read/write code. This may hurt performance, but does + not have any adverse effects. + + 2) If there are bad blocks, the nand_{read,write}_skip_bad may choose + the bad block unaware read/write code (if len_incl_bad == *length) + which leads to corrupted data. + + Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch> + +commit aabb8cb0818e285aeed0cfaf243635997e07554d +Author: Evan Samanas <esamanas@xes-inc.com> +Date: Mon Nov 9 20:08:36 2009 -0600 + + nfs: NfsTimeout() updates + + - NfsTimeout() does not correctly update the NFS timeout value which + results in NfsTimeout() only being called once in certain situations. + This can result in the 'nfs' command hanging indefinetly. For + example, the command: + + nfs 192.168.0.1:/home/user/file + + will not exit until ctrl-c is pressed if 192.168.0.1 does not have an + NFS server running. + + This issue is resolved by reinitializting the NFS timeout value inside + NfsTimeout() when a timeout occurs. + + - Make the 'nfs' command print the 'T' character when a timeout occurs. + Previously there was no indication that timeouts were occuring. + + - Mimic the 'tftpboot' command and when a download fails print "Retry + count exceeded; starting again", and restart the download taking the + 'netretry' environment variable into account. + + Signed-off-by: Evan Samanas <esamanas@xes-inc.com> + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + + Tested on TQM8xxL. + + Tested by: Wolfgang Denk <wd@denx.de> + + Tested on MPC8527DS. + + Tested by: Ed Swarthout <Ed.Swarthout@freescale.com> + +commit 224c90d1060bf1a83cbf33ca51d060b9d19e0294 +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Wed Nov 18 19:08:59 2009 -0600 + + bootm: Fix help message's sub-command ordering + + The help message for the 'bootm' command listed the 'cmdline' and 'bdt' + sub-commands in the wrong order which resulted in the error below when + following the 'help' command's instructions: + + "Trying to execute a command out of order" + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit a93c92cddaedd5f0720e0da15c6664f7a688b582 +Author: Robert P. J. Day <rpjday@crashcourse.ca> +Date: Tue Nov 17 07:30:23 2009 -0500 + + help: Correct syntax of nandecc help output. + + "nandecc" help output should not reproduce the command name, nor have + a trailing newline. + + Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> + +commit c2fff331a32ceca837d76eb7827d6340da270d52 +Author: Mike Rapoport <mike@compulab.co.il> +Date: Wed Nov 11 10:03:03 2009 +0200 + + smc911x: update SMC911X related configuration description + + Since commit 736fead8fdbf8a8407048bebc373cd551d01ec98 "Convert SMC911X + Ethernet driver to CONFIG_NET_MULTI API" SMC911X configration options + are called CONFIG_SMC911X rather than CONFIG_DRIVER_SMC911X. Update + README to reflect that change. + + Signed-off-by: Mike Rapoport <mike@compulab.co.il> + +commit 45b6b65c6bf06a589ef3123192af94b0381db27b +Author: Mike Rapoport <mike@compulab.co.il> +Date: Wed Nov 11 10:03:09 2009 +0200 + + smc911x: fix typo in smc911x_handle_mac_address name + + Signed-off-by: Mike Rapoport <mike@compulab.co.il> + +commit f64ef9bb995687e24e0b61b52316f4eaa97c3bbc +Author: Ed Swarthout <Ed.Swarthout@freescale.com> +Date: Thu Nov 19 02:47:28 2009 -0600 + + fix nfs symlink name corruption + + An off by one error may cause nfs readlink lookup fail if + nfs_path_buff has non-zero data from a previous use. + + Loading: *** ERROR: File lookup fail + + Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com> + +commit e8fac25e83426fdf461c66aa8a2530ec28ec536e +Author: Wolfgang Denk <wd@denx.de> +Date: Mon Dec 7 21:06:40 2009 +0100 + + at91sam9261ek.c: fix minor coding style issue. + + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit 4713010adf5beda87410d637ebfc58db0db9a9db +Author: Wolfgang Denk <wd@denx.de> +Date: Sun Dec 6 01:21:28 2009 +0100 + + trab: fix warning: implicit declaration of function 'disable_vfd' + + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit a9f99ab44b473fb394169ba365f8b4380f981584 +Author: Wolfgang Denk <wd@denx.de> +Date: Sun Dec 6 00:53:18 2009 +0100 + + zlib.c: avoid build conflicts for cradle board + + Commit dce3d79710 updated the zlib code to v0.95; this caused + conflicts when building for the "cradle" board, because the (pretty + generic) preprocessor variable "OFF" was used in multiple files. + Make sure to avoid further conflicts by #undef'ing it in zlib.c + before redefining it. + + Signed-off-by: Wolfgang Denk <wd@denx.de> + cc: Giuseppe Condorelli <giuseppe.condorelli@st.com> + cc: Angelo Castello <angelo.castello@st.com> + cc: Alessandro Rubini <rubini-list@gnudd.com> + +commit 8cbf4e4f17121d732e78764f0ba317c9a1838ea6 +Author: Wolfgang Denk <wd@denx.de> +Date: Sun Dec 6 00:26:19 2009 +0100 + + Fix out-of-tree building of "apollon" board. + + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit f68ab43de67f59925542efb6bcec30f4a84fe695 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Fri Dec 4 05:35:15 2009 -0500 + + lzma: ignore unset filesizes + + The Linux kernel build system changed how it compresses things with LZMA + such that the header no longer contains the filesize (it is instead set to + all F's). So if we get a LZMA image that has -1 for the 64bit field, + let's just assume that the decompressed size is unknown and continue on. + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit cccfc2ab77877dbdd2abe26b28d4c1f467feb0c0 +Author: Detlev Zundel <dzu@denx.de> +Date: Tue Dec 1 17:16:19 2009 +0100 + + README: Rearrange paragraphs to regain linear arrangement. + + Two later additions to the Configuration Option section unfortunately + split the description of Show boot progress and the list of its call outs. + + Signed-off-by: Detlev Zundel <dzu@denx.de> + +commit c81296c16fd9d12422c9968cc0f1d9bf440a7d88 +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Tue Nov 24 16:42:10 2009 -0600 + + tools/mkimage: Print FIT image contents after creation + + Previously, there was no indication to the user that a FIT image was + successfully created after executing mkimage. For example: + + $ mkimage -f uImage.its uImage.itb + DTC: dts->dtb on file "uImage.its" + + Adding some additional output after creating a FIT image lets the user + know exactly what is contained in their image, eg: + + $ mkimage -f uImage.its uImage.itb + DTC: dts->dtb on file "uImage.its" + FIT description: Linux kernel 2.6.32-rc7-00201-g7550d6f-dirty + Created: Tue Nov 24 15:43:01 2009 + Image 0 (kernel@1) + Description: Linux Kernel 2.6.32-rc7-00201-g7550d6f-dirty + Type: Kernel Image + Compression: gzip compressed + Data Size: 2707311 Bytes = 2643.86 kB = 2.58 MB + Architecture: PowerPC + OS: Linux + Load Address: 0x00000000 + Entry Point: 0x00000000 + Hash algo: crc32 + Hash value: efe0798b + Hash algo: sha1 + Hash value: ecafba8c95684f2c8fec67e33c41ec88df1534d7 + Image 1 (fdt@1) + Description: Flattened Device Tree blob + Type: Flat Device Tree + Compression: uncompressed + Data Size: 12288 Bytes = 12.00 kB = 0.01 MB + Architecture: PowerPC + Hash algo: crc32 + Hash value: a5cab676 + Hash algo: sha1 + Hash value: 168722b13e305283cfd6603dfe8248cc329adea6 + Default Configuration: 'config@1' + Configuration 0 (config@1) + Description: Default Linux kernel + Kernel: kernel@1 + FDT: fdt@1 + + This brings the behavior of creating a FIT image in line with creating a + standard uImage, which also prints out the uImage contents after + creation. + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit 8e1c89663cc8796b85588910046e03b388a7597c +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Tue Nov 24 16:42:09 2009 -0600 + + tools/fit_image.c: Remove unused fit_set_header() + + The FIT fit_set_header() function was copied from the standard uImage's + image_set_header() function during mkimage reorganization. However, the + fit_set_header() function is not used since FIT images use a standard + device tree blob header. + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit 1a99de2cb4d08eb3bf9fb3f60a9d533150de8c0e +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Tue Nov 24 16:42:08 2009 -0600 + + tools/mkimage: Assume FDT image type for FIT images + + When building a Flattened Image Tree (FIT) the image type needs to be + "flat_dt". Commit 89a4d6b12fd6394898b8a454cbabeaf1cd59bae5 introduced a + regression which caused the user to need to specify the "-T flat_dt" + parameter on the command line when building a FIT image. The "-T + flat_dt" parameter should not be needed and is at odds with the current + FIT image documentation. + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit 270737acca21f3939f814de5dcf350a1c3d80d83 +Author: Michael Brandt <Michael.Brandt@emsyso.de> +Date: Sun Nov 22 14:13:27 2009 +0100 + + EXT2FS: fix inode size for ext2fs rev#0 + + extfs.c assumes that there is always a valid inode_size field in the + superblock. But this is not true for ext2fs rev 0. Such ext2fs images + are for instance generated by genext2fs. Symptoms on ARM machines are + messages like: "raise: Signal # 8 caught"; on PowerPC "ext2ls" will + print nothing. + This fix checks for rev 0 and uses then 128 bytes as inode size. + + Signed-off-by: Michael Brandt <Michael.Brandt@emsyso.de> + Tested on: TQM5200S + Tested-by: Wolfgang Denk <wd@denx.de> + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit bcb324d68f7955c1136dafc944eb55db8ebaa601 +Author: Robert P. J. Day <rpjday@crashcourse.ca> +Date: Thu Nov 19 11:00:28 2009 -0500 + + Remove superfluous preprocessor tests from some cmd_*.c files. + + A small number of common/cmd_*.c files contain preprocessor tests that + are apparently superfluous since those same tests are used in the + Makefile to control the compilation of those files. Those tests are + clearly redundant as long as they surround the entirety of the source + in those files. + + Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> + +commit ad53226156fa64b6d04c0d1d6e91e09979cbea15 +Author: Robert P. J. Day <rpjday@crashcourse.ca> +Date: Tue Nov 17 01:59:29 2009 -0500 + + README: Update the list of directories. + + Bring the directory listing more into line with current content. + + Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> + +commit bd3784df94bfeca43fbf34094df9cb1bd3ecca3b +Author: Pratap Chandu <pratap.rrke@gmail.com> +Date: Thu Nov 12 19:28:25 2009 +0530 + + Removes dead code in the file common/cmd_i2c.c + + There is some dead code enclosed by #if 0 .... #endif in the file + common/cmd_i2c.c + This patch removes the dead code. + + Signed-off-by: Pratap Chandu <pratap.rrke@gmail.com> + +commit 64a480601a5614b441de692ae15a62c51e0bb381 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Wed Nov 11 17:51:56 2009 -0500 + + smc91111_eeprom: drop CONFIG stub protection + + Since the Makefile now controls the compilation of this, there is no need + for CONFIG checking nor the stub function. + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit f3a7bddc06c927c36a1a99a97131299479ef207a +Author: Magnus Lilja <lilja.magnus@gmail.com> +Date: Wed Nov 11 19:56:58 2009 +0100 + + RTC: Fix return code in MC13783 RTC driver. + + Signed-off-by: Magnus Lilja <lilja.magnus@gmail.com> + +commit d52e3e0176a74c30549251e16c5c00a363c544d2 +Author: Magnus Lilja <lilja.magnus@gmail.com> +Date: Wed Nov 11 19:56:36 2009 +0100 + + cmd_date: Fix spelling in error message. + + Signed-off-by: Magnus Lilja <lilja.magnus@gmail.com> + +commit c253122395753abb9e531d8906c5265dc8803fb1 +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Wed Nov 11 10:36:28 2009 -0600 + + Move do_irqinfo() to common/cmd_irq.c + + cmd_irq.c is a much better home and it is already conditionally + compiled based on CONFIG_CMD_IRQ. + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit a5dd4dc64fe68e549c5ffcf6a048281b5ba94752 +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Wed Nov 11 10:36:19 2009 -0600 + + cmd_license: Remove unneeded #ifdef CONFIG_CMD_LICENSE + + cmd_license is already conditionally compiled at the Makefile-level. + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit 06015146a15adc7455440c491d543f6a8091551d +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Mon Nov 9 15:18:52 2009 -0600 + + m41t11: Remove unused functions + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit 9ef78511cda39987e5fc10febf386fd19f58ecf7 +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Mon Nov 9 15:17:50 2009 -0600 + + circbuf: Move to lib_generic and conditionally compile + + circbuf could be used as a generic library and is only currently + needed when CONFIG_USB_TTY is defined. + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit 604f7ce55ad74694ef8743ad2e99933dc0265e46 +Author: Sanjeev Premi <premi@ti.com> +Date: Mon Nov 9 22:43:00 2009 +0530 + + Fix build failure in examples/standalone + + Some versions of 'make' do not handle trailing white-spaces + properly. Trailing spaces in ELF causes a 'fake' source to + be added to the variable COBJS; leading to build failure + (listed below). The problem was found with GNU Make 3.80. + + Using text-function 'strip' as a workaround for the problem. + + make[1]: Entering directory `/home/sanjeev/u-boot/examples/standalone' + arm-none-linux-gnueabi-gcc -g -Os -fno-common -ffixed-r8 -msoft-float + -D__KERNEL__ -DTEXT_BASE=0x80e80000 -I/home/sanjeev/u-boot/include + -fno-builtin -ffreestanding -nostdinc -isystem /opt/codesourcery/2009q1- + 203/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/include -pipe -DCONFIG_ + ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5 + -Wall -Wstrict-prototypes -fno-stack-protector -g -Os -fno-common -ff + ixed-r8 -msoft-float -D__KERNEL__ -DTEXT_BASE=0x80e80000 -I/home/sanje + ev/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/co + desourcery/2009q1-203/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/includ + e -pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-inte + rwork -march=armv5 -I.. -Bstatic -T u-boot.lds -Ttext 0x80e80000 -o .c + arm-none-linux-gnueabi-gcc: no input files + make[1]: *** [.c] Error 1 + make[1]: Leaving directory `/home/sanjeev/u-boot/examples/standalone' + make: *** [examples/standalone] Error 2 + premi # + + Signed-off-by: Sanjeev Premi <premi@ti.com> + + Fixed typo (s/ElF/ELF/). + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit af860962b544ddf323c4ff68454f00d31e44df0a +Author: Becky Bruce <beckyb@kernel.crashing.org> +Date: Wed Nov 4 18:30:08 2009 -0600 + + 85xx: Remove unused CONFIG_ASSUME_AMD_FLASH from config files + + A bunch of the 85xx boards have this cruft in them - it's not used + anywhere. Delete it. + + Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org> + +commit deec1fbd4f704dded2e668bb9e368631981ea139 +Author: Wolfgang Denk <wd@denx.de> +Date: Wed Dec 2 22:26:30 2009 +0100 + + MAINTAINERS: update responsible for MPC85xx/86xx + + Signed-off-by: Wolfgang Denk <wd@denx.de> + Cc: Kumar Gala <galak@kernel.crashing.org> + Cc: Becky Bruce <beckyb@kernel.crashing.org> + +commit 824d82997fbcf28e49081d36fdd5d3be1b92b03d +Author: Ira W. Snyder <iws@ovro.caltech.edu> +Date: Wed Nov 4 13:37:59 2009 -0800 + + Fix example FIT image source files + + The example FIT image source files do not compile with the latest dtc and + mkimage. The following error message is produced: + + DTC: dts->dtb on file "kernel.its" + Error: kernel.its 7:0 - 1:0 syntax error + FATAL ERROR: Unable to parse input tree + ./mkimage: Can't read kernel.itb.tmp: Invalid argument + + The FIT image source files are missing the "/dts-v1/;" directive at the + beginning of the file. Add the directive to the examples. + + Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu> + +commit fd66066ee3ce15c2966feb9b2be0f0d51a95db48 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Wed Nov 4 16:13:19 2009 -0500 + + img2srec: use standard types + + The img2srec code creates a lot of typedefs with common names. These + easily clash with system headers that include these typedefs (like mingw). + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit 8204e068110e8abe5db9c3b7df9971b58cda8f26 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Wed Nov 4 16:03:25 2009 -0500 + + tools: gitignore *.exe binaries + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit 425d3b666eee5c58fdb82fb894a535dd71782a05 +Author: Peter Tyser <ptyser@xes-inc.com> +Date: Tue Nov 3 23:31:07 2009 -0600 + + ppc: Move conditional compilation of kgdb.c to Makefile + + Signed-off-by: Peter Tyser <ptyser@xes-inc.com> + +commit e06ab6546b332acc55ac4e7c31338662328b0fb3 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Tue Nov 3 11:36:39 2009 -0500 + + spi_flash.h: pull in linux/types.h for u## types + +commit 0008555f4d57c15ad86ee735861ca0d783042f61 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Tue Nov 3 11:36:26 2009 -0500 + + bootm: mark local boot_os[] table static + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit a8fa379d47f06c7d3ed75c8fb26ae43ee38e1fd7 +Author: Nishanth Menon <nm@ti.com> +Date: Mon Nov 2 09:40:18 2009 -0600 + + mkconfig: deny messed up ARCH definition + + Refuse to setup a platform if the command line ARCH= is not the same + as the one required for the board. This prevents any user with + prehistoric aliases from messing up their builds. + + Reported in thread: + http://old.nabble.com/-U-Boot--Build-breaks-on-some-OMAP3-configs-to26132721.html + + Inputs from: Mike Frysinger and Wolfgang Denk: + http://lists.denx.de/pipermail/u-boot/2009-November/063642.html + + Cc: Wolfgang Denk <wd@denx.de> + Cc: Mike Frysinger <vapier@gentoo.org> + Cc: Anand Gadiyar <gadiyar@ti.com> + Cc: Dirk Behme <dirk.behme@googlemail.com> + Signed-off-by: Nishanth Menon <nm@ti.com> + +commit 67b96e87da1b84660fa1e5b78cc760246d116814 +Author: Remy Bohmer <linux@bohmer.net> +Date: Wed Oct 28 22:13:39 2009 +0100 + + Repair the 'netretry=once' option. + + 'netretry = once' does the same as 'netretry = yes', because it is not stored + when it was tried once. + + Signed-off-by: Remy Bohmer <linux@bohmer.net> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit b25e38fc36e13fa8037fa4d37fe909d1d6e6f372 +Author: Remy Bohmer <linux@bohmer.net> +Date: Thu Oct 29 14:24:22 2009 +0100 + + Repair build fail in case CONFIG_PPC=n and CONFIG_FIT=y + + Signed-off-by: Remy Bohmer <linux@bohmer.net> + +commit 01826abc02ce160501534788e63629ccbe31b05c +Author: Grazvydas Ignotas <notasas@gmail.com> +Date: Thu Nov 12 11:46:07 2009 +0200 + + OMAP3: pandora: fix booting without serial attached + + When the board is booted without serial cable attached (which + is how most of them will be used) UART RX is left floating and + sometimes picks noise, which interrupts countdown and enters + U-Boot prompt instead of booting the kernel. + + Fix this by setting up internal pullup on UART RX pin. This + does not prevent serial from working as the internal pullup + is weak. + + Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> + +commit 41dfd8a60324243dbe2dc313a607910824a68aa7 +Author: Remy Bohmer <linux@bohmer.net> +Date: Wed Oct 28 22:13:37 2009 +0100 + + Add support for CS2 dataflash for Atmel-SPI. + + The only missing chipselect line support is CS2, and I need it on + CS2... + + Signed-off-by: Remy Bohmer <linux@bohmer.net> + +commit faf36c1437c95e4a86835633d9801c5f6396a3c7 +Author: Remy Bohmer <linux@bohmer.net> +Date: Wed Oct 28 22:13:36 2009 +0100 + + Fix mingw tools build + + mkimage does not build due to missing strtok_r() and getline() implementation + + Signed-off-by: Remy Bohmer <linux@bohmer.net> + +commit 6a590c5f5fd12cdd27f3153522acfac3854590e7 +Author: Remy Bohmer <linux@bohmer.net> +Date: Wed Oct 28 22:13:35 2009 +0100 + + Building of FIT images does not work. + + The type is not set for generation of the FIT images, resulting + in no images being created without printing or returning an error + + Signed-off-by: Remy Bohmer <linux@bohmer.net> + +commit 0a7691e820e33b23f61c6ea0ef6fa72099d1a6ae +Author: Renato Andreola <renato.andreola@imagos.it> +Date: Mon Nov 23 16:45:14 2009 -0500 + + Nios2: do_boom_linux(): kernel gunzip input data integrity problem due to + missing cache flush. + + Added instruction and data caches flush. + + Signed-off-by: Scott McNutt <smcnutt@psyent.com> + +commit de03825386eaedb5e17261dd87cde86e9a764ba9 +Author: Scott McNutt <smcnutt@psyent.com> +Date: Mon Nov 23 16:29:40 2009 -0500 + + Nios2: Fix compiler warnings in lib_nios2/board.c (unused variables) + + Signed-off-by: Scott McNutt <smcnutt@psyent.com> + +commit 57baa379cf2f67df89a5c6052767fd25daff20bd +Author: Scott McNutt <smcnutt@psyent.com> +Date: Mon Nov 23 15:54:25 2009 -0500 + + Nios2/Nios: Remove unnecessary (residual) linker Nios command scripts from + the standalone examples. + + Signed-off-by: Scott McNutt <smcnutt@psyent.com> + +commit fcffb680e77fcb48598d4a9944dbe2d4503170e0 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Wed Oct 14 19:28:03 2009 -0400 + + sf: fix stmicro offset setup while erasing + + Reported-by: Peter Gombos <gombos@protecta.hu> + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit d394a7795027d96ca55799df40bd5c4a13dbeebe +Author: Jason McMullan <mcmullan@netapp.com> +Date: Fri Oct 9 17:12:23 2009 -0400 + + sf: new driver for Winbond W25X16/32/64 devices + + Signed-off-by: Jason McMullan <jason.mcmullan@gmail.com> + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit cada315100c88894b85972a91309a6f2413966b6 +Author: Marcel Ziswiler <marcel@ziswiler.com> +Date: Thu Oct 1 23:55:17 2009 +0200 + + mpc8260: move FDT memory node fixup into common CPU code. + + Signed-off-by: Marcel Ziswiler <marcel.ziswiler@noser.com> + Tested-by: Heiko Schocher <hs@denx.de> + +commit f2cea405f83da46b72098ea874fb3eefe185d312 +Author: Po-Yu Chuang <ratbert.chuang@gmail.com> +Date: Wed Sep 23 15:52:35 2009 +0800 + + Add driver for FTRTC010 real time clock + + Signed-off-by: Po-Yu Chuang <ratbert@faraday-tech.com> + + Edited commit message. + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit c0356a88011330646e960dfac8a2c909bede3304 +Author: Mark Jackson <mpfj-list@mimc.co.uk> +Date: Mon Aug 17 16:42:52 2009 +0100 + + MIMC200: set default fbmem value + + This patch adds a default bootargs "fbmem" value to the + CONFIG_BOOTARGS string for the MIMC200 board. + + Signed-off-by: Mark Jackson <mpfj@mimc.co.uk> + +commit 3ffc0d61bad7d986e344ce7062b37c5c8f04fb0e +Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com> +Date: Tue Oct 27 19:58:09 2009 +0100 + + ppc4xx: Initialize magnetic coupler on VOM405 boards + + This patch fixes an ugly behavior of the IL712 magnetic coupler + as used on VOM405. These parts will remember their last state + over a power cycle which might cause unwanted behavior. + + Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> + Signed-off-by: Stefan Roese <sr@denx.de> + +commit be0db3e3141c6c6b4e232b51091f35a284cc54e5 +Author: Matthias Fuchs <matthias.fuchs@esd.eu> +Date: Mon Oct 26 09:58:45 2009 +0100 + + ppc4xx: Initialize magnetic couplers in PLU405 + + This patch fixes an ugly behavior of the IL712 magnetic couplers + as used on PLU405. These parts will remember their last state + over a power cycle which might cause unwanted behavior. + + Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> + Signed-off-by: Stefan Roese <sr@denx.de> + +commit 067f54c66acd469870ef6946e1591bfcc02de1b3 +Author: Matthias Fuchs <matthias.fuchs@esd.eu> +Date: Mon Oct 26 09:55:40 2009 +0100 + + Add minimal SJA1000 header for basic CAN mode + + This patch is in preparation for the upcoming PLU405 board fix. + + Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> + Signed-off-by: Stefan Roese <sr@denx.de> + +commit cdbdbe65f5f006cba208accee5a126c659d4b867 +Author: Kumar Gala <galak@kernel.crashing.org> +Date: Fri Nov 13 08:52:21 2009 -0600 + + ppc/85xx: Fix how we determine the number of CAM entries + + We were incorrectly use the max CAM size as the number of entries in + the array for setting up the addrmap. We should be using the NENTRY + field which is the low 12-bits of TLB1CFG. + + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit fbd47b6753b08162436d9ccad1e63c8d43ede54c +Author: Mike Rapoport <mike@compulab.co.il> +Date: Thu Nov 12 15:35:08 2009 +0200 + + smc911x: make smc911x_initialize return correct value + + Make smc911x_initialize return -1 on error and number of interfaces + detected otherwise. + + Signed-off-by: Mike Rapoport <mike@compulab.co.il> + Acked-by: Mike Frysinger <vapier@gentoo.org> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit c44efcf97b335dcef7d014f65b7d3094e79adb13 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Thu Nov 12 22:26:02 2009 -0500 + + smc911x_eeprom: fix building after smc911x overhaul + + When the smc911x driver was converted to NET_MULTI, the smc911x eeprom was + missed. The config option needed updating as well as overhauling of the + rergister read/write functions. + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + Tested-by: Mike Rapoport <mike.rapoport@gmail.com> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit 3ad95deb30ac73bd57e966d321215a17d3236f9f +Author: Dave Liu <daveliu@freescale.com> +Date: Thu Nov 12 07:26:37 2009 +0800 + + fsl-ddr: Fix the chip-select interleaving issue + + commit 1542fbdeec0d1e2a6df13189df8dcb1ce8802be3 + introduced one new bug to chip-select interleaving. + + Single DDR controller also can do the chip-select + interleaving if there is dual-rank or qual-rank DIMMs. + + Signed-off-by: Dave Liu <daveliu@freescale.com> + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit 651ef90fa6ca824c8e581aeef9e04bbbe7f7e9ce +Author: javier Martin <javier.martin@vista-silicon.com> +Date: Thu Oct 29 08:22:43 2009 +0100 + + mxc_fec: avoid free() calls to already freed pointers. + + Sometimes, inside NetLoop, eth_halt() is called before eth_init() has + been called. This is harmless except for free() calls to pointers + which have not been allocated yet. + + This patch initializes those pointers to NULL and allocates them only + the first time. This way we can get rid of free calls in halt callback. + + This has been tested in i.MX27 Litekit board and eldk-4.2 toolchains. + + Signed-off-by: Javier Martin <javier.martin@vista-silicon.com> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit e8f1546a88b4ade6a910c4a7958a774ee1b40023 +Author: javier Martin <javier.martin@vista-silicon.com> +Date: Thu Oct 29 08:18:34 2009 +0100 + + mxc_fec: fix some erroneous PHY accesses. + + This patch fixes erroneous access to the ethernet PHY which broke the driver. + 1. Selector field in the auto-negotiation register must be 0x00001 for + using 802.3, not 0x00000 which is reseved. + 2. Access to the PHY address specified by CONFIG_FEC_MXC_PHYADDR, not + 0x0 fixed address. + + This has been tested in i.MX27 Litekit board and eldk-4.2 toolchains. + + Now using proper defines for auto-negotiation register. + + Signed-off-by: Javier Martin <javier.martin@vista-silicon.com> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit f865fcbbb35851e75fee9c3a3fa8e0f71d9e6463 +Author: Ron Lee <ron@debian.org> +Date: Wed Aug 5 20:14:01 2009 +0200 + + ARM Don't inline weak symbols + + ------------------------------------------------------------------------ + + GCC 4.4 complains about this now. + + Signed-off-by: Ron Lee <ron@debian.org> + +commit d14c7ec2b51fb92c4a5218b299b772c3d186510d +Author: Ben Warren <biggerbadderben@gmail.com> +Date: Mon Nov 9 13:09:57 2009 -0800 + + Fix SMC91111 regression: lpd7a40x build failures + + Both lpd7a400 and lpd7a404 failed to compile because they had + CONFIG_SMC_USE_IOFUNCS defined: + + examples/standalone/smc91111_eeprom.c:388: undefined reference to `SMC_outw' + + Also removed an orphaned paren in lpd7a404.h + + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit 1031ae960ce6ce8332190278a06e2d72c2b2793e +Author: Ben Warren <biggerbadderben@gmail.com> +Date: Mon Nov 9 14:01:08 2009 -0800 + + SMC91111: Clean up SMC_inx macros on xsengine and xaeniax + + This patch fixes the following warnings: + + Configuring for xaeniax board... + smc91111_eeprom.c: In function 'print_macaddr': + smc91111_eeprom.c:278: warning: suggest parentheses around + or - in operand of & + smc91111_eeprom.c:281: warning: suggest parentheses around + or - in operand of & + ... + Configuring for xsengine board... + smc91111_eeprom.c: In function 'print_macaddr': + smc91111_eeprom.c:278: warning: suggest parentheses around + or - inside shift + smc91111_eeprom.c:281: warning: suggest parentheses around + or - inside shift + + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit 830c7b6722c6a9762411bf52a7bf2fae4dc71dab +Author: Ben Warren <biggerbadderben@gmail.com> +Date: Mon Nov 9 11:43:18 2009 -0800 + + Fix CS8900 regression on impa7 board + + The following error was seen on impa7 board, due to its use of a 32-bit bus + on CS8900. + cs8900.c:137:37: error: macro "get_reg_init_bus" passed 2 arguments, but takes just 1 + + This patch gives the macro the correct number of arguments + + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit e5c5d9e0834bacf1c4787fa76cc4e369f2597cf5 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Sun Nov 1 22:39:56 2009 -0500 + + clarify eth driver halt/recv steps + + The dev->halt() func can be called at any time, and the dev->recv() func + does not need to use NetRxPackets[] when calling NetReceive(). + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit 497ab0eec5e1e2dfccc141a4485cd6b940e1424a +Author: Hui.Tang <zetalabs@gmail.com> +Date: Thu Nov 5 09:58:44 2009 +0800 + + Fix cs8900 dev->priv not init issue + + Ensure all CS8900 data structures are assigned before accessing device + + Signed-off-by: Hui.Tang <zetalabs@gmail.com> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit 4fe5193d464ecdac26ddc71b1351be5b86bbff29 +Author: Stefan Roese <sr@denx.de> +Date: Tue Nov 3 14:34:45 2009 +0100 + + ppc4xx: 44x_spd_ddr2.c: Fix register macro ECCCR -> ECCES (SDRAM_ECCES) + + This error only appears when DEBUG is enabled in this driver. That's why + it went unnoticed till now. + + Signed-off-by: Stefan Roese <sr@denx.de> + +commit 916ed9444d3ab7b5cd6312557005f2a764a8baf7 +Author: Stefan Roese <sr@denx.de> +Date: Thu Oct 29 18:37:45 2009 +0100 + + ppc4xx: Canyonlands: Change EBC bus config to drive always (no high-z) + + This patch fixes a problem only seen very occasionally on Canyonlands. + The NOR flash interface (CFI driver) doesn't work reliably in all cases. + Erasing and/or programming sometimes doesn't work. Sometimes with + an error message, like "flash not erased" when trying to program an + area that should have just been erased. And sometimes without any error + messages. As mentioned above, this problem was only seen rarely and with + some PLL configuration (CPU speed, EBC speed). + + Now I spotted this problem a few times, when running my Canyonlands with + the following setup (chip_config): + + 1000-nor - NOR CPU:1000 PLB: 200 OPB: 100 EBC: 100 + + Changing the EBC configuration to not release the bus into high + impedance state inbetween the transfers (ATC, DTC and CTC bits set to 1 + in EBC0_CFG) seems to fix this problem. I haven't seen any failure + anymore with this patch applied. + + Signed-off-by: Stefan Roese <sr@denx.de> + Cc: David Mitchell <dmitchell@amcc.com> + Cc: Jeff Mann <MannJ@embeddedplanet.com> + +commit 25793f76bf9a7be59c9415ef0f78d034e8d53dae +Author: Remy Bohmer <linux@bohmer.net> +Date: Thu Oct 29 12:29:37 2009 +0100 + + ARM: Use Linux version for unaligned access code + + The asm-arm/unaligned.h includes linux/unaligned/access_ok.h + This file is unsafe to be used on ARM, since it does an unaligned memory + accesses which fails on ARM. + + Lookin at Linux the basic difference seems to be the header + "include/asm-arm/unaligned.h". The Linux version of "unaligned.h" + does *not* include "access_ok.h" at all. It includes "le_byteshift.h" + and "be_byteshift.h" instead. + + Signed-off-by: Remy Bohmer <linux@bohmer.net> + Signed-off-by: Stefan Roese <sr@denx.de> + -- + include/asm-arm/unaligned.h | 3 - + include/linux/unaligned/be_byteshift.h | 70 +++++++++++++++++++++++++++++++++ + include/linux/unaligned/le_byteshift.h | 70 +++++++++++++++++++++++++++++++++ + 3 files changed, 142 insertions(+), 1 deletion(-) + create mode 100644 include/linux/unaligned/be_byteshift.h + create mode 100644 include/linux/unaligned/le_byteshift.h + +commit 6d6e7c53d5c75e5e24841c5506f4ed9d82adee09 +Author: Kumar Gala <galak@kernel.crashing.org> +Date: Wed Nov 4 18:02:10 2009 -0600 + + ppc/85xx: Fix inclusion of 83xx immap in 85xx builds + + The nand_boot_fsl_elbc.c is shared between 83xx & 85xx however we should + not be including the immap_83xx.h when building 85xx. We can just get + this all from common.h + + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit 107b579c75256212d4bf8b99ee8d68e0078f3646 +Author: Becky Bruce <beckyb@kernel.crashing.org> +Date: Wed Nov 4 17:34:04 2009 -0600 + + 86xx: Remove redundant code in initdram + + The same code exists both inside an #ifdef and outside of it. + Remove the extra code for all the 86xx boards. + + Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org> + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit 715d8f7608f77c93f1807a032644893fd5b6d08b +Author: Ed Swarthout <Ed.Swarthout@freescale.com> +Date: Mon Nov 2 09:05:49 2009 -0600 + + fsl_pci_init_port end-point initialization is broken + + commit 70ed869e broke fsl pcie end-point initialization. + Returning 0 is not correct. The function must return the first free + bus number for the next controller. + + fsl_pci_init() must still be called and a bus allocated even if the + controller is an end-point. + + Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com> + Acked-by: Vivek Mahajan <vivek.mahajan@freescale.com> + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit 01471d538fb163f472a769f21267d7676c91267c +Author: Kumar Gala <galak@kernel.crashing.org> +Date: Wed Nov 4 01:29:04 2009 -0600 + + Revert "ppc/85xx/pci: fsl_pci_init: pcie agent mode support" + + This reverts commit 70ed869ea5f6b1d13d7b140c83ec0dcd8a127ddc. + + There isn't any need to modify the API for fsl_pci_init_port to pass the + status of host/agent(end-point) status. We can determine that + internally to fsl_pci_init_port. Revert the patch that makes the API + change. + + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit ff88229549e08fdd3f9127c1cc4db11a3576250f +Author: Dave Liu <daveliu@freescale.com> +Date: Sat Oct 31 07:59:55 2009 +0800 + + ppc/85xx: Fix misc L2 cache enabling bug + + We need loop-check the flash clear lock and enable bit for L2 cache. + + Signed-off-by: Dave Liu <daveliu@freescale.com> + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit 59434fe243962758742af5cb8e2ced976e17c302 +Author: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> +Date: Fri Oct 30 10:16:27 2009 +0900 + + sh: Update lowlevel_init.S of espt-giga + + There was the point that did not use write macro. + Change to write macro. + + Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> + +commit f1cae1969d9e971fb72827a5731ce7e752464aa2 +Author: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> +Date: Fri Oct 30 10:01:25 2009 +0900 + + sh: Move some defs to convince 'pcrel too far' + + Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> + Signed-off-by: Takashi Yoshii <yoshii.takashi@gmail.com> + +commit 0f9eaf4b323ea0ca95944b84c7465b81ba575514 +Author: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> +Date: Thu Oct 15 13:36:34 2009 +0900 + + sh: Remove malloc_bin_reloc from lib_sh, lib_nios2 and lib_nios. + + By "arm/microblaze/nios/nios2/sh: Remove relocation fixups" + (commit: 0630535e2d062dd73c1ceca5c6125c86d1127a49", doesn't need + malloc_bin_reloc function. This commit remove this. + + Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> + +commit 0775437293a6963cb21244dfae6978cbf67c6bfe +Author: Ben Warren <biggerbadderben@gmail.com> +Date: Wed Oct 21 21:53:39 2009 -0700 + + Fix DM9000 MAC address handling + + Proper behavior is to pull MAC address from NVRAM in the initialization() an + stuff it in dev->address, then program the device from dev->address in + the init() function. + + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit 98d92d8c9f4021629a45261ad5ec3f3595f3a27a +Author: Wolfgang Denk <wd@denx.de> +Date: Wed Oct 28 22:07:56 2009 +0100 + + sbc8349: fix incorrect comment + + The comment for the BR0_PRELIM port size initialization incorrectly + stated 32 bit, while it's actually 16 bit. The code is correct. + + Reported-by: Guenter Koellner <guenter.koellner@nsn.com> + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit a38f85e180a30b6225808828ded1017b1a5418c6 +Author: Sandeep Paulraj <s-paulraj@ti.com> +Date: Wed Oct 28 11:05:03 2009 -0400 + + Fix Compliation warning for TNY-A9260 and TNY-A9G20 + + The patch fixes a compilation warning by defining + CONFIG_SYS_64BIT_VSPRINTF in the config file + + Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com> + +commit 264e42ee54f1d322805d9068168fd362b413fd09 +Author: Sandeep Paulraj <s-paulraj@ti.com> +Date: Wed Oct 28 11:04:53 2009 -0400 + + Fix Compliation warning for SBC35-A9G20 board + + The patch fixes a compilation warning by defining + CONFIG_SYS_64BIT_VSPRINTF in the config file + + Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com> + +commit 353462f6ff9769091fb644d44d8025f20a4192d9 +Author: Eric Millbrandt <emillbrandt@coldhaus.com> +Date: Wed Oct 28 09:37:33 2009 -0500 + + galaxy5200: Add default environment variables + + Extend bootdelay to 10 seconds. Set boot retry time to 120 seconds and use + reset to retry. Define default bootcommand and bootargs for production. + + Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com> + +commit fa36ae790eb10ce70935f9a78f07703719dca422 +Author: Stefan Roese <sr@denx.de> +Date: Tue Oct 27 15:15:55 2009 +0100 + + cfi: Add weak default function for flash_cmd_reset() + + Currently the CFI driver issues both AMD and Intel reset commands. + This is because the driver doesn't know yet which chips are connected. + This dual reset seems to cause problems with the M29W128G chips as + reported by Richard Retanubun. This patch now introduces a weak default + function for the CFI reset command, still with both resets. This can + be overridden by a board specific version if necessary. + + Signed-off-by: Stefan Roese <sr@denx.de> + Cc: Richard Retanubun <RichardRetanubun@ruggedcom.com> + +commit 4946775c6db52dba28f72ba3525764b54f1d4593 +Author: Wolfgang Denk <wd@denx.de> +Date: Wed Oct 28 00:49:47 2009 +0100 + + Coding Style cleanup; update CHANGELOG, prepare -rc1 + + Signed-off-by: Wolfgang Denk <wd@denx.de> + commit 246c69225c7b962d5c93e92282b78ca9fc5fefee Author: Peter Tyser <ptyser@xes-inc.com> Date: Sun Oct 25 15:12:56 2009 -0500 @@ -260,6 +1440,15 @@ Date: Tue Oct 27 09:26:55 2009 +0530 Signed-off-by: Poonam Aggrwal <poonam.aggrwal@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> +commit 2c0c58b92dbb68007061bdc0edd23bdf142efebf +Author: Sergey Mironov <ierton@gmail.com> +Date: Wed Sep 23 16:47:38 2009 +0400 + + Fix bug in jumptable call stubs for SPARC. + + Signed-off-by: Sergey Mironov <ierton@gmail.com> + Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> + commit 3e303f748cf57fb23e8ec95ab7eac0074be50e2b Author: Anton Vorontsov <avorontsov@ru.mvista.com> Date: Thu Oct 15 17:47:04 2009 +0400 diff --git a/MAINTAINERS b/MAINTAINERS index d70a9d22d..59599b8bc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -277,7 +277,7 @@ Nye Liu <nyet@zumanetworks.com> ZUMA MPC7xx_74xx -Jon Loeliger <jdl@freescale.com> +Kumar Gala <kumar.gala@freescale.com> MPC8540ADS MPC8540 MPC8560ADS MPC8560 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Print statistics when we exit trap exit 1 2 3 15 @@ -39,6 +39,7 @@ LIST="" ERR_CNT=0 ERR_LIST="" TOTAL_CNT=0 +RC=0 ######################################################################### ## MPC5xx Systems @@ -936,6 +937,12 @@ build_target() { ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \ | tee ${LOG_DIR}/$target.ERR + + # Check for 'make' errors + if [ ${PIPESTATUS[0]} -ne 0 ] ; then + RC=1 + fi + if [ -s ${LOG_DIR}/$target.ERR ] ; then ERR_CNT=$((ERR_CNT + 1)) ERR_LIST="${ERR_LIST} $target" @@ -959,6 +966,8 @@ print_stats() { echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )" fi echo "----------------------------------------------------------" + + exit $RC } #----------------------------------------------------------------------- @@ -24,7 +24,7 @@ VERSION = 2009 PATCHLEVEL = 11 SUBLEVEL = -EXTRAVERSION = -rc1 +EXTRAVERSION = -rc2 ifneq "$(SUBLEVEL)" "" U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) else @@ -3281,6 +3281,7 @@ zylonite_config : ######################################################################### apollon_config : unconfig + @mkdir -p $(obj)include @echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h @$(MKCONFIG) $(@:_config=) arm arm1136 apollon NULL omap24xx @echo "CONFIG_ONENAND_U_BOOT = y" >> $(obj)include/config.mk @@ -1,5 +1,5 @@ # -# (C) Copyright 2000 - 2008 +# (C) Copyright 2000 - 2009 # Wolfgang Denk, DENX Software Engineering, wd@denx.de. # # See file CREDITS for list of people who contributed to this @@ -138,6 +138,7 @@ U-Boot will always have a patchlevel of "0". Directory Hierarchy: ==================== +- api Machine/arch independent API for external apps - board Board dependent files - common Misc architecture independent functions - cpu CPU specific files @@ -178,8 +179,8 @@ Directory Hierarchy: - disk Code for disk drive partition handling - doc Documentation (don't expect too much) - drivers Commonly used device drivers -- dtt Digital Thermometer and Thermostat drivers - examples Example code for standalone applications, etc. +- fs Filesystem code (cramfs, ext2, jffs2, etc.) - include Header Files - lib_arm Files generic to ARM architecture - lib_avr32 Files generic to AVR32 architecture @@ -187,9 +188,12 @@ Directory Hierarchy: - lib_generic Files generic to all architectures - lib_i386 Files generic to i386 architecture - lib_m68k Files generic to m68k architecture +- lib_microblaze Files generic to microblaze architecture - lib_mips Files generic to MIPS architecture - lib_nios Files generic to NIOS architecture +- lib_nios2 Files generic to NIOS2 architecture - lib_ppc Files generic to PowerPC architecture +- lib_sh Files generic to SH architecture - lib_sparc Files generic to SPARC architecture - libfdt Library files to support flattened device trees - net Networking code @@ -842,20 +846,20 @@ The following options need to be configured: Define this to use i/o functions instead of macros (some hardware wont work with macros) - CONFIG_DRIVER_SMC911X + CONFIG_SMC911X Support for SMSC's LAN911x and LAN921x chips - CONFIG_DRIVER_SMC911X_BASE + CONFIG_SMC911X_BASE Define this to hold the physical address of the device (I/O space) - CONFIG_DRIVER_SMC911X_32_BIT + CONFIG_SMC911X_32_BIT Define this if data bus is 32 bits - CONFIG_DRIVER_SMC911X_16_BIT + CONFIG_SMC911X_16_BIT Define this if data bus is 16 bits. If your processor automatically converts one 32 bit word to two 16 bit - words you may also try CONFIG_DRIVER_SMC911X_32_BIT. + words you may also try CONFIG_SMC911X_32_BIT. - USB Support: At the moment only the UHCI host controller is @@ -1889,25 +1893,6 @@ The following options need to be configured: example, some LED's) on your board. At the moment, the following checkpoints are implemented: -- Automatic software updates via TFTP server - CONFIG_UPDATE_TFTP - CONFIG_UPDATE_TFTP_CNT_MAX - CONFIG_UPDATE_TFTP_MSEC_MAX - - These options enable and control the auto-update feature; - for a more detailed description refer to doc/README.update. - -- MTD Support (mtdparts command, UBI support) - CONFIG_MTD_DEVICE - - Adds the MTD device infrastructure from the Linux kernel. - Needed for mtdparts command support. - - CONFIG_MTD_PARTITIONS - - Adds the MTD partitioning infrastructure from the Linux - kernel. Needed for UBI support. - Legacy uImage format: Arg Where When @@ -2061,6 +2046,25 @@ FIT uImage format: -150 common/cmd_nand.c Incorrect FIT image format 151 common/cmd_nand.c FIT image format OK +- Automatic software updates via TFTP server + CONFIG_UPDATE_TFTP + CONFIG_UPDATE_TFTP_CNT_MAX + CONFIG_UPDATE_TFTP_MSEC_MAX + + These options enable and control the auto-update feature; + for a more detailed description refer to doc/README.update. + +- MTD Support (mtdparts command, UBI support) + CONFIG_MTD_DEVICE + + Adds the MTD device infrastructure from the Linux kernel. + Needed for mtdparts command support. + + CONFIG_MTD_PARTITIONS + + Adds the MTD partitioning infrastructure from the Linux + kernel. Needed for UBI support. + Modem Support: -------------- diff --git a/board/atmel/at91sam9261ek/at91sam9261ek.c b/board/atmel/at91sam9261ek/at91sam9261ek.c index 2f6b599a6..7ead2b897 100644 --- a/board/atmel/at91sam9261ek/at91sam9261ek.c +++ b/board/atmel/at91sam9261ek/at91sam9261ek.c @@ -265,11 +265,12 @@ int board_init(void) } #ifdef CONFIG_DRIVER_DM9000 - int board_eth_init(bd_t *bis) - { +int board_eth_init(bd_t *bis) +{ return dm9000_initialize(bis); - } - #endif +} +#endif + int dram_init(void) { gd->bd->bi_dram[0].start = PHYS_SDRAM; diff --git a/board/mucmc52/mucmc52.c b/board/mucmc52/mucmc52.c index bac49beff..b4ed7357e 100644 --- a/board/mucmc52/mucmc52.c +++ b/board/mucmc52/mucmc52.c @@ -31,6 +31,7 @@ */ #include <common.h> +#include <fdt_support.h> #include <mpc5xxx.h> #include <pci.h> #include <malloc.h> @@ -403,5 +404,6 @@ void pci_init_board (void) void ft_board_setup(void *blob, bd_t *bd) { ft_cpu_setup(blob, bd); + fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize); } #endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */ diff --git a/board/pandora/pandora.h b/board/pandora/pandora.h index 5bfa0f9e2..f0ad16b0a 100644 --- a/board/pandora/pandora.h +++ b/board/pandora/pandora.h @@ -219,7 +219,8 @@ const omap3_sysinfo sysinfo = { MUX_VAL(CP(UART2_RX), (IEN | PTD | EN | M4)) /*GPIO_147,*/\ /*UART2_RX*/\ /*Serial Interface (Peripheral boot, Linux console, on AV connector)*/\ - MUX_VAL(CP(UART3_RX_IRRX), (IEN | PTD | DIS | M0)) /*UART3_RX*/\ + /*RX pulled up to avoid noise when nothing is connected to serial port*/\ + MUX_VAL(CP(UART3_RX_IRRX), (IEN | PTU | EN | M0)) /*UART3_RX*/\ MUX_VAL(CP(UART3_TX_IRTX), (IDIS | PTD | DIS | M0)) /*UART3_TX*/\ /*LEDs (Controlled by OMAP)*/\ MUX_VAL(CP(MMC1_DAT6), (IDIS | PTD | DIS | M4)) /*GPIO_128*/\ diff --git a/board/uc101/uc101.c b/board/uc101/uc101.c index 4030b9d0d..1485c0249 100644 --- a/board/uc101/uc101.c +++ b/board/uc101/uc101.c @@ -31,6 +31,7 @@ */ #include <common.h> +#include <fdt_support.h> #include <mpc5xxx.h> #include <pci.h> #include <malloc.h> @@ -376,5 +377,6 @@ void hw_watchdog_reset(void) void ft_board_setup(void *blob, bd_t *bd) { ft_cpu_setup(blob, bd); + fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize); } #endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */ diff --git a/common/Makefile b/common/Makefile index 7ba449505..9914bc243 100755 --- a/common/Makefile +++ b/common/Makefile @@ -29,7 +29,6 @@ AOBJS = # core COBJS-y += main.o -COBJS-y += circbuf.o COBJS-y += console.o COBJS-y += command.o COBJS-y += dlmalloc.o diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 8f8359856..e16552ec3 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -129,7 +129,7 @@ int do_bootelf (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); static boot_os_fn do_bootm_integrity; #endif -boot_os_fn * boot_os[] = { +static boot_os_fn *boot_os[] = { #ifdef CONFIG_BOOTM_LINUX [IH_OS_LINUX] = do_bootm_linux, #endif @@ -453,8 +453,8 @@ cmd_tbl_t cmd_bootm_sub[] = { #ifdef CONFIG_OF_LIBFDT U_BOOT_CMD_MKENT(fdt, 0, 1, (void *)BOOTM_STATE_FDT, "", ""), #endif - U_BOOT_CMD_MKENT(bdt, 0, 1, (void *)BOOTM_STATE_OS_BD_T, "", ""), U_BOOT_CMD_MKENT(cmdline, 0, 1, (void *)BOOTM_STATE_OS_CMDLINE, "", ""), + U_BOOT_CMD_MKENT(bdt, 0, 1, (void *)BOOTM_STATE_OS_BD_T, "", ""), U_BOOT_CMD_MKENT(prep, 0, 1, (void *)BOOTM_STATE_OS_PREP, "", ""), U_BOOT_CMD_MKENT(go, 0, 1, (void *)BOOTM_STATE_OS_GO, "", ""), }; @@ -524,7 +524,7 @@ int do_bootm_subcommand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } break; #endif -#ifdef CONFIG_OF_LIBFDT +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_SYS_BOOTMAPSZ) case BOOTM_STATE_FDT: { ulong bootmap_base = getenv_bootm_low(); @@ -1000,8 +1000,8 @@ U_BOOT_CMD( #if defined(CONFIG_OF_LIBFDT) "\tfdt - relocate flat device tree\n" #endif - "\tbdt - OS specific bd_t processing\n" "\tcmdline - OS specific command line processing/setup\n" + "\tbdt - OS specific bd_t processing\n" "\tprep - OS specific prep before relocation or go\n" "\tgo - start OS" ); diff --git a/common/cmd_cache.c b/common/cmd_cache.c index 0dfa3363b..120225841 100644 --- a/common/cmd_cache.c +++ b/common/cmd_cache.c @@ -27,8 +27,6 @@ #include <common.h> #include <command.h> -#if defined(CONFIG_CMD_CACHE) - static int on_off (const char *); int do_icache ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) @@ -108,5 +106,3 @@ U_BOOT_CMD( "[on, off]\n" " - enable or disable data (writethrough) cache" ); - -#endif diff --git a/common/cmd_date.c b/common/cmd_date.c index 9f50f8956..3141a3968 100644 --- a/common/cmd_date.c +++ b/common/cmd_date.c @@ -71,9 +71,9 @@ int do_date (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) /* and write to RTC */ rcode = rtc_set (&tm); if(rcode) - puts("## Set date failled\n"); + puts("## Set date failed\n"); } else { - puts("## Get date failled\n"); + puts("## Get date failed\n"); } } /* FALL TROUGH */ @@ -81,7 +81,7 @@ int do_date (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) rcode = rtc_get (&tm); if (rcode) { - puts("## Get date failled\n"); + puts("## Get date failed\n"); break; } diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c index 8f0fc9e1d..62cbd335e 100644 --- a/common/cmd_i2c.c +++ b/common/cmd_i2c.c @@ -315,10 +315,6 @@ int do_i2c_mw ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) /* * Wait for the write to complete. The write can take * up to 10mSec (we allow a little more time). - * - * On some chips, while the write is in progress, the - * chip doesn't respond. This apparently isn't a - * universal feature so we don't take advantage of it. */ /* * No write delay with FRAM devices. @@ -326,14 +322,6 @@ int do_i2c_mw ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) #if !defined(CONFIG_SYS_I2C_FRAM) udelay(11000); #endif - -#if 0 - for (timeout = 0; timeout < 10; timeout++) { - udelay(2000); - if (i2c_probe(chip) == 0) - break; - } -#endif } return (0); diff --git a/common/cmd_irq.c b/common/cmd_irq.c index 4604a5a31..2c7e6bbf0 100644 --- a/common/cmd_irq.c +++ b/common/cmd_irq.c @@ -47,3 +47,12 @@ U_BOOT_CMD( "enable or disable interrupts", "[on, off]" ); + +/* Implemented in $(CPU)/interrupts.c */ +int do_irqinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); + +U_BOOT_CMD( + irqinfo, 1, 1, do_irqinfo, + "print information about IRQs", + "" +); diff --git a/common/cmd_license.c b/common/cmd_license.c index 141215b3a..c6f272ad3 100644 --- a/common/cmd_license.c +++ b/common/cmd_license.c @@ -23,8 +23,6 @@ #include <common.h> -#if defined(CONFIG_CMD_LICENSE) - /* COPYING is currently 15951 bytes in size */ #define LICENSE_MAX 20480 @@ -56,5 +54,3 @@ U_BOOT_CMD(license, 1, 1, do_license, "print GPL license text", "" ); - -#endif /* CONFIG_CMD_LICENSE */ diff --git a/common/cmd_mgdisk.c b/common/cmd_mgdisk.c index aadc33563..3ba62f618 100644 --- a/common/cmd_mgdisk.c +++ b/common/cmd_mgdisk.c @@ -24,8 +24,6 @@ #include <common.h> #include <command.h> -#if defined (CONFIG_CMD_MG_DISK) - #include <mg_disk.h> int do_mg_disk_cmd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) @@ -72,5 +70,3 @@ U_BOOT_CMD( " - sector read : mgd readsec [sector] [to] [counts]\n" " - sector write : mgd writesec [from] [sector] [counts]" ); - -#endif diff --git a/common/cmd_misc.c b/common/cmd_misc.c index b97537ecd..b0ced2f3b 100644 --- a/common/cmd_misc.c +++ b/common/cmd_misc.c @@ -49,17 +49,6 @@ int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) return 0; } -/* Implemented in $(CPU)/interrupts.c */ -#if defined(CONFIG_CMD_IRQ) -int do_irqinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); - -U_BOOT_CMD( - irqinfo, 1, 1, do_irqinfo, - "print information about IRQs", - "" -); -#endif - U_BOOT_CMD( sleep , 2, 1, do_sleep, "delay execution for some time", diff --git a/cpu/arm920t/s3c24x0/timer.c b/cpu/arm920t/s3c24x0/timer.c index 20cedd463..a27f0e273 100644 --- a/cpu/arm920t/s3c24x0/timer.c +++ b/cpu/arm920t/s3c24x0/timer.c @@ -205,6 +205,8 @@ void reset_cpu(ulong ignored) struct s3c24x0_watchdog *watchdog; #ifdef CONFIG_TRAB + extern void disable_vfd(void); + disable_vfd(); #endif diff --git a/cpu/arm_cortexa8/omap3/board.c b/cpu/arm_cortexa8/omap3/board.c index dd2c94073..2aa69b383 100644 --- a/cpu/arm_cortexa8/omap3/board.c +++ b/cpu/arm_cortexa8/omap3/board.c @@ -328,7 +328,7 @@ usage: U_BOOT_CMD( nandecc, 2, 1, do_switch_ecc, - "nandecc - switch OMAP3 NAND ECC calculation algorithm\n", + "switch OMAP3 NAND ECC calculation algorithm", "[hw/sw] - Switch between NAND hardware (hw) or software (sw) ecc algorithm" ); diff --git a/doc/uImage.FIT/kernel.its b/doc/uImage.FIT/kernel.its index d1a593911..ef3ab8f72 100644 --- a/doc/uImage.FIT/kernel.its +++ b/doc/uImage.FIT/kernel.its @@ -1,6 +1,9 @@ /* * Simple U-boot uImage source file containing a single kernel */ + +/dts-v1/; + / { description = "Simple image with single Linux kernel"; #address-cells = <1>; diff --git a/doc/uImage.FIT/kernel_fdt.its b/doc/uImage.FIT/kernel_fdt.its index fd6dee257..7e940d2af 100644 --- a/doc/uImage.FIT/kernel_fdt.its +++ b/doc/uImage.FIT/kernel_fdt.its @@ -1,6 +1,9 @@ /* * Simple U-boot uImage source file containing a single kernel and FDT blob */ + +/dts-v1/; + / { description = "Simple image with single Linux kernel and FDT blob"; #address-cells = <1>; diff --git a/doc/uImage.FIT/multi.its b/doc/uImage.FIT/multi.its index 1d8c2dbf9..a120da038 100644 --- a/doc/uImage.FIT/multi.its +++ b/doc/uImage.FIT/multi.its @@ -1,6 +1,9 @@ /* * U-boot uImage source file with multiple kernels, ramdisks and FDT blobs */ + +/dts-v1/; + / { description = "Various kernels, ramdisks and FDT blobs"; #address-cells = <1>; diff --git a/doc/uImage.FIT/update3.its b/doc/uImage.FIT/update3.its index 285cf73b4..a6eaef691 100644 --- a/doc/uImage.FIT/update3.its +++ b/doc/uImage.FIT/update3.its @@ -1,6 +1,9 @@ /* * Example Automatic software update file. */ + +/dts-v1/; + / { description = "Automatic software updates: kernel, ramdisk, FDT"; #address-cells = <1>; diff --git a/doc/uImage.FIT/update_uboot.its b/doc/uImage.FIT/update_uboot.its index e0d27eacc..846723e2d 100644 --- a/doc/uImage.FIT/update_uboot.its +++ b/doc/uImage.FIT/update_uboot.its @@ -2,6 +2,9 @@ * Automatic software update for U-Boot * Make sure the flashing addresses ('load' prop) is correct for your board! */ + +/dts-v1/; + / { description = "Automatic U-Boot update"; #address-cells = <1>; diff --git a/drivers/mtd/nand/nand_util.c b/drivers/mtd/nand/nand_util.c index bec927706..7085d42cc 100644 --- a/drivers/mtd/nand/nand_util.c +++ b/drivers/mtd/nand/nand_util.c @@ -452,7 +452,7 @@ static size_t get_len_incl_bad (nand_info_t *nand, loff_t offset, len_incl_bad += block_len; offset += block_len; - if ((offset + len_incl_bad) >= nand->size) + if (offset >= nand->size) break; } diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index c027abe9f..5d51406f6 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -37,7 +37,7 @@ void pkt_data_push(struct eth_device *dev, u32 addr, u32 val) \ #define mdelay(n) udelay((n)*1000) -static void smx911x_handle_mac_address(struct eth_device *dev) +static void smc911x_handle_mac_address(struct eth_device *dev) { unsigned long addrh, addrl; uchar *m = dev->enetaddr; @@ -155,7 +155,7 @@ static int smc911x_init(struct eth_device *dev, bd_t * bd) /* Configure the PHY, initialize the link state */ smc911x_phy_configure(dev); - smx911x_handle_mac_address(dev); + smc911x_handle_mac_address(dev); /* Turn on Tx + Rx */ smc911x_enable(dev); diff --git a/drivers/rtc/m41t11.c b/drivers/rtc/m41t11.c index e0c27e185..bb134875b 100644 --- a/drivers/rtc/m41t11.c +++ b/drivers/rtc/m41t11.c @@ -181,18 +181,4 @@ void rtc_reset (void) val = val & 0x3F;/*turn off freq test keep calibration*/ i2c_write(CONFIG_SYS_I2C_RTC_ADDR, RTC_CONTROL_ADDR, 1, &val, 1); } - -int rtc_store(int addr, unsigned char* data, int size) -{ - /*don't let things wrap onto the time on a write*/ - if( (addr+size) >= M41T11_STORAGE_SZ ) - return 1; - return i2c_write( CONFIG_SYS_I2C_RTC_ADDR, REG_CNT+addr, 1, data, size ); -} - -int rtc_recall(int addr, unsigned char* data, int size) -{ - return i2c_read( CONFIG_SYS_I2C_RTC_ADDR, REG_CNT+addr, 1, data, size ); -} - #endif diff --git a/drivers/rtc/mc13783-rtc.c b/drivers/rtc/mc13783-rtc.c index 05db2f1d4..416f50d01 100644 --- a/drivers/rtc/mc13783-rtc.c +++ b/drivers/rtc/mc13783-rtc.c @@ -109,7 +109,7 @@ int rtc_set(struct rtc_time *rtc) spi_release_bus(slave); - return -1; + return 0; } void rtc_reset(void) diff --git a/drivers/spi/atmel_dataflash_spi.c b/drivers/spi/atmel_dataflash_spi.c index 614965c36..3a648e619 100644 --- a/drivers/spi/atmel_dataflash_spi.c +++ b/drivers/spi/atmel_dataflash_spi.c @@ -30,7 +30,8 @@ #include <dataflash.h> #define AT91_SPI_PCS0_DATAFLASH_CARD 0xE /* Chip Select 0: NPCS0%1110 */ -#define AT91_SPI_PCS1_DATAFLASH_CARD 0xD /* Chip Select 0: NPCS0%1101 */ +#define AT91_SPI_PCS1_DATAFLASH_CARD 0xD /* Chip Select 1: NPCS1%1101 */ +#define AT91_SPI_PCS2_DATAFLASH_CARD 0xB /* Chip Select 2: NPCS2%1011 */ #define AT91_SPI_PCS3_DATAFLASH_CARD 0x7 /* Chip Select 3: NPCS3%0111 */ void AT91F_SpiInit(void) @@ -57,7 +58,14 @@ void AT91F_SpiInit(void) ((get_mck_clk_rate() / AT91_SPI_CLK) << 8), AT91_BASE_SPI + AT91_SPI_CSR(1)); #endif - +#ifdef CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS2 + /* Configure CS2 */ + writel(AT91_SPI_NCPHA | + (AT91_SPI_DLYBS & DATAFLASH_TCSS) | + (AT91_SPI_DLYBCT & DATAFLASH_TCHS) | + ((get_mck_clk_rate() / AT91_SPI_CLK) << 8), + AT91_BASE_SPI + AT91_SPI_CSR(2)); +#endif #ifdef CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS3 /* Configure CS3 */ writel(AT91_SPI_NCPHA | @@ -99,6 +107,12 @@ void AT91F_SpiEnable(int cs) writel(mode | ((AT91_SPI_PCS1_DATAFLASH_CARD<<16) & AT91_SPI_PCS), AT91_BASE_SPI + AT91_SPI_MR); break; + case 2: /* Configure SPI CS2 for Serial DataFlash AT45DBxx */ + mode = readl(AT91_BASE_SPI + AT91_SPI_MR); + mode &= 0xFFF0FFFF; + writel(mode | ((AT91_SPI_PCS2_DATAFLASH_CARD<<16) & AT91_SPI_PCS), + AT91_BASE_SPI + AT91_SPI_MR); + break; case 3: mode = readl(AT91_BASE_SPI + AT91_SPI_MR); mode &= 0xFFF0FFFF; diff --git a/examples/standalone/Makefile b/examples/standalone/Makefile index 5e2f2bcae..6ea3b93db 100644 --- a/examples/standalone/Makefile +++ b/examples/standalone/Makefile @@ -38,7 +38,13 @@ ELF-mpc8260 += mem_to_mem_idma2intr ELF-ppc += sched ELF-oxc += eepro100_eeprom -ELF := $(ELF-y) $(ELF-$(ARCH)) $(ELF-$(BOARD)) $(ELF-$(CPU)) +# +# Some versions of make do not handle trailing white spaces properly; +# leading to build failures. The problem was found with GNU Make 3.80. +# Using 'strip' as a workaround for the problem. +# +ELF := $(strip $(ELF-y) $(ELF-$(ARCH)) $(ELF-$(BOARD)) $(ELF-$(CPU))) + SREC = $(addsuffix .srec,$(ELF)) BIN = $(addsuffix .bin,$(ELF)) diff --git a/examples/standalone/nios.lds b/examples/standalone/nios.lds deleted file mode 100644 index 4c1080b86..000000000 --- a/examples/standalone/nios.lds +++ /dev/null @@ -1,61 +0,0 @@ -/* - * (C) Copyright 2003, Psyent Corporation <www.psyent.com> - * Scott McNutt <smcnutt@psyent.com> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - - -OUTPUT_FORMAT("elf32-nios") -OUTPUT_ARCH(nios) -ENTRY(_start) - -SECTIONS -{ - .text : - { - *(.text) - } - __text_end = .; - - . = ALIGN(4); - .rodata : - { - *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) - } - __rodata_end = .; - - . = ALIGN(4); - .data : - { - *(.data) - } - . = ALIGN(4); - __data_end = .; - - __bss_start = .; - . = ALIGN(4); - .bss (NOLOAD) : - { - *(.bss) - } - . = ALIGN(4); - __bss_end = .; - _end = .; -} diff --git a/examples/standalone/nios2.lds b/examples/standalone/nios2.lds deleted file mode 100644 index a3e5ea8e3..000000000 --- a/examples/standalone/nios2.lds +++ /dev/null @@ -1,133 +0,0 @@ -/* - * (C) Copyright 2004, Psyent Corporation <www.psyent.com> - * Scott McNutt <smcnutt@psyent.com> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - - -OUTPUT_FORMAT("elf32-littlenios2") -OUTPUT_ARCH(nios2) -ENTRY(_start) - -SECTIONS -{ - .text : - { - *(.text) - *(.text.*) - *(.gnu.linkonce.t*) - *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) - *(.gnu.linkonce.r*) - } - . = ALIGN (4); - _etext = .; - PROVIDE (etext = .); - - /* INIT DATA sections - "Small" data (see the gcc -G option) - * is always gp-relative. Here we make all init data sections - * adjacent to simplify the startup code -- and provide - * the global pointer for gp-relative access. - */ - _data = .; - .data : - { - *(.data) - *(.data.*) - *(.gnu.linkonce.d*) - } - - . = ALIGN(16); - _gp = .; /* Global pointer addr */ - PROVIDE (gp = .); - - .sdata : - { - *(.sdata) - *(.sdata.*) - *(.gnu.linkonce.s.*) - } - . = ALIGN(4); - - _edata = .; - PROVIDE (edata = .); - - /* UNINIT DATA - Small uninitialized data is first so it's - * adjacent to sdata and can be referenced via gp. The normal - * bss follows. We keep it adjacent to simplify init code. - */ - __bss_start = .; - .sbss (NOLOAD) : - { - *(.sbss) - *(.sbss.*) - *(.gnu.linkonce.sb.*) - *(.scommon) - } - . = ALIGN(4); - .bss (NOLOAD) : - { - *(.bss) - *(.bss.*) - *(.dynbss) - *(COMMON) - *(.scommon) - } - . = ALIGN(4); - _end = .; - PROVIDE (end = .); - - /* CMD TABLE - uboot command sections - */ - . = .; - __uboot_cmd_start = .; - .u_boot_cmd : - { - *(.u_boot_cmd) - } - . = ALIGN(4); - __u_boot_cmd_end = .; - - /* DEBUG -- symbol table, string table, etc. etc. - */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_info 0 : { *(.debug_info) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } -} diff --git a/examples/standalone/smc91111_eeprom.c b/examples/standalone/smc91111_eeprom.c index 89afc871f..428ea7bd2 100644 --- a/examples/standalone/smc91111_eeprom.c +++ b/examples/standalone/smc91111_eeprom.c @@ -33,8 +33,6 @@ struct eth_device { unsigned long iobase; }; #include "../drivers/net/smc91111.h" -#ifdef CONFIG_SMC91111 - #ifndef SMC91111_EEPROM_INIT # define SMC91111_EEPROM_INIT() #endif @@ -391,13 +389,3 @@ void dump_reg (struct eth_device *dev) printf ("\n"); } } - -#else - -int smc91111_eeprom (int argc, char *argv[]) -{ - printf("Not supported for this board\n"); - return 1; -} - -#endif diff --git a/include/configs/MPC8536DS.h b/include/configs/MPC8536DS.h index a84727546..46d6e9d39 100644 --- a/include/configs/MPC8536DS.h +++ b/include/configs/MPC8536DS.h @@ -70,13 +70,6 @@ #define CONFIG_TSEC_ENET /* tsec ethernet support */ #define CONFIG_ENV_OVERWRITE -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the CDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long get_board_sys_clk(unsigned long dummy); extern unsigned long get_board_ddr_clk(unsigned long dummy); diff --git a/include/configs/MPC8541CDS.h b/include/configs/MPC8541CDS.h index a8f206f53..f41fe300d 100644 --- a/include/configs/MPC8541CDS.h +++ b/include/configs/MPC8541CDS.h @@ -46,13 +46,6 @@ #define CONFIG_FSL_VIA -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the CDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long get_clock_freq(void); #endif diff --git a/include/configs/MPC8544DS.h b/include/configs/MPC8544DS.h index 0caf45603..b7d355315 100644 --- a/include/configs/MPC8544DS.h +++ b/include/configs/MPC8544DS.h @@ -50,13 +50,6 @@ #define CONFIG_ENV_OVERWRITE #define CONFIG_INTERRUPTS /* enable pci, srio, ddr interrupts */ -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the CDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long get_board_sys_clk(unsigned long dummy); #endif diff --git a/include/configs/MPC8548CDS.h b/include/configs/MPC8548CDS.h index e69ba901e..53de56dbc 100644 --- a/include/configs/MPC8548CDS.h +++ b/include/configs/MPC8548CDS.h @@ -52,13 +52,6 @@ #define CONFIG_FSL_VIA -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the CDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long get_clock_freq(void); #endif diff --git a/include/configs/MPC8555CDS.h b/include/configs/MPC8555CDS.h index 94952dc99..abbfd4707 100644 --- a/include/configs/MPC8555CDS.h +++ b/include/configs/MPC8555CDS.h @@ -46,13 +46,6 @@ #define CONFIG_FSL_VIA -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the CDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long get_clock_freq(void); #endif diff --git a/include/configs/MPC8568MDS.h b/include/configs/MPC8568MDS.h index 7b8c6c772..426b93378 100644 --- a/include/configs/MPC8568MDS.h +++ b/include/configs/MPC8568MDS.h @@ -44,13 +44,6 @@ #define CONFIG_ENV_OVERWRITE #define CONFIG_FSL_LAW 1 /* Use common FSL init code */ -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the MDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long get_clock_freq(void); #endif /*Replace a call to get_clock_freq (after it is implemented)*/ diff --git a/include/configs/MPC8569MDS.h b/include/configs/MPC8569MDS.h index 17ea3bb14..b87f37528 100644 --- a/include/configs/MPC8569MDS.h +++ b/include/configs/MPC8569MDS.h @@ -44,13 +44,6 @@ #define CONFIG_ENV_OVERWRITE #define CONFIG_FSL_LAW 1 /* Use common FSL init code */ -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the MDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long get_clock_freq(void); #endif diff --git a/include/configs/MPC8572DS.h b/include/configs/MPC8572DS.h index 000f8f62d..0e7745c46 100644 --- a/include/configs/MPC8572DS.h +++ b/include/configs/MPC8572DS.h @@ -53,13 +53,6 @@ #define CONFIG_TSEC_ENET /* tsec ethernet support */ #define CONFIG_ENV_OVERWRITE -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the CDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long get_board_sys_clk(unsigned long dummy); extern unsigned long get_board_ddr_clk(unsigned long dummy); diff --git a/include/configs/P2020DS.h b/include/configs/P2020DS.h index b48c1999f..9574fcaa1 100644 --- a/include/configs/P2020DS.h +++ b/include/configs/P2020DS.h @@ -54,13 +54,6 @@ #define CONFIG_TSEC_ENET /* tsec ethernet support */ #define CONFIG_ENV_OVERWRITE -/* - * When initializing flash, if we cannot find the manufacturer ID, - * assume this is the AMD flash associated with the CDS board. - * This allows booting from a promjet. - */ -#define CONFIG_ASSUME_AMD_FLASH - #ifndef __ASSEMBLY__ extern unsigned long calculate_board_sys_clk(unsigned long dummy); extern unsigned long calculate_board_ddr_clk(unsigned long dummy); diff --git a/include/image.h b/include/image.h index 5a424e6a9..04b62d154 100644 --- a/include/image.h +++ b/include/image.h @@ -219,12 +219,10 @@ typedef struct bootm_headers { const char *fit_uname_rd; /* init ramdisk subimage node unit name */ int fit_noffset_rd; /* init ramdisk subimage node offset */ -#if defined(CONFIG_PPC) void *fit_hdr_fdt; /* FDT blob FIT image header */ const char *fit_uname_fdt; /* FDT blob subimage node unit name */ int fit_noffset_fdt;/* FDT blob subimage node offset */ #endif -#endif #ifndef USE_HOSTCC image_info_t os; /* os image info */ diff --git a/include/spi_flash.h b/include/spi_flash.h index de4f174ad..1f8ba2987 100644 --- a/include/spi_flash.h +++ b/include/spi_flash.h @@ -24,6 +24,7 @@ #define _SPI_FLASH_H_ #include <spi.h> +#include <linux/types.h> struct spi_flash_region { unsigned int count; diff --git a/lib_generic/Makefile b/lib_generic/Makefile index 686601cc1..2ec261af4 100644 --- a/lib_generic/Makefile +++ b/lib_generic/Makefile @@ -31,6 +31,7 @@ COBJS-$(CONFIG_BZIP2) += bzlib_crctable.o COBJS-$(CONFIG_BZIP2) += bzlib_decompress.o COBJS-$(CONFIG_BZIP2) += bzlib_randtable.o COBJS-$(CONFIG_BZIP2) += bzlib_huffman.o +COBJS-$(CONFIG_USB_TTY) += circbuf.o COBJS-y += crc16.o COBJS-y += crc32.o COBJS-y += ctype.o diff --git a/common/circbuf.c b/lib_generic/circbuf.c index 2332c6371..2332c6371 100644 --- a/common/circbuf.c +++ b/lib_generic/circbuf.c diff --git a/lib_generic/lzma/LzmaTools.c b/lib_generic/lzma/LzmaTools.c index 408b577f1..8860bfbf3 100644 --- a/lib_generic/lzma/LzmaTools.c +++ b/lib_generic/lzma/LzmaTools.c @@ -97,11 +97,14 @@ int lzmaBuffToBuffDecompress (unsigned char *outStream, SizeT *uncompressedSize, } else if (outSizeHigh != 0 || (UInt32)(SizeT)outSize != outSize) { /* * SizeT is a 32 bit uint => We cannot manage files larger than - * 4GB! + * 4GB! Assume however that all 0xf values is "unknown size" and + * not actually a file of 2^64 bits. * */ - debug ("LZMA: 64bit support not enabled.\n"); - return SZ_ERROR_DATA; + if (outSizeHigh != (SizeT)-1 || outSize != (SizeT)-1) { + debug ("LZMA: 64bit support not enabled.\n"); + return SZ_ERROR_DATA; + } } debug ("LZMA: Uncompresed size............ 0x%lx\n", outSizeFull); diff --git a/lib_generic/zlib.c b/lib_generic/zlib.c index 8fe3bd0dd..ef1fa2280 100644 --- a/lib_generic/zlib.c +++ b/lib_generic/zlib.c @@ -28,6 +28,8 @@ #include "u-boot/zlib.h" #include <common.h> +#undef OFF /* avoid conflicts */ + /* To avoid a build time warning */ #ifdef STDC #include <malloc.h> diff --git a/lib_nios/config.mk b/lib_nios/config.mk index d48aa6dfd..e1b9f07bb 100644 --- a/lib_nios/config.mk +++ b/lib_nios/config.mk @@ -24,6 +24,6 @@ CROSS_COMPILE ?= nios-elf- -STANDALONE_LOAD_ADDR = 0x00800000 -L $(gcclibdir)/m32 -T nios.lds +STANDALONE_LOAD_ADDR = 0x00800000 -L $(gcclibdir)/m32 PLATFORM_CPPFLAGS += -m32 -DCONFIG_NIOS -D__NIOS__ -ffixed-g7 -gstabs diff --git a/lib_nios2/board.c b/lib_nios2/board.c index 008f04f95..41d329719 100644 --- a/lib_nios2/board.c +++ b/lib_nios2/board.c @@ -83,8 +83,6 @@ void board_init (void) { bd_t *bd; init_fnc_t **init_fnc_ptr; - char *s, *e; - int i; /* Pointer is writable since we allocated a register for it. * Nios treats CONFIG_SYS_GBL_DATA_OFFSET as an address. diff --git a/lib_nios2/bootm.c b/lib_nios2/bootm.c index 53fd5691a..675bfac63 100644 --- a/lib_nios2/bootm.c +++ b/lib_nios2/bootm.c @@ -24,6 +24,7 @@ #include <common.h> #include <command.h> #include <asm/byteorder.h> +#include <asm/cache.h> int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) { @@ -32,6 +33,10 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) return 1; + /* flushes data and instruction caches before calling the kernel */ + flush_dcache (0,CONFIG_SYS_DCACHE_SIZE); + flush_icache (0,CONFIG_SYS_ICACHE_SIZE); + /* For now we assume the Microtronix linux ... which only * needs to be called ;-) */ diff --git a/lib_nios2/config.mk b/lib_nios2/config.mk index 34ee6977d..be4063928 100644 --- a/lib_nios2/config.mk +++ b/lib_nios2/config.mk @@ -24,7 +24,7 @@ CROSS_COMPILE ?= nios2-elf- -STANDALONE_LOAD_ADDR = 0x02000000 -L $(gcclibdir) -T nios2.lds +STANDALONE_LOAD_ADDR = 0x02000000 -L $(gcclibdir) PLATFORM_CPPFLAGS += -DCONFIG_NIOS2 -D__NIOS2__ PLATFORM_CPPFLAGS += -ffixed-r15 -G0 diff --git a/lib_ppc/Makefile b/lib_ppc/Makefile index 399b41e31..60a76253b 100644 --- a/lib_ppc/Makefile +++ b/lib_ppc/Makefile @@ -35,7 +35,7 @@ COBJS-y += bootm.o COBJS-y += cache.o COBJS-y += extable.o COBJS-y += interrupts.o -COBJS-y += kgdb.o +COBJS-$(CONFIG_CMD_KGDB) += kgdb.o COBJS-y += time.o SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) diff --git a/lib_ppc/kgdb.c b/lib_ppc/kgdb.c index 78c2f0c47..d3eb1f35a 100644 --- a/lib_ppc/kgdb.c +++ b/lib_ppc/kgdb.c @@ -1,8 +1,5 @@ #include <common.h> #include <command.h> - -#if defined(CONFIG_CMD_KGDB) - #include <kgdb.h> #include <asm/signal.h> #include <asm/processor.h> @@ -322,5 +319,3 @@ kgdb_breakpoint(int argc, char *argv[]) breakinst: .long 0x7d821008\n\ "); } - -#endif @@ -27,6 +27,11 @@ done [ $# -lt 4 ] && exit 1 [ $# -gt 6 ] && exit 1 +if [ "${ARCH}" -a "${ARCH}" != "$2" ]; then + echo "Failed: \$ARCH=${ARCH}, should be '$2' for ${BOARD_NAME}" 1>&2 + exit 1 +fi + echo "Configuring for ${BOARD_NAME} board..." # @@ -197,6 +197,8 @@ volatile uchar *NetTxPacket = 0; /* THE transmit packet */ static int net_check_prereq (proto_t protocol); +static int NetTryCount; + /**********************************************************************/ IPaddr_t NetArpWaitPacketIP; @@ -320,6 +322,7 @@ NetLoop(proto_t protocol) NetArpWaitReplyIP = 0; NetArpWaitTxPacket = NULL; NetTxPacket = NULL; + NetTryCount = 1; if (!NetTxPacket) { int i; @@ -558,17 +561,30 @@ startAgainHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len) void NetStartAgain (void) { char *nretry; - int noretry = 0, once = 0; + int retry_forever = 0; + unsigned long retrycnt = 0; + + nretry = getenv("netretry"); + if (nretry) { + if (!strcmp(nretry, "yes")) + retry_forever = 1; + else if (!strcmp(nretry, "no")) + retrycnt = 0; + else if (!strcmp(nretry, "once")) + retrycnt = 1; + else + retrycnt = simple_strtoul(nretry, NULL, 0); + } else + retry_forever = 1; - if ((nretry = getenv ("netretry")) != NULL) { - noretry = (strcmp (nretry, "no") == 0); - once = (strcmp (nretry, "once") == 0); - } - if (noretry) { - eth_halt (); + if ((!retry_forever) && (NetTryCount >= retrycnt)) { + eth_halt(); NetState = NETLOOP_FAIL; return; } + + NetTryCount++; + #ifndef CONFIG_NET_MULTI NetSetTimeout (10000UL, startAgainTimeout); NetSetHandler (startAgainHandler); @@ -580,7 +596,7 @@ void NetStartAgain (void) eth_init (gd->bd); if (NetRestartWrap) { NetRestartWrap = 0; - if (NetDevExists && !once) { + if (NetDevExists) { NetSetTimeout (10000UL, startAgainTimeout); NetSetHandler (startAgainHandler); } else { @@ -516,7 +516,7 @@ nfs_readlink_reply (uchar *pkt, unsigned len) strcat (nfs_path, "/"); pathlen = strlen(nfs_path); memcpy (nfs_path+pathlen, (uchar *)&(rpc_pkt.u.reply.data[2]), rlen); - nfs_path[pathlen+rlen+1] = 0; + nfs_path[pathlen + rlen] = 0; } else { memcpy (nfs_path, (uchar *)&(rpc_pkt.u.reply.data[2]), rlen); nfs_path[rlen] = 0; @@ -571,13 +571,14 @@ Interfaces of U-BOOT static void NfsTimeout (void) { - if ( NfsTimeoutCount++ < NFS_RETRY_COUNT ) { + if ( ++NfsTimeoutCount > NFS_RETRY_COUNT ) { + puts ("\nRetry count exceeded; starting again\n"); + NetStartAgain (); + } else { + puts("T "); + NetSetTimeout (NFS_TIMEOUT, NfsTimeout); NfsSend (); - return; } - puts ("Timeout\n"); - NetState = NETLOOP_FAIL; - return; } static void diff --git a/tools/.gitignore b/tools/.gitignore index 03f54ef12..cb067a407 100644 --- a/tools/.gitignore +++ b/tools/.gitignore @@ -8,3 +8,4 @@ /ncp /ubsha1 /inca-swap-bytes +/*.exe diff --git a/tools/fit_image.c b/tools/fit_image.c index d1e612fec..ef9ffeeec 100644 --- a/tools/fit_image.c +++ b/tools/fit_image.c @@ -155,38 +155,6 @@ static int fit_handle_file (struct mkimage_params *params) return (EXIT_SUCCESS); } -static void fit_set_header (void *ptr, struct stat *sbuf, int ifd, - struct mkimage_params *params) -{ - uint32_t checksum; - - image_header_t * hdr = (image_header_t *)ptr; - - checksum = crc32 (0, - (const unsigned char *)(ptr + - sizeof(image_header_t)), - sbuf->st_size - sizeof(image_header_t)); - - /* Build new header */ - image_set_magic (hdr, IH_MAGIC); - image_set_time (hdr, sbuf->st_mtime); - image_set_size (hdr, sbuf->st_size - sizeof(image_header_t)); - image_set_load (hdr, params->addr); - image_set_ep (hdr, params->ep); - image_set_dcrc (hdr, checksum); - image_set_os (hdr, params->os); - image_set_arch (hdr, params->arch); - image_set_type (hdr, params->type); - image_set_comp (hdr, params->comp); - - image_set_name (hdr, params->imagename); - - checksum = crc32 (0, (const unsigned char *)hdr, - sizeof(image_header_t)); - - image_set_hcrc (hdr, checksum); -} - static int fit_check_params (struct mkimage_params *params) { return ((params->dflag && (params->fflag || params->lflag)) || @@ -202,7 +170,7 @@ static struct image_type_params fitimage_params = { .print_header = fit_print_contents, .check_image_type = fit_check_image_types, .fflag_handle = fit_handle_file, - .set_header = fit_set_header, + .set_header = NULL, /* FIT images use DTB header */ .check_params = fit_check_params, }; diff --git a/tools/img2srec.c b/tools/img2srec.c index f10379fe4..ec7696402 100644 --- a/tools/img2srec.c +++ b/tools/img2srec.c @@ -53,6 +53,7 @@ |*************************************************************************/ #include "os_support.h" +#include <stdbool.h> #include <stddef.h> #include <stdio.h> #include <stdlib.h> @@ -63,63 +64,22 @@ #include <errno.h> /************************************************************************* -| DEFINES -|*************************************************************************/ - -#define FALSE 0 -#define TRUE 1 - -/************************************************************************* -| MACROS -|*************************************************************************/ - -/************************************************************************* -| TYPEDEFS -|*************************************************************************/ - -typedef uint8_t CHAR; -typedef uint8_t BYTE; -typedef uint16_t WORD; -typedef uint32_t DWORD; -typedef int BOOL; - -/************************************************************************* -| LOCALS -|*************************************************************************/ - -/************************************************************************* -| PROTOTYPES -|*************************************************************************/ - -static char *ExtractHex(DWORD *value, char *getPtr); -static char *ExtractDecimal(DWORD *value, char *getPtr); -static void ExtractNumber(DWORD *value, char *getPtr); -static BYTE *ExtractWord(WORD *value, BYTE *buffer); -static BYTE *ExtractLong(DWORD *value, BYTE *buffer); -static BYTE *ExtractBlock(WORD count, BYTE *data, BYTE *buffer); -static char *WriteHex(char *pa, BYTE value, WORD *pCheckSum); -static char *BuildSRecord(char *pa, WORD sType, DWORD addr, - const BYTE *data, int nCount); -static void ConvertELF(char *fileName, DWORD loadOffset); -int main(int argc, char *argv[]); - -/************************************************************************* | FUNCTIONS |*************************************************************************/ -static char* ExtractHex (DWORD* value, char* getPtr) +static char* ExtractHex (uint32_t* value, char* getPtr) { - DWORD num; - DWORD digit; - BYTE c; + uint32_t num; + uint32_t digit; + uint8_t c; while (*getPtr == ' ') getPtr++; num = 0; for (;;) { c = *getPtr; - if ((c >= '0') && (c <= '9')) digit = (DWORD)(c - '0'); - else if ((c >= 'A') && (c <= 'F')) digit = (DWORD)(c - 'A' + 10); - else if ((c >= 'a') && (c <= 'f')) digit = (DWORD)(c - 'a' + 10); + if ((c >= '0') && (c <= '9')) digit = (uint32_t)(c - '0'); + else if ((c >= 'A') && (c <= 'F')) digit = (uint32_t)(c - 'A' + 10); + else if ((c >= 'a') && (c <= 'f')) digit = (uint32_t)(c - 'a' + 10); else break; num <<= 4; num += digit; @@ -129,17 +89,17 @@ static char* ExtractHex (DWORD* value, char* getPtr) return getPtr; } /* ExtractHex */ -static char* ExtractDecimal (DWORD* value, char* getPtr) +static char* ExtractDecimal (uint32_t* value, char* getPtr) { - DWORD num; - DWORD digit; - BYTE c; + uint32_t num; + uint32_t digit; + uint8_t c; while (*getPtr == ' ') getPtr++; num = 0; for (;;) { c = *getPtr; - if ((c >= '0') && (c <= '9')) digit = (DWORD)(c - '0'); + if ((c >= '0') && (c <= '9')) digit = (uint32_t)(c - '0'); else break; num *= 10; num += digit; @@ -150,13 +110,13 @@ static char* ExtractDecimal (DWORD* value, char* getPtr) } /* ExtractDecimal */ -static void ExtractNumber (DWORD* value, char* getPtr) +static void ExtractNumber (uint32_t* value, char* getPtr) { - BOOL neg = FALSE;; + bool neg = false;; while (*getPtr == ' ') getPtr++; if (*getPtr == '-') { - neg = TRUE; + neg = true; getPtr++; } /* if */ if ((*getPtr == '0') && ((*(getPtr+1) == 'x') || (*(getPtr+1) == 'X'))) { @@ -170,38 +130,38 @@ static void ExtractNumber (DWORD* value, char* getPtr) } /* ExtractNumber */ -static BYTE* ExtractWord(WORD* value, BYTE* buffer) +static uint8_t* ExtractWord(uint16_t* value, uint8_t* buffer) { - WORD x; - x = (WORD)*buffer++; - x = (x<<8) + (WORD)*buffer++; + uint16_t x; + x = (uint16_t)*buffer++; + x = (x<<8) + (uint16_t)*buffer++; *value = x; return buffer; } /* ExtractWord */ -static BYTE* ExtractLong(DWORD* value, BYTE* buffer) +static uint8_t* ExtractLong(uint32_t* value, uint8_t* buffer) { - DWORD x; - x = (DWORD)*buffer++; - x = (x<<8) + (DWORD)*buffer++; - x = (x<<8) + (DWORD)*buffer++; - x = (x<<8) + (DWORD)*buffer++; + uint32_t x; + x = (uint32_t)*buffer++; + x = (x<<8) + (uint32_t)*buffer++; + x = (x<<8) + (uint32_t)*buffer++; + x = (x<<8) + (uint32_t)*buffer++; *value = x; return buffer; } /* ExtractLong */ -static BYTE* ExtractBlock(WORD count, BYTE* data, BYTE* buffer) +static uint8_t* ExtractBlock(uint16_t count, uint8_t* data, uint8_t* buffer) { while (count--) *data++ = *buffer++; return buffer; } /* ExtractBlock */ -static char* WriteHex(char* pa, BYTE value, WORD* pCheckSum) +static char* WriteHex(char* pa, uint8_t value, uint16_t* pCheckSum) { - WORD temp; + uint16_t temp; static char ByteToHex[] = "0123456789ABCDEF"; @@ -214,13 +174,13 @@ static char* WriteHex(char* pa, BYTE value, WORD* pCheckSum) } -static char* BuildSRecord(char* pa, WORD sType, DWORD addr, - const BYTE* data, int nCount) +static char* BuildSRecord(char* pa, uint16_t sType, uint32_t addr, + const uint8_t* data, int nCount) { - WORD addrLen; - WORD sRLen; - WORD checkSum; - WORD i; + uint16_t addrLen; + uint16_t sRLen; + uint16_t checkSum; + uint16_t i; switch (sType) { case 0: @@ -244,11 +204,11 @@ static char* BuildSRecord(char* pa, WORD sType, DWORD addr, *pa++ = (char)(sType + '0'); sRLen = addrLen + nCount + 1; checkSum = 0; - pa = WriteHex(pa, (BYTE)sRLen, &checkSum); + pa = WriteHex(pa, (uint8_t)sRLen, &checkSum); /* Write address field */ for (i = 1; i <= addrLen; i++) { - pa = WriteHex(pa, (BYTE)(addr >> (8 * (addrLen - i))), &checkSum); + pa = WriteHex(pa, (uint8_t)(addr >> (8 * (addrLen - i))), &checkSum); } /* for */ /* Write code/data fields */ @@ -258,25 +218,25 @@ static char* BuildSRecord(char* pa, WORD sType, DWORD addr, /* Write checksum field */ checkSum = ~checkSum; - pa = WriteHex(pa, (BYTE)checkSum, &checkSum); + pa = WriteHex(pa, (uint8_t)checkSum, &checkSum); *pa++ = '\0'; return pa; } -static void ConvertELF(char* fileName, DWORD loadOffset) +static void ConvertELF(char* fileName, uint32_t loadOffset) { FILE* file; int i; int rxCount; - BYTE rxBlock[1024]; - DWORD loadSize; - DWORD firstAddr; - DWORD loadAddr; - DWORD loadDiff = 0; + uint8_t rxBlock[1024]; + uint32_t loadSize; + uint32_t firstAddr; + uint32_t loadAddr; + uint32_t loadDiff = 0; Elf32_Ehdr elfHeader; Elf32_Shdr sectHeader[32]; - BYTE* getPtr; + uint8_t* getPtr; char srecLine[128]; char *hdr_name; @@ -292,11 +252,11 @@ static void ConvertELF(char* fileName, DWORD loadOffset) getPtr = ExtractBlock(sizeof elfHeader.e_ident, elfHeader.e_ident, rxBlock); getPtr = ExtractWord(&elfHeader.e_type, getPtr); getPtr = ExtractWord(&elfHeader.e_machine, getPtr); - getPtr = ExtractLong((DWORD *)&elfHeader.e_version, getPtr); - getPtr = ExtractLong((DWORD *)&elfHeader.e_entry, getPtr); - getPtr = ExtractLong((DWORD *)&elfHeader.e_phoff, getPtr); - getPtr = ExtractLong((DWORD *)&elfHeader.e_shoff, getPtr); - getPtr = ExtractLong((DWORD *)&elfHeader.e_flags, getPtr); + getPtr = ExtractLong((uint32_t *)&elfHeader.e_version, getPtr); + getPtr = ExtractLong((uint32_t *)&elfHeader.e_entry, getPtr); + getPtr = ExtractLong((uint32_t *)&elfHeader.e_phoff, getPtr); + getPtr = ExtractLong((uint32_t *)&elfHeader.e_shoff, getPtr); + getPtr = ExtractLong((uint32_t *)&elfHeader.e_flags, getPtr); getPtr = ExtractWord(&elfHeader.e_ehsize, getPtr); getPtr = ExtractWord(&elfHeader.e_phentsize, getPtr); getPtr = ExtractWord(&elfHeader.e_phnum, getPtr); @@ -319,16 +279,16 @@ static void ConvertELF(char* fileName, DWORD loadOffset) fseek(file, elfHeader.e_shoff, SEEK_SET); for (i = 0; i < elfHeader.e_shnum; i++) { rxCount = fread(rxBlock, 1, sizeof sectHeader[0], file); - getPtr = ExtractLong((DWORD *)§Header[i].sh_name, rxBlock); - getPtr = ExtractLong((DWORD *)§Header[i].sh_type, getPtr); - getPtr = ExtractLong((DWORD *)§Header[i].sh_flags, getPtr); - getPtr = ExtractLong((DWORD *)§Header[i].sh_addr, getPtr); - getPtr = ExtractLong((DWORD *)§Header[i].sh_offset, getPtr); - getPtr = ExtractLong((DWORD *)§Header[i].sh_size, getPtr); - getPtr = ExtractLong((DWORD *)§Header[i].sh_link, getPtr); - getPtr = ExtractLong((DWORD *)§Header[i].sh_info, getPtr); - getPtr = ExtractLong((DWORD *)§Header[i].sh_addralign, getPtr); - getPtr = ExtractLong((DWORD *)§Header[i].sh_entsize, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_name, rxBlock); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_type, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_flags, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_addr, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_offset, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_size, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_link, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_info, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_addralign, getPtr); + getPtr = ExtractLong((uint32_t *)§Header[i].sh_entsize, getPtr); if (rxCount != sizeof sectHeader[0]) { fclose(file); fprintf (stderr, "*** illegal file format\n"); @@ -342,7 +302,7 @@ static void ConvertELF(char* fileName, DWORD loadOffset) ++hdr_name; } /* write start record */ - (void)BuildSRecord(srecLine, 0, 0, (BYTE *)hdr_name, strlen(hdr_name)); + (void)BuildSRecord(srecLine, 0, 0, (uint8_t *)hdr_name, strlen(hdr_name)); printf("%s\r\n",srecLine); /* write data records */ @@ -395,7 +355,7 @@ static void ConvertELF(char* fileName, DWORD loadOffset) int main( int argc, char *argv[ ]) { - DWORD offset; + uint32_t offset; if (argc == 2) { ConvertELF(argv[1], 0); diff --git a/tools/mingw_support.c b/tools/mingw_support.c index 67cd6e115..63797108b 100644 --- a/tools/mingw_support.c +++ b/tools/mingw_support.c @@ -24,7 +24,9 @@ #include "mingw_support.h" #include <stdio.h> #include <stdint.h> +#include <string.h> #include <errno.h> +#include <assert.h> #include <io.h> int fsync(int fd) @@ -77,3 +79,158 @@ int munmap(void *addr, size_t len) return 0; } + +/* Reentrant string tokenizer. Generic version. + Copyright (C) 1991,1996-1999,2001,2004,2007 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Parse S into tokens separated by characters in DELIM. + If S is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = strtok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" +*/ +char *strtok_r(char *s, const char *delim, char **save_ptr) +{ + char *token; + + if (s == NULL) + s = *save_ptr; + + /* Scan leading delimiters. */ + s += strspn(s, delim); + if (*s == '\0') { + *save_ptr = s; + return NULL; + } + + /* Find the end of the token. */ + token = s; + s = strpbrk (token, delim); + if (s == NULL) { + /* This token finishes the string. */ + *save_ptr = memchr(token, '\0', strlen(token)); + } else { + /* Terminate the token and make *SAVE_PTR point past it. */ + *s = '\0'; + *save_ptr = s + 1; + } + return token; +} + +/* getline.c -- Replacement for GNU C library function getline + +Copyright (C) 1993, 1996, 2001, 2002 Free Software Foundation, Inc. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* Written by Jan Brittenson, bson@gnu.ai.mit.edu. */ + +/* Always add at least this many bytes when extending the buffer. */ +#define MIN_CHUNK 64 + +/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR + + OFFSET (and null-terminate it). *LINEPTR is a pointer returned from + malloc (or NULL), pointing to *N characters of space. It is realloc'd + as necessary. Return the number of characters read (not including the + null terminator), or -1 on error or EOF. + NOTE: There is another getstr() function declared in <curses.h>. */ +static int getstr(char **lineptr, size_t *n, FILE *stream, + char terminator, size_t offset) +{ + int nchars_avail; /* Allocated but unused chars in *LINEPTR. */ + char *read_pos; /* Where we're reading into *LINEPTR. */ + int ret; + + if (!lineptr || !n || !stream) + return -1; + + if (!*lineptr) { + *n = MIN_CHUNK; + *lineptr = malloc(*n); + if (!*lineptr) + return -1; + } + + nchars_avail = *n - offset; + read_pos = *lineptr + offset; + + for (;;) { + register int c = getc(stream); + + /* We always want at least one char left in the buffer, since we + always (unless we get an error while reading the first char) + NUL-terminate the line buffer. */ + + assert(*n - nchars_avail == read_pos - *lineptr); + if (nchars_avail < 2) { + if (*n > MIN_CHUNK) + *n *= 2; + else + *n += MIN_CHUNK; + + nchars_avail = *n + *lineptr - read_pos; + *lineptr = realloc(*lineptr, *n); + if (!*lineptr) + return -1; + read_pos = *n - nchars_avail + *lineptr; + assert(*n - nchars_avail == read_pos - *lineptr); + } + + if (c == EOF || ferror (stream)) { + /* Return partial line, if any. */ + if (read_pos == *lineptr) + return -1; + else + break; + } + + *read_pos++ = c; + nchars_avail--; + + if (c == terminator) + /* Return the line. */ + break; + } + + /* Done - NUL terminate and return the number of chars read. */ + *read_pos = '\0'; + + ret = read_pos - (*lineptr + offset); + return ret; +} + +int getline (char **lineptr, size_t *n, FILE *stream) +{ + return getstr(lineptr, n, stream, '\n', 0); +} diff --git a/tools/mingw_support.h b/tools/mingw_support.h index 9e45e6491..27936746b 100644 --- a/tools/mingw_support.h +++ b/tools/mingw_support.h @@ -44,5 +44,7 @@ typedef ULONG ulong; int fsync(int fd); void *mmap(void *, size_t, int, int, int, int); int munmap(void *, size_t); +char *strtok_r(char *s, const char *delim, char **save_ptr); +int getline(char **lineptr, size_t *n, FILE *stream); #endif /* __MINGW_SUPPORT_H_ */ diff --git a/tools/mkimage.c b/tools/mkimage.c index ab6ea32ad..1bed93360 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -229,6 +229,11 @@ main (int argc, char **argv) case 'f': if (--argc <= 0) usage (); + /* + * The flattened image tree (FIT) format + * requires a flattened device tree image type + */ + params.type = IH_TYPE_FLATDT; params.datafile = *++argv; params.fflag = 1; goto NXTARG; @@ -292,23 +297,35 @@ NXTARG: ; params.imagefile = *argv; - if (!params.fflag){ - if (params.lflag) { - ifd = open (params.imagefile, O_RDONLY|O_BINARY); - } else { - ifd = open (params.imagefile, - O_RDWR|O_CREAT|O_TRUNC|O_BINARY, 0666); - } + if (params.fflag){ + if (tparams->fflag_handle) + /* + * in some cases, some additional processing needs + * to be done if fflag is defined + * + * For ex. fit_handle_file for Fit file support + */ + retval = tparams->fflag_handle(¶ms); - if (ifd < 0) { - fprintf (stderr, "%s: Can't open %s: %s\n", - params.cmdname, params.imagefile, - strerror(errno)); - exit (EXIT_FAILURE); - } + if (retval != EXIT_SUCCESS) + exit (retval); + } + + if (params.lflag || params.fflag) { + ifd = open (params.imagefile, O_RDONLY|O_BINARY); + } else { + ifd = open (params.imagefile, + O_RDWR|O_CREAT|O_TRUNC|O_BINARY, 0666); + } + + if (ifd < 0) { + fprintf (stderr, "%s: Can't open %s: %s\n", + params.cmdname, params.imagefile, + strerror(errno)); + exit (EXIT_FAILURE); } - if (params.lflag) { + if (params.lflag || params.fflag) { /* * list header information of existing image */ @@ -346,17 +363,6 @@ NXTARG: ; (void) close (ifd); exit (retval); - } else if (params.fflag) { - if (tparams->fflag_handle) - /* - * in some cases, some additional processing needs - * to be done if fflag is defined - * - * For ex. fit_handle_file for Fit file support - */ - retval = tparams->fflag_handle(¶ms); - - exit (retval); } /* |