diff options
author | Marian Balakowicz <m8@semihalf.com> | 2008-02-29 13:56:44 +0100 |
---|---|---|
committer | Marian Balakowicz <m8@semihalf.com> | 2008-02-29 13:56:44 +0100 |
commit | e18489e8c27e843e337258fb00f2652ff0f43b92 (patch) | |
tree | 2a3b2afa224e61cb7f1206a1641007e526d25160 | |
parent | 75fa002c47171b73fb4c1f2c2fe4d6391c136276 (diff) | |
parent | b29661fc1151077776454288051bc9a488351ce8 (diff) | |
download | u-boot-imx-e18489e8c27e843e337258fb00f2652ff0f43b92.zip u-boot-imx-e18489e8c27e843e337258fb00f2652ff0f43b92.tar.gz u-boot-imx-e18489e8c27e843e337258fb00f2652ff0f43b92.tar.bz2 |
Merge branch 'master' of git://www.denx.de/git/u-boot into new-image
52 files changed, 833 insertions, 289 deletions
@@ -1,3 +1,472 @@ +commit 00b48a48424894daa589d166d73277830b1c6ac4 +Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> +Date: Sat Feb 23 12:15:56 2008 +0100 + + ENV: remove saveenv when CFG_ENV_IS_NOWHERE is selected + + Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + +commit b075d74efb70ff68c49a2532f26b56d6703b69c1 +Author: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> +Date: Sat Feb 23 17:24:16 2008 +0900 + + Remove the __STRICT_ANSI__ check from the __u64/__s64 declaration on 32bit targets. + + ---------------------------------------------------------------- + Olaf Hering [Wed, 17 Oct 2007 06:27:13 +0000 (23:27 -0700)] + + Remove the __STRICT_ANSI__ check from the __u64/__s64 declaration on + 32bit targets. + + GCC can be made to warn about usage of long long types with ISO C90 + (-ansi), but only with -pedantic. You can write this in a way that even + then it doesn't cause warnings, namely by: + + #ifdef __GNUC__ + __extension__ typedef __signed__ long long __s64; + __extension__ typedef unsigned long long __u64; + #endif + + The __extension__ keyword in front of this switches off any pedantic + warnings for this expression. + + Signed-off-by: Olaf Hering <olh@suse.de> + Cc: <linux-arch@vger.kernel.org> + Signed-off-by: Andrew Morton <akpm@linux-foundation.org> + Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> + ---------------------------------------------------------------- + + Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> + +commit 208acd112e6517b21fc30c420396902b103563ac +Author: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> +Date: Sat Feb 23 17:07:57 2008 +0900 + + cpu/mcf52x2/config.mk: Make needlessly deffered expansions immediate. + + This will reduce the build time. + + Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> + +commit 495a0dde7fa1b14cdc15607d86503ec2bdcd02c4 +Author: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> +Date: Sat Feb 23 17:05:00 2008 +0900 + + cpu/ppc4xx/config.mk: Make a needlessly deffered expansion immediate. + + This will reduce the build time. + + Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> + +commit e682ba399a1d76f09d8cc7af1e57066f1d360d91 +Author: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> +Date: Sat Feb 23 16:58:41 2008 +0900 + + cpu/mips/cofigl.mk: Make a needlessly deffered expansion immediate. + + This reduces the build time by ~10%. Here's the gth2_config example. + + BEFORE AFTER + real 0m31.441s 0m27.833s + user 0m24.766s 0m23.045s + sys 0m10.425s 0m7.468s + + Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> + +commit 02409f8cf54c7cd91981f0dfec135dbf3858090c +Author: Marcel Moolenaar <marcelm@juniper.net> +Date: Fri Feb 22 10:48:07 2008 -0800 + + make define2mk.sed work on FreeBSD + + In the thread "[1.3.2-rc1] MPC8548CDS/MPC8555CDS configs fails to link", + the define2mk.sed script was identified as the source of the link + failure on FreeBSD. The problem is that sed(1) does not always support + the '+' operator. It isn't on FreeBSD. The attach patch implements the + equivalent, using the '*' operator instead and should work everywhere. + + Signed-off-by: Marcel Moolenaar <marcelm@juniper.net> + +commit e5084af8ded58453cd07ec1af8b0f29f34122bbc +Author: Detlev Zundel <dzu@denx.de> +Date: Fri Feb 22 17:21:32 2008 +0100 + + Replace deprecated "ramdisk" with "ramdisk_size" kernel parameter. + + The Linux commit fac8b209b1084bc85748bd54e13d00c1262b220f ("Remove + final traces of long-deprecated "ramdisk" kernel parm") makes these + changes neccessary. + + Signed-off-by: Detlev Zundel <dzu@denx.de> + +commit d01b847c5cd070895c4ba178c85cd068a95cf7cd +Author: Larry Johnson <lrj@acm.org> +Date: Thu Feb 21 13:58:16 2008 -0500 + + LM75 bug fix for negative temperatures + + When the LM75 temperature sensor measures a temperature below 0 C, the + current driver does not perform sign extension, so the result returned is + 256 C too high. This patch fixes the problem. + + Signed-off-by: Larry Johnson <lrj@acm.org> + +commit 5a910c224b13e413bda41922379add6d75c32da3 +Author: Heiko Schocher <hs@denx.de> +Date: Thu Feb 21 18:33:45 2008 +0100 + + IDS8247: update MAINTAINER entry. + + Signed-off-by: Heiko Schocher <hs@denx.de> + +commit 79eac2bfb591f2b028ec1735049dc91e4320de4a +Author: Heiko Schocher <hs@denx.de> +Date: Thu Feb 21 18:31:15 2008 +0100 + + Fix device tree for mgsuvd board. + + Rename the "scc" node in "ethernet" for the mgsuvd board. + + Signed-off-by: Heiko Schocher <hs@denx.de> + +commit 2e721094a70a52206af2e1bf1208d9a7131f6dad +Author: Yuri Tikhonov <yur@emcraft.com> +Date: Thu Feb 21 14:23:42 2008 +0100 + + lwmon5: enable hardware watchdog + + Some boards (e.g. lwmon5) may use rather small watchdog intervals, so + causing it to reboot the board if U-Boot does a long busy-wait with + udelay(). Thus, for these boards we have to restart WD more + frequently. + + This patch splits the busy-wait udelay() into smaller, predefined, + intervals, so that the watchdog timer may be resetted with the + configurable (CONFIG_WD_PERIOD) interval. + + Signed-off-by: Yuri Tikhonov <yur@emcraft.com> + +commit bc77881247ee6f95d7a9ebc499d26b96bae38c9d +Author: Anatolij Gustschin <agust@denx.de> +Date: Thu Feb 21 12:52:29 2008 +0100 + + ppc4xx: Support for ATI Radeon 9200 card on sequoia + + Adds configuration option for ATI Radeon 9200 card + support to sequoia config file. If CONFIG_VIDEO + is enabled, TEXT_BASE should be changed to 0xFFF80000. + + Signed-off-by: Anatolij Gustschin <agust@denx.de> + +commit 5a9abcc317cf3c8a69559ff83081f4e5d719edb7 +Author: Kumar Gala <galak@kernel.crashing.org> +Date: Mon Feb 18 08:18:07 2008 -0600 + + Remove duplicate defines for ARRAY_SIZE + + A few duplicate of the ARRAY_SIZE macro sneaked in since we put + the define in common.h. + + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit 81d93e5c4b83d8b6dcee69de6f4a14ccf6f7114a +Author: Kumar Gala <galak@kernel.crashing.org> +Date: Mon Feb 18 08:09:37 2008 -0600 + + ppc: Allow boards to specify effective amount of memory + + For historical reasons we limited the stack to 256M because some boards + could only map that much via BATS. However newer boards are capable of + mapping more memory (for example 85xx is capable of doing up to 2G). + + Signed-off-by: Kumar Gala <galak@kernel.crashing.org> + +commit 755c35f54ba7eb7687aa7935e04a02a01ef1b27b +Author: Mike Frysinger <vapier@gentoo.org> +Date: Mon Feb 18 05:24:13 2008 -0500 + + include autoconf.mk before any other .mk files + + This bumps the autoconf.mk include step above board/cpu/arch/etc... so that + those .mk files can have make if statements based on the current config. + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit 16fe77752eee099b9fb61ed73460e51cc94b37ba +Author: Mike Frysinger <vapier@gentoo.org> +Date: Mon Feb 18 05:10:07 2008 -0500 + + error check autoconf.mk generation + + If any of the steps for generating autoconf.mk fail currently, they go + unnoticed. To fix, we can simply add 'set -e' to the long list of commands. + This is simpler and more robust than placing '|| exit $$?' after every line. + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit 019895a8dee71a9f00da05c03e379f45d581b0fe +Author: Stefano Babic <sbabic@denx.de> +Date: Mon Feb 18 08:03:51 2008 +0100 + + Fix bug in dependency checking + + By adding VERSION_FILE to the PHONY targets the script + /tools/setlocalversion is always called and version_autogenerated.h + is replaced only if the script find a modified source file. + + Signed-off-by: Stefano Babic <sbabic@denx.de> + +commit 98ba144ccc912eee90dd42699f023c497ce774c6 +Author: Kyungmin Park <kmpark@infradead.org> +Date: Mon Feb 18 14:35:43 2008 +0900 + + Fix GPMC CS2 memory setup at apollon + + It disables the current map first + + Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> + +commit e845e07e1e6e64f40e35688439d3cdcf01cfff4f +Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> +Date: Sun Feb 17 23:52:46 2008 +0100 + + uli526x: Fix multiple differ in signedness and parentheses around comparison + + Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + +commit beeccf7a5dc5415c202e0132a33c58fc316c2a62 +Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> +Date: Sun Feb 17 16:58:04 2008 +0100 + + MIPS: Fix CFG_NO_FLASH support + + - Fix flash_init call when CFG_NO_FLASH is used + - Remove no more needed flash.c for qemu-mips + + Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + +commit edfed1d91df2b2670a812ca9d1a1f9faae7dba47 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Sat Feb 16 02:40:18 2008 -0500 + + easylogo: clean up some more and add -r (rgb) support + + Michael Hennerich added support for outputting an image in RGB format rather + than forcing YUYV all the time. This makes obvious sense if the display you + have takes RGB input rather than YUYV. + + Rather than hack in support for options, I've converted it to use getopt and + cleaned up the argument parsing in the process. + + Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit f65c98129ccada3f7caf97d80395a95b84e911de +Author: Mike Frysinger <vapier@gentoo.org> +Date: Sat Feb 16 02:12:37 2008 -0500 + + Makefile: add target for $(LDSCRIPT) + + If the $(LDSCRIPT) does not exist (normally it's board/$(BOARD)/u-boot.lds), + then change into the board directory and try and create it. This allows you + to generate the linker script on the fly based upon board defines (like the + Blackfin boards do). + + There should be no regressions due to this change as the normal case is to + already have a u-boot.lds file. If that's the case, then there's nothing to + generate, and so make will always exit. The fix here is that if the linker + script does not exist, the implicit rules take over and attempt to guess how + to generate the file. + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit 1ba639da5604a64b3ed884a2cbb1c5414a9fa728 +Author: Michael Schwingen <michael@schwingen.org> +Date: Mon Feb 18 23:16:35 2008 +0100 + + CFI: Do not use uninitialized cmd_reset + + Do not use uninitialized cmd_reset; issue both AMD and Intel reset + commands instead + + From a short test, it looks like AMD-style flash roms treat *any* unknown + command write as a reset, at least when in CFI Query mode, so issuing the + Intel reset command to AMD-style flashs seems safe (from the small sample I + have), plus the 3-cycle magic sequence should kick the state machine into + the right state even without a reset command. Since the AMD-style flashs + require the unlock sequence for real operation, I chose to try the AMD reset + command first, so that Intel flashs do no see an invalid command prior to + the CFI query. + + I have tested the patch on AM29LV320-style flashs from Fujitsu and Macronix, + plus Intel StrataFlash. + + Signed-off-by: Michael Schwingen <michael@schwingen.org> + Signed-off-by: Stefan Roese <sr@denx.de> + +commit e7a85f26830c9f2e78506421c2d519a2965bc7a1 +Author: Rafal Jaworowski <raj@semihalf.com> +Date: Thu Feb 21 11:56:44 2008 +0100 + + API: Add (c) and licensing notice to the public API header. + + Signed-off-by: Rafal Jaworowski <raj@semihalf.com> + +commit 928d1d77f8623c120d8763e20e1ca58df9c5c4c6 +Author: Yuri Tikhonov <yur@emcraft.com> +Date: Thu Feb 21 11:06:07 2008 +0100 + + Fix CPU POST test failure + + The CPU POST test code (run from cpu_post_exec_31()) doesn't follow the + ABI carefully, at least the CR3, CR4, and CR5 fields of CR are clobbered + by it. The gcc-4.2 with its more aggressive optimization exposes this fact. + This patch just saves the CR value before running the test code, so allowing + it to do anything it wants with CR. + + Signed-off-by: Dmitry Rakhchev <rda@emcraft.com> + Acked-by: Yuri Tikhonov <yur@emcraft.com> + -- + +commit d5908b093955415f3d340706378b991f911af671 +Author: Jon Loeliger <jdl@freescale.com> +Date: Wed Feb 20 15:26:51 2008 -0600 + + 8610HPCD: Document the flashbank selection switches. + + Signed-off-by: Jon Loeliger <jdl@freescale.com> + +commit a551cee99ad1d1da20fd23ad265de47448852f56 +Author: Jon Loeliger <jdl@freescale.com> +Date: Wed Feb 20 14:22:26 2008 -0600 + + 86xx: Fix GUR PCI config registers properly. + + Back in commit 975a083a5ef785c414b35f9c5b8ae25b26b41524 where + I tried to "8610HPCD: Fix typos in two PCI setup registers", I + botched it due to not realizing that 8610 and 8641 had different + Global Utility Register defintions, one of which was like 85xx, + and the other wasn't. Correct this problem by introducing two + symbols, one for each 86xx SoC, but neither of which is named + anything like 85xx. + + My bad. Lovely Wednesday with git bisect. You know. + + Signed-off-by: Jon Loeliger <jdl@freescale.com> + +commit cb06eb961bdffc8728b38c242473d802e83ab2b4 +Author: Jon Loeliger <jdl@freescale.com> +Date: Wed Feb 20 12:24:11 2008 -0600 + + 8610HPCD: Don't use VIDEO/CFB_CONSOLE by default. + + Without an actual supported video card hooked up, enabling + the CONFIG_VIDEO by default just makes it look broken by + routing all console output to the video card. Don't. + + Signed-off-by: Jon Loeliger <jdl@freescale.com> + +commit 4d264eff4312f230776b913edade7ceb75f1b1e0 +Author: TsiChungLiew <Tsi-Chung.Liew@freescale.com> +Date: Wed Jan 30 15:08:15 2008 -0600 + + ColdFire: Fix missing code flash size for M5485EVB + + Signed-off-by: James Mahan <kmahan@freescale.com> + Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com> + +commit c54f9263e4e11e34b1e70c160bc467ef1d8ec59d +Author: TsiChungLiew <Tsi-Chung.Liew@freescale.com> +Date: Wed Jan 30 15:04:42 2008 -0600 + + ColdFire: Fix 5282 and 5271 interrupt mask bit + + Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com> + +commit 975a083a5ef785c414b35f9c5b8ae25b26b41524 +Author: Jon Loeliger <jdl@freescale.com> +Date: Tue Feb 19 12:31:08 2008 -0600 + + 8610HPCD: Fix typos in two PCI setup registers. + + The two symbols MPC86xx_PORDEVSR_IO_SEL and MPC86xx_PORBMSR_HA + were erroneously present as 85xx names and values, leftover from + the clone wars. Fix this by removing the 85xx cruft from the + 86xx codebase. + + Signed-off-by: Jon Loeliger <jdl@freescale.com> + +commit 13f5433f700d4da9f6fdf2a4bb80310133a7c170 +Author: Jon Loeliger <jdl@freescale.com> +Date: Mon Feb 18 14:01:56 2008 -0600 + + 86xx: Convert sbc8641d to use libfdt. + + This is the proper fix for a missing closing brace in the function + ft_cpu_setup() noticed by joe.hamman <at> embeddedspecialties.com. + The ft_cpu_setup() function in mpc8641hpcn.c should have been + removed earlier as it was under the obsolete CONFIG_OF_FLAT_TREE, + but was missed. Only, the sbc8641d was nominally still using it. + It all got ripped out, and the funcality that was in ft_board_setup() + was refactored to remove the CPU portions into the new file + cpu/mpc86xx/fdt.c instead. Make sbc8641d use this now. + + Based loosely on an original patch from joe.hamman@embeddedspecialties.com + + Signed-off-by: Jon Loeliger <jdl@freescale.com> + +commit 04efddc87c50c84f85dad5c331c634a6ce830a83 +Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> +Date: Sun Feb 17 23:35:31 2008 +0100 + + mpc86xx: Fix unused variable 'config' and 'immap' + + and remove useless CONFIG_DDR_INTERLEAVE + + Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + +commit 83d1b3876695c4f21faff2b731d9ef83f38ed208 +Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> +Date: Sun Feb 17 23:03:36 2008 +0100 + + mpc86xx: Fix implicit declaration of functions 'init_laws' and 'disable_law' + + Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + +commit b6f29c84c208a091f95a10cbc9852d729659ba20 +Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> +Date: Sun Feb 17 14:15:31 2008 +0100 + + s3c24x0: Fix unused variable 'i' in function 'serial_init_dev' + + Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + +commit 0937b8d869fdb42d6ad4fe312958639bd62c973f +Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> +Date: Sun Feb 17 14:15:32 2008 +0100 + + pxa: fix assignment from incompatible pointer type + + fix mmc_bread function prototype + + Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + +commit 64d792063fff90b8118179b092feee09fe5cae13 +Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> +Date: Sun Feb 17 14:15:30 2008 +0100 + + at91cap9adk: fix implicit declaration of function 'eth_init' + + Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + +commit 375c4353db8f900f7ec772e26fab116ec00f7d3a +Author: Wolfgang Denk <wd@denx.de> +Date: Sun Feb 17 15:43:44 2008 +0100 + + Remove files added by mistake, update CHANGELOG. + + Signed-off-by: Wolfgang Denk <wd@denx.de> + commit b738654d3c84a30f2bfd9a8d7652ff20807c890c Author: Mike Nuss <mike@terascala.com> Date: Wed Feb 6 11:10:11 2008 -0500 @@ -528,4 +528,3 @@ N: Timo Tuunainen E: timo.tuunainen@sysart.fi D: Support for Artila M-501 starter kit W: http://www.sysart.fi/ - diff --git a/MAINTAINERS b/MAINTAINERS index 273bfac..dc13580 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -351,7 +351,7 @@ Travis Sawyer (travis.sawyer@sandburst.com> Heiko Schocher <hs@denx.de> - ids8247 MPC8272 + ids8247 MPC8247 jupiter MPC5200 mgcoge MPC8247 mgsuvd MPC852 @@ -24,7 +24,7 @@ VERSION = 1 PATCHLEVEL = 3 SUBLEVEL = 2 -EXTRAVERSION = -rc1 +EXTRAVERSION = -rc2 U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) VERSION_FILE = $(obj)include/version_autogenerated.h @@ -244,7 +244,7 @@ LIBS += libfdt/libfdt.a LIBS += api/libapi.a LIBS := $(addprefix $(obj),$(LIBS)) -.PHONY : $(LIBS) +.PHONY : $(LIBS) $(VERSION_FILE) # Add GCC lib PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc @@ -326,6 +326,9 @@ $(LIBS): depend $(obj)include/autoconf.mk $(SUBDIRS): depend $(obj)include/autoconf.mk $(MAKE) -C $@ all +$(LDSCRIPT): depend $(obj)include/autoconf.mk + $(MAKE) -C $(dir $@) $(notdir $@) + $(NAND_SPL): $(VERSION_FILE) $(obj)include/autoconf.mk $(MAKE) -C nand_spl/board/$(BOARDDIR) all @@ -411,6 +414,7 @@ $(obj)System.map: $(obj)u-boot # to regenerate the autoconf.mk file. $(obj)include/autoconf.mk: $(obj)include/config.h $(VERSION_FILE) @$(XECHO) Generating include/autoconf.mk ; \ + set -e ; \ : Generate the dependancies ; \ $(CC) -M $(HOST_CFLAGS) $(CPPFLAGS) -MQ $@ include/common.h > $@.dep ; \ : Extract the config macros ; \ @@ -1921,7 +1925,7 @@ M5485HFE_config : unconfig M5485EFE_config) BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \ M5485FFE_config) BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \ M5485GFE_config) BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \ - M5485HFE_config) BOOT=2;CODE=;VID=1;USB=0;RAM=64;RAM1=0;; \ + M5485HFE_config) BOOT=2;CODE=16;VID=1;USB=0;RAM=64;RAM1=0;; \ esac; \ >include/config.h ; \ echo "#define CFG_BUSCLK 100000000" > $(obj)include/config.h ; \ diff --git a/board/apollon/mem.c b/board/apollon/mem.c index c0edca5..0211c6a 100644 --- a/board/apollon/mem.c +++ b/board/apollon/mem.c @@ -198,6 +198,8 @@ void gpmc_init(void) sdelay(2000); /* setup cs2 */ + __raw_writel(0x0, GPMC_CONFIG7_2); /* disable current map */ + sdelay(1000); __raw_writel(APOLLON_24XX_GPMC_CONFIG1_0 | mux | mtype | mwidth, GPMC_CONFIG1_2); /* It's same as cs 0 */ diff --git a/board/cm5200/fwupdate.h b/board/cm5200/fwupdate.h index 4e3f1e1..3bbcbdc 100644 --- a/board/cm5200/fwupdate.h +++ b/board/cm5200/fwupdate.h @@ -39,7 +39,7 @@ #define FW_DIR "nx-fw" #define RESCUE_IMAGE "nxrs.img" #define LOAD_ADDR 0x400000 -#define RS_BOOTARGS "ramdisk=8192K" +#define RS_BOOTARGS "ramdisk_size=8192K" /* Main function for fwupdate */ void cm5200_fwupdate(void); diff --git a/board/freescale/mpc8610hpcd/mpc8610hpcd.c b/board/freescale/mpc8610hpcd/mpc8610hpcd.c index 264e959..16acbbe 100644 --- a/board/freescale/mpc8610hpcd/mpc8610hpcd.c +++ b/board/freescale/mpc8610hpcd/mpc8610hpcd.c @@ -280,13 +280,14 @@ void pci_init_board(void) volatile immap_t *immap = (immap_t *) CFG_CCSRBAR; volatile ccsr_gur_t *gur = &immap->im_gur; uint devdisr = gur->devdisr; - uint io_sel = (gur->pordevsr & MPC85xx_PORDEVSR_IO_SEL) >> 19; - uint host_agent = (gur->porbmsr & MPC85xx_PORBMSR_HA) >> 16; + uint io_sel = (gur->pordevsr & MPC8610_PORDEVSR_IO_SEL) + >> MPC8610_PORDEVSR_IO_SEL_SHIFT; + uint host_agent = (gur->porbmsr & MPC8610_PORBMSR_HA) + >> MPC8610_PORBMSR_HA_SHIFT; printf( " pci_init_board: devdisr=%x, io_sel=%x, host_agent=%x\n", devdisr, io_sel, host_agent); - #ifdef CONFIG_PCIE1 { volatile ccsr_fsl_pci_t *pci = (ccsr_fsl_pci_t *) CFG_PCIE1_ADDR; diff --git a/board/freescale/mpc8641hpcn/mpc8641hpcn.c b/board/freescale/mpc8641hpcn/mpc8641hpcn.c index 8278789..0e451dc 100644 --- a/board/freescale/mpc8641hpcn/mpc8641hpcn.c +++ b/board/freescale/mpc8641hpcn/mpc8641hpcn.c @@ -206,7 +206,8 @@ void pci_init_board(void) volatile immap_t *immap = (immap_t *) CFG_CCSRBAR; volatile ccsr_gur_t *gur = &immap->im_gur; uint devdisr = gur->devdisr; - uint io_sel = (gur->pordevsr & MPC86xx_PORDEVSR_IO_SEL) >> 16; + uint io_sel = (gur->pordevsr & MPC8641_PORDEVSR_IO_SEL) + >> MPC8641_PORDEVSR_IO_SEL_SHIFT; #ifdef CONFIG_PCI1 { @@ -214,7 +215,8 @@ void pci_init_board(void) extern void fsl_pci_init(struct pci_controller *hose); struct pci_controller *hose = &pci1_hose; #ifdef DEBUG - uint host1_agent = (gur->porbmsr & MPC86xx_PORBMSR_HA) >> 17; + uint host1_agent = (gur->porbmsr & MPC8641_PORBMSR_HA) + >> MPC8641_PORBMSR_HA_SHIFT; uint pex1_agent = (host1_agent == 0) || (host1_agent == 1); #endif if ((io_sel == 2 || io_sel == 3 || io_sel == 5 @@ -321,28 +323,16 @@ void pci_init_board(void) } + #if defined(CONFIG_OF_BOARD_SETUP) + void ft_board_setup(void *blob, bd_t *bd) { int node, tmp[2]; const char *path; - fdt_fixup_ethernet(blob, bd); - - do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, - "timebase-frequency", bd->bi_busfreq / 4, 1); - do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, - "bus-frequency", bd->bi_busfreq, 1); - do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, - "clock-frequency", bd->bi_intfreq, 1); - do_fixup_by_prop_u32(blob, "device_type", "soc", 4, - "bus-frequency", bd->bi_busfreq, 1); - - do_fixup_by_compat_u32(blob, "ns16550", - "clock-frequency", bd->bi_busfreq, 1); - - fdt_fixup_memory(blob, bd->bi_memstart, bd->bi_memsize); + ft_cpu_setup(blob, bd); node = fdt_path_offset(blob, "/aliases"); tmp[0] = 0; diff --git a/board/mgsuvd/mgsuvd.c b/board/mgsuvd/mgsuvd.c index dd7d823..9fd164b 100644 --- a/board/mgsuvd/mgsuvd.c +++ b/board/mgsuvd/mgsuvd.c @@ -193,7 +193,7 @@ void ft_blob_update(void *blob, bd_t *bd) "err:%s\n", fdt_strerror(nodeoffset)); } /* MAC Adresse */ - nodeoffset = fdt_path_offset (blob, "/soc866/cpm/scc"); + nodeoffset = fdt_path_offset (blob, "/soc866/cpm/ethernet"); if (nodeoffset >= 0) { ret = fdt_setprop(blob, nodeoffset, "mac-address", bd->bi_enetaddr, sizeof(uchar) * 6); diff --git a/board/netstal/common/nm.h b/board/netstal/common/nm.h index 9357f3a..3dff1d6 100644 --- a/board/netstal/common/nm.h +++ b/board/netstal/common/nm.h @@ -42,4 +42,3 @@ void show_sdram_registers(void); #endif long int init_ppc405_sdram(unsigned int dram_size); #endif - diff --git a/board/netstal/common/nm_bsp.c b/board/netstal/common/nm_bsp.c index 89c697c..86f491b 100644 --- a/board/netstal/common/nm_bsp.c +++ b/board/netstal/common/nm_bsp.c @@ -133,4 +133,3 @@ void common_misc_init_r(void) saveenv(); } } - diff --git a/board/qemu-mips/Makefile b/board/qemu-mips/Makefile index 23be447..837b6b9 100644 --- a/board/qemu-mips/Makefile +++ b/board/qemu-mips/Makefile @@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk LIB = $(obj)lib$(BOARD).a -COBJS = $(BOARD).o flash.o +COBJS = $(BOARD).o SOBJS = lowlevel_init.o SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) diff --git a/board/qemu-mips/flash.c b/board/qemu-mips/flash.c deleted file mode 100644 index e988272..0000000 --- a/board/qemu-mips/flash.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * 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 - */ - -#include <common.h> -/*----------------------------------------------------------------------- - * flash_init() - * - * sets up flash_info and returns size of FLASH (bytes) - */ -unsigned long flash_init(void) -{ - printf("Skipping flash_init\n"); - return(0); -} - -int write_buff(void *info, uchar *src, ulong addr, ulong cnt) -{ - printf("write_buff not implemented\n"); - return(-1); -} diff --git a/board/sbc8641d/sbc8641d.c b/board/sbc8641d/sbc8641d.c index 7adc42f..78656e9 100644 --- a/board/sbc8641d/sbc8641d.c +++ b/board/sbc8641d/sbc8641d.c @@ -35,11 +35,8 @@ #include <asm/immap_86xx.h> #include <asm/immap_fsl_pci.h> #include <spd.h> - -#if defined(CONFIG_OF_FLAT_TREE) -#include <ft_build.h> -extern void ft_cpu_setup (void *blob, bd_t * bd); -#endif +#include <libfdt.h> +#include <fdt_support.h> #if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER) extern void ddr_enable_ecc (unsigned int dram_size); @@ -341,18 +338,34 @@ void pci_init_board(void) } -#if defined(CONFIG_OF_FLAT_TREE) && defined(CONFIG_OF_BOARD_SETUP) -void ft_board_setup (void *blob, bd_t * bd) + +#if defined(CONFIG_OF_BOARD_SETUP) + +void +ft_board_setup (void *blob, bd_t *bd) { - u32 *p; - int len; + int node, tmp[2]; + const char *path; - ft_cpu_setup (blob, bd); + ft_cpu_setup(blob, bd); - p = ft_get_prop (blob, "/memory/reg", &len); - if (p != NULL) { - *p++ = cpu_to_be32 (bd->bi_memstart); - *p = cpu_to_be32 (bd->bi_memsize); + node = fdt_path_offset(blob, "/aliases"); + tmp[0] = 0; + if (node >= 0) { +#ifdef CONFIG_PCI1 + path = fdt_getprop(blob, node, "pci0", NULL); + if (path) { + tmp[1] = pci1_hose.last_busno - pci1_hose.first_busno; + do_fixup_by_path(blob, path, "bus-range", &tmp, 8, 1); + } +#endif +#ifdef CONFIG_PCI2 + path = fdt_getprop(blob, node, "pci1", NULL); + if (path) { + tmp[1] = pci2_hose.last_busno - pci2_hose.first_busno; + do_fixup_by_path(blob, path, "bus-range", &tmp, 8, 1); + } +#endif } } #endif diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index dd263b6..cab727f 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -550,10 +550,11 @@ int getenv_r (char *name, char *buf, unsigned len) return (-1); } -#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \ +#if ((defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \ || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)) \ || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND)) \ - || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_ONENAND)) + || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_ONENAND))) \ + && !defined(CFG_ENV_IS_NOWHERE)) int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { extern char * env_name_spec; @@ -605,10 +606,11 @@ U_BOOT_CMD( " - delete environment variable 'name'\n" ); -#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \ +#if ((defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \ || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)) \ || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND)) \ - || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_ONENAND)) + || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_ONENAND))) \ + && !defined(CFG_ENV_IS_NOWHERE)) U_BOOT_CMD( saveenv, 1, 0, do_saveenv, "saveenv - save environment variables to persistent storage\n", @@ -69,6 +69,9 @@ PLATFORM_CPPFLAGS+= -D__ARM__ endif endif +# Load generated board configuration +sinclude $(OBJTREE)/include/autoconf.mk + ifdef ARCH sinclude $(TOPDIR)/$(ARCH)_config.mk # include architecture dependend rules endif @@ -87,9 +90,6 @@ ifdef BOARD sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules endif -# Load generated board configuration -sinclude $(OBJTREE)/include/autoconf.mk - ######################################################################### CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ diff --git a/cpu/arm926ejs/davinci/timer.c b/cpu/arm926ejs/davinci/timer.c index 4a1a54d..8bb8b45 100644 --- a/cpu/arm926ejs/davinci/timer.c +++ b/cpu/arm926ejs/davinci/timer.c @@ -61,10 +61,12 @@ davinci_timer *timer = (davinci_timer *)CFG_TIMERBASE; #define TIMER_LOAD_VAL (CFG_HZ_CLOCK / CFG_HZ) #define READ_TIMER timer->tim34 -/* Timer runs with CFG_HZ_CLOCK, currently 27MHz. To avoid wrap - around of timestamp already after min ~159s, divide it, e.g. by 16. - timestamp will then wrap around all min ~42min */ -#define DIV(x) ((x) >> 4) +/* + * Timer runs with CFG_HZ_CLOCK, currently 27MHz. To avoid wrap + * around of timestamp already after min ~159s, divide it, e.g. by 16. + * timestamp will then wrap around all min ~42min + */ +#define DIV(x) ((x) >> 4) static ulong timestamp; static ulong lastinc; @@ -106,20 +108,20 @@ void udelay(unsigned long usec) void reset_timer_masked(void) { - lastinc = DIV(READ_TIMER); + lastinc = DIV(READ_TIMER); timestamp = 0; } ulong get_timer_raw(void) { - ulong now = DIV(READ_TIMER); + ulong now = DIV(READ_TIMER); if (now >= lastinc) { /* normal mode */ timestamp += now - lastinc; } else { /* overflow ... */ - timestamp += now + DIV(TIMER_LOAD_VAL) - lastinc; + timestamp += now + DIV(TIMER_LOAD_VAL) - lastinc; } lastinc = now; return timestamp; @@ -127,7 +129,7 @@ ulong get_timer_raw(void) ulong get_timer_masked(void) { - return(get_timer_raw() / DIV(TIMER_LOAD_VAL)); + return(get_timer_raw() / DIV(TIMER_LOAD_VAL)); } void udelay_masked(unsigned long usec) diff --git a/cpu/mcf52x2/config.mk b/cpu/mcf52x2/config.mk index f97157d..c3899c5 100644 --- a/cpu/mcf52x2/config.mk +++ b/cpu/mcf52x2/config.mk @@ -26,11 +26,11 @@ PLATFORM_RELFLAGS += -ffixed-d7 -msep-data cfg=$(shell grep configs $(OBJTREE)/include/config.h | sed 's/.*<\(configs.*\)>/\1/') -is5249=$(shell grep CONFIG_M5249 $(TOPDIR)/include/$(cfg)) -is5253=$(shell grep CONFIG_M5253 $(TOPDIR)/include/$(cfg)) -is5271=$(shell grep CONFIG_M5271 $(TOPDIR)/include/$(cfg)) -is5272=$(shell grep CONFIG_M5272 $(TOPDIR)/include/$(cfg)) -is5282=$(shell grep CONFIG_M5282 $(TOPDIR)/include/$(cfg)) +is5249:=$(shell grep CONFIG_M5249 $(TOPDIR)/include/$(cfg)) +is5253:=$(shell grep CONFIG_M5253 $(TOPDIR)/include/$(cfg)) +is5271:=$(shell grep CONFIG_M5271 $(TOPDIR)/include/$(cfg)) +is5272:=$(shell grep CONFIG_M5272 $(TOPDIR)/include/$(cfg)) +is5282:=$(shell grep CONFIG_M5282 $(TOPDIR)/include/$(cfg)) ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) diff --git a/cpu/mcf52x2/interrupts.c b/cpu/mcf52x2/interrupts.c index 2ccbde5..9167cec 100644 --- a/cpu/mcf52x2/interrupts.c +++ b/cpu/mcf52x2/interrupts.c @@ -77,7 +77,7 @@ void dtimer_intr_setup(void) volatile int0_t *intp = (int0_t *) (CFG_INTR_BASE); intp->icr0[CFG_TMRINTR_NO] = CFG_TMRINTR_PRI; - intp->imrl0 &= ~0xFFFFFFFE; + intp->imrl0 &= 0xFFFFFFFE; intp->imrl0 &= ~CFG_TMRINTR_MASK; } #endif /* CONFIG_MCFTMR */ diff --git a/cpu/mips/config.mk b/cpu/mips/config.mk index ad03bd6..b505a42 100644 --- a/cpu/mips/config.mk +++ b/cpu/mips/config.mk @@ -21,7 +21,7 @@ # MA 02111-1307 USA # v=$(shell $(AS) --version |grep "GNU assembler" |cut -d. -f2) -MIPSFLAGS=$(shell \ +MIPSFLAGS:=$(shell \ if [ "$v" -lt "14" ]; then \ echo "-mcpu=4kc"; \ else \ diff --git a/cpu/mpc86xx/Makefile b/cpu/mpc86xx/Makefile index 6d9300e..537f62a 100644 --- a/cpu/mpc86xx/Makefile +++ b/cpu/mpc86xx/Makefile @@ -28,13 +28,20 @@ include $(TOPDIR)/config.mk LIB = $(obj)lib$(CPU).a -START = start.o #resetvec.o +START = start.o SOBJS = cache.o -COBJS = traps.o cpu.o cpu_init.o speed.o interrupts.o \ - spd_sdram.o -SRCS := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS)) +COBJS-y += traps.o +COBJS-y += cpu.o +COBJS-y += cpu_init.o +COBJS-y += speed.o +COBJS-y += interrupts.o +COBJS-y += spd_sdram.o + +COBJS-$(CONFIG_OF_LIBFDT) += fdt.o + +SRCS := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS-y:.o=.c) +OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y)) START := $(addprefix $(obj),$(START)) all: $(obj).depend $(START) $(LIB) diff --git a/cpu/mpc86xx/cpu.c b/cpu/mpc86xx/cpu.c index e1b3c52..bf4e651 100644 --- a/cpu/mpc86xx/cpu.c +++ b/cpu/mpc86xx/cpu.c @@ -29,9 +29,6 @@ #include <mpc86xx.h> #include <asm/fsl_law.h> -#if defined(CONFIG_OF_FLAT_TREE) -#include <ft_build.h> -#endif int checkcpu(void) @@ -269,64 +266,6 @@ dma_xfer(void *dest, uint count, void *src) #endif /* CONFIG_DDR_ECC */ -#ifdef CONFIG_OF_FLAT_TREE -void -ft_cpu_setup(void *blob, bd_t *bd) -{ - u32 *p; - ulong clock; - int len; - - clock = bd->bi_busfreq; - p = ft_get_prop(blob, "/cpus/" OF_CPU "/bus-frequency", &len); - if (p != NULL) - *p = cpu_to_be32(clock); - - p = ft_get_prop(blob, "/" OF_SOC "/serial@4500/clock-frequency", &len); - if (p != NULL) - *p = cpu_to_be32(clock); - - p = ft_get_prop(blob, "/" OF_SOC "/serial@4600/clock-frequency", &len); - if (p != NULL) - *p = cpu_to_be32(clock); - -#if defined(CONFIG_TSEC1) - p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/mac-address", &len); - if (p != NULL) - memcpy(p, bd->bi_enetaddr, 6); - p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/local-mac-address", &len); - if (p) - memcpy(p, bd->bi_enetaddr, 6); -#endif - -#if defined(CONFIG_TSEC2) - p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/mac-address", &len); - if (p != NULL) - memcpy(p, bd->bi_enet1addr, 6); - p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/local-mac-address", &len); - if (p != NULL) - memcpy(p, bd->bi_enet1addr, 6); -#endif - -#if defined(CONFIG_TSEC3) - p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/mac-address", &len); - if (p != NULL) - memcpy(p, bd->bi_enet2addr, 6); - p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/local-mac-address", &len); - if (p != NULL) - memcpy(p, bd->bi_enet2addr, 6); -#endif - -#if defined(CONFIG_TSEC4) - p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/mac-address", &len); - if (p != NULL) - memcpy(p, bd->bi_enet3addr, 6); - p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/local-mac-address", &len); - if (p != NULL) - memcpy(p, bd->bi_enet3addr, 6); -#endif -#endif /* CONFIG_OF_FLAT_TREE */ - /* * Print out the state of various machine registers. * Currently prints out LAWs and BR0/OR0 diff --git a/cpu/mpc86xx/cpu_init.c b/cpu/mpc86xx/cpu_init.c index ab5906d..0efd855 100644 --- a/cpu/mpc86xx/cpu_init.c +++ b/cpu/mpc86xx/cpu_init.c @@ -28,6 +28,7 @@ #include <common.h> #include <mpc86xx.h> +#include <asm/fsl_law.h> DECLARE_GLOBAL_DATA_PTR; diff --git a/cpu/mpc86xx/fdt.c b/cpu/mpc86xx/fdt.c new file mode 100644 index 0000000..379306e --- /dev/null +++ b/cpu/mpc86xx/fdt.c @@ -0,0 +1,35 @@ +/* + * Copyright 2008 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * Version 2 as published by the Free Software Foundation. + */ + +#include <common.h> +#include <libfdt.h> +#include <fdt_support.h> + +void ft_cpu_setup(void *blob, bd_t *bd) +{ + do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, + "timebase-frequency", bd->bi_busfreq / 4, 1); + do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, + "bus-frequency", bd->bi_busfreq, 1); + do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, + "clock-frequency", bd->bi_intfreq, 1); + do_fixup_by_prop_u32(blob, "device_type", "soc", 4, + "bus-frequency", bd->bi_busfreq, 1); + + fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize); + +#if defined(CONFIG_HAS_ETH0) || defined(CONFIG_HAS_ETH1) \ + || defined(CONFIG_HAS_ETH2) || defined(CONFIG_HAS_ETH3) + fdt_fixup_ethernet(blob, bd); +#endif + +#ifdef CFG_NS16550 + do_fixup_by_compat_u32(blob, "ns16550", + "clock-frequency", bd->bi_busfreq, 1); +#endif +} diff --git a/cpu/mpc86xx/spd_sdram.c b/cpu/mpc86xx/spd_sdram.c index e501caf..60a7818 100644 --- a/cpu/mpc86xx/spd_sdram.c +++ b/cpu/mpc86xx/spd_sdram.c @@ -943,7 +943,7 @@ unsigned int enable_ddr(unsigned int ddr_num) spd_eeprom_t spd1,spd2; volatile ccsr_ddr_t *ddr; unsigned sdram_cfg_1; - unsigned char sdram_type, mem_type, config, mod_attr; + unsigned char sdram_type, mem_type, mod_attr; unsigned char d_init; unsigned int no_dimm1=0, no_dimm2=0; @@ -1017,6 +1017,10 @@ unsigned int enable_ddr(unsigned int ddr_num) printf("No memory modules found for DDR controller %d!!\n", ddr_num); return 0; } else { + +#if defined(CONFIG_DDR_ECC) + unsigned char config; +#endif mem_type = no_dimm2 ? spd1.mem_type : spd2.mem_type; /* @@ -1122,8 +1126,8 @@ spd_sdram(void) int memsize_ddr1_dimm2 = 0; int memsize_ddr1 = 0; unsigned int law_size_ddr1; - volatile immap_t *immap = (immap_t *)CFG_IMMR; #ifdef CONFIG_DDR_INTERLEAVE + volatile immap_t *immap = (immap_t *)CFG_IMMR; volatile ccsr_ddr_t *ddr1 = &immap->im_ddr1; #endif @@ -1183,7 +1187,6 @@ spd_sdram(void) #endif debug("Interleaved memory size is 0x%08lx\n", memsize_total); -#ifdef CONFIG_DDR_INTERLEAVE #if (CFG_PAGE_INTERLEAVING == 1) printf("Page "); #elif (CFG_BANK_INTERLEAVING == 1) @@ -1193,7 +1196,6 @@ spd_sdram(void) #else printf("Cache-line "); #endif -#endif printf("Interleaved"); return memsize_total * 1024 * 1024; } else { diff --git a/cpu/ppc4xx/config.mk b/cpu/ppc4xx/config.mk index 311c97b..baa97a4 100644 --- a/cpu/ppc4xx/config.mk +++ b/cpu/ppc4xx/config.mk @@ -25,7 +25,7 @@ PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi -fno-strict-aliasing PLATFORM_CPPFLAGS += -DCONFIG_4xx -ffixed-r2 -mstring -msoft-float cfg=$(shell grep configs $(OBJTREE)/include/config.h | sed 's/.*<\(configs.*\)>/\1/') -is440=$(shell grep CONFIG_440 $(TOPDIR)/include/$(cfg)) +is440:=$(shell grep CONFIG_440 $(TOPDIR)/include/$(cfg)) ifneq (,$(findstring CONFIG_440,$(is440))) PLATFORM_CPPFLAGS += -Wa,-m440 -mcpu=440 diff --git a/doc/README.mpc8610hpcd b/doc/README.mpc8610hpcd index 949dcb2..31a9af3 100644 --- a/doc/README.mpc8610hpcd +++ b/doc/README.mpc8610hpcd @@ -65,3 +65,9 @@ Examples; * 40 is SYSCLK, 2.5 is COREPLL ratio, 10 is MPXPLL ratio */ pixis-reset altbank cf 40 2.5 10 + + +DIP Switch Settings +------------------- +To manually switch the flash banks using the DIP switch +settings, toggle both SW6:1 and SW6:2. diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c index 63f3b75..e29b294 100644 --- a/drivers/hwmon/lm75.c +++ b/drivers/hwmon/lm75.c @@ -179,7 +179,13 @@ int dtt_init (void) int dtt_get_temp(int sensor) { - return (dtt_read(sensor, DTT_READ_TEMP) / 256); + int const ret = dtt_read(sensor, DTT_READ_TEMP); + + if (ret < 0) { + printf("DTT temperature read failed.\n"); + return 0; + } + return (int)((int16_t) ret / 256); } /* dtt_get_temp() */ #endif /* CONFIG_DTT_LM75 */ diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index eb509f5..439c950 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -1538,7 +1538,12 @@ static int __flash_detect_cfi (flash_info_t * info, struct cfi_qry *qry) { int cfi_offset; - flash_write_cmd (info, 0, 0, info->cmd_reset); + /* We do not yet know what kind of commandset to use, so we issue + the reset command in both Intel and AMD variants, in the hope + that AMD flash roms ignore the Intel command. */ + flash_write_cmd (info, 0, 0, AMD_CMD_RESET); + flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); + for (cfi_offset=0; cfi_offset < sizeof(flash_offset_cfi) / sizeof(uint); cfi_offset++) { diff --git a/drivers/net/uli526x.c b/drivers/net/uli526x.c index 8460f69..d64845f 100644 --- a/drivers/net/uli526x.c +++ b/drivers/net/uli526x.c @@ -32,9 +32,9 @@ #define ULI5261_DEVICE_ID 0x5261 #define ULI5263_DEVICE_ID 0x5263 /* ULi M5261 ID*/ -#define PCI_ULI5261_ID ULI5261_DEVICE_ID << 16 | ULI_VENDOR_ID +#define PCI_ULI5261_ID (ULI5261_DEVICE_ID << 16 | ULI_VENDOR_ID) /* ULi M5263 ID*/ -#define PCI_ULI5263_ID ULI5263_DEVICE_ID << 16 | ULI_VENDOR_ID +#define PCI_ULI5263_ID (ULI5263_DEVICE_ID << 16 | ULI_VENDOR_ID) #define ULI526X_IO_SIZE 0x100 #define TX_DESC_CNT 0x10 /* Allocated Tx descriptors */ @@ -281,7 +281,7 @@ static int uli526x_init_one(struct eth_device *dev, bd_t *bis) if (db->desc_pool_ptr == NULL) return -1; - db->buf_pool_ptr = &buf_pool[0]; + db->buf_pool_ptr = (uchar *)&buf_pool[0]; db->buf_pool_dma_ptr = (dma_addr_t)&buf_pool[0]; if (db->buf_pool_ptr == NULL) return -1; @@ -588,7 +588,7 @@ static int uli526x_rx_packet(struct eth_device *dev) __FUNCTION__, i, rxptr->rx_buf_ptr[i]); #endif - NetReceive(rxptr->rx_buf_ptr, rxlen); + NetReceive((uchar *)rxptr->rx_buf_ptr, rxlen); uli526x_reuse_buf(rxptr); } else { @@ -656,7 +656,7 @@ static void uli526x_descriptor_init(struct uli526x_board_info *db, tmp_tx_dma = db->first_tx_desc_dma; for (tmp_tx = db->first_tx_desc, i = 0; i < TX_DESC_CNT; i++, tmp_tx++) { - tmp_tx->tx_buf_ptr = tmp_buf; + tmp_tx->tx_buf_ptr = (char *)tmp_buf; tmp_tx->tdes0 = cpu_to_le32(0); tmp_tx->tdes1 = cpu_to_le32(0x81000000); /* IC, chain */ tmp_tx->tdes2 = cpu_to_le32(tmp_buf_dma); diff --git a/include/api_public.h b/include/api_public.h index 690975e..9bc0501 100644 --- a/include/api_public.h +++ b/include/api_public.h @@ -1,3 +1,54 @@ +/* + * (C) Copyright 2007-2008 Semihalf + * + * Written by: Rafal Jaworowski <raj@semihalf.com> + * + * This file is dual licensed; you can use it under the terms of + * either the GPL, or the BSD license, at your option. + * + * I. GPL: + * + * This file 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 file 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 + * + * Alternatively, + * + * II. BSD license: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + #ifndef _API_PUBLIC_H_ #define _API_PUBLIC_H_ diff --git a/include/asm-arm/types.h b/include/asm-arm/types.h index 13e9806..e56f19d 100644 --- a/include/asm-arm/types.h +++ b/include/asm-arm/types.h @@ -17,9 +17,9 @@ typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -typedef __signed__ long long __s64; -typedef unsigned long long __u64; +#if defined(__GNUC__) +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; #endif /* diff --git a/include/asm-avr32/types.h b/include/asm-avr32/types.h index e6c65d9..2dbea4b 100644 --- a/include/asm-avr32/types.h +++ b/include/asm-avr32/types.h @@ -39,9 +39,9 @@ typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -typedef __signed__ long long __s64; -typedef unsigned long long __u64; +#if defined(__GNUC__) +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; #endif #endif /* __ASSEMBLY__ */ diff --git a/include/asm-blackfin/types.h b/include/asm-blackfin/types.h index 665a419..9fd8e03 100644 --- a/include/asm-blackfin/types.h +++ b/include/asm-blackfin/types.h @@ -50,9 +50,9 @@ typedef __signed__ int __s32; typedef unsigned int __u32; /* HK0617 -- Changes to unsigned long temporarily */ -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -typedef __signed__ long long __s64; -typedef unsigned long long __u64; +#if defined(__GNUC__) +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; #endif /* diff --git a/include/asm-m68k/types.h b/include/asm-m68k/types.h index e673cb0..e944d3f 100644 --- a/include/asm-m68k/types.h +++ b/include/asm-m68k/types.h @@ -14,9 +14,9 @@ typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -typedef __signed__ long long __s64; -typedef unsigned long long __u64; +#if defined(__GNUC__) +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; #endif typedef struct { diff --git a/include/asm-mips/types.h b/include/asm-mips/types.h index e757e22..707cbf4 100644 --- a/include/asm-mips/types.h +++ b/include/asm-mips/types.h @@ -33,9 +33,9 @@ typedef unsigned long __u64; #else -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -typedef __signed__ long long __s64; -typedef unsigned long long __u64; +#if defined(__GNUC__) +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; #endif #endif diff --git a/include/asm-ppc/fsl_law.h b/include/asm-ppc/fsl_law.h index 23bd505..e955c75 100644 --- a/include/asm-ppc/fsl_law.h +++ b/include/asm-ppc/fsl_law.h @@ -3,7 +3,6 @@ #include <asm/io.h> -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) #define SET_LAW_ENTRY(idx, a, sz, trgt) \ { .index = idx, .addr = a, .size = sz, .trgt_id = trgt } diff --git a/include/asm-ppc/immap_86xx.h b/include/asm-ppc/immap_86xx.h index a15c6ec..7526061 100644 --- a/include/asm-ppc/immap_86xx.h +++ b/include/asm-ppc/immap_86xx.h @@ -1256,12 +1256,16 @@ typedef struct ccsr_rio { typedef struct ccsr_gur { uint porpllsr; /* 0xe0000 - POR PLL ratio status register */ uint porbmsr; /* 0xe0004 - POR boot mode status register */ -#define MPC86xx_PORBMSR_HA 0x00060000 -#define MPC85xx_PORBMSR_HA 0x00070000 +#define MPC8610_PORBMSR_HA 0x00070000 +#define MPC8610_PORBMSR_HA_SHIFT 16 +#define MPC8641_PORBMSR_HA 0x00060000 +#define MPC8641_PORBMSR_HA_SHIFT 17 uint porimpscr; /* 0xe0008 - POR I/O impedance status and control register */ uint pordevsr; /* 0xe000c - POR I/O device status regsiter */ -#define MPC86xx_PORDEVSR_IO_SEL 0x000F0000 -#define MPC85xx_PORDEVSR_IO_SEL 0x00380000 /* 85xx platform type */ +#define MPC8610_PORDEVSR_IO_SEL 0x00380000 +#define MPC8610_PORDEVSR_IO_SEL_SHIFT 19 +#define MPC8641_PORDEVSR_IO_SEL 0x000F0000 +#define MPC8641_PORDEVSR_IO_SEL_SHIFT 16 #define MPC86xx_PORDEVSR_CORE1TE 0x00000080 /* ASMP (Core1 addr trans) */ uint pordbgmsr; /* 0xe0010 - POR debug mode status register */ char res1[12]; diff --git a/include/asm-ppc/mmu.h b/include/asm-ppc/mmu.h index ec1ca53..5af22af 100644 --- a/include/asm-ppc/mmu.h +++ b/include/asm-ppc/mmu.h @@ -427,7 +427,6 @@ extern void disable_tlb(u8 esel); extern void invalidate_tlb(u8 tlb); extern void init_tlbs(void); -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) #define SET_TLB_ENTRY(_tlb, _epn, _rpn, _perms, _wimge, _ts, _esel, _sz, _iprot) \ { .tlb = _tlb, .epn = _epn, .rpn = _rpn, .perms = _perms, \ .wimge = _wimge, .ts = _ts, .esel = _esel, .tsize = _sz, .iprot = _iprot } diff --git a/include/asm-ppc/types.h b/include/asm-ppc/types.h index 4ebbb9e..7adf145 100644 --- a/include/asm-ppc/types.h +++ b/include/asm-ppc/types.h @@ -14,9 +14,9 @@ typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -typedef __signed__ long long __s64; -typedef unsigned long long __u64; +#if defined(__GNUC__) +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; #endif typedef struct { diff --git a/include/asm-sh/types.h b/include/asm-sh/types.h index fd00dbb..7ba69d9 100644 --- a/include/asm-sh/types.h +++ b/include/asm-sh/types.h @@ -19,9 +19,9 @@ typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -typedef __signed__ long long __s64; -typedef unsigned long long __u64; +#if defined(__GNUC__) +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; #endif #endif /* __ASSEMBLY__ */ diff --git a/include/configs/AmigaOneG3SE.h b/include/configs/AmigaOneG3SE.h index d914dcc..a992498 100644 --- a/include/configs/AmigaOneG3SE.h +++ b/include/configs/AmigaOneG3SE.h @@ -54,7 +54,7 @@ #undef CONFIG_CLOCKS_IN_MHZ /* clocks passed to Linux in Hz */ -#define CONFIG_BOOTARGS "root=/dev/ram rw ramdisk=4096" +#define CONFIG_BOOTARGS "root=/dev/ram rw ramdisk_size=4096" /* * BOOTP options diff --git a/include/configs/MPC8610HPCD.h b/include/configs/MPC8610HPCD.h index 3920147..9e70198 100644 --- a/include/configs/MPC8610HPCD.h +++ b/include/configs/MPC8610HPCD.h @@ -24,7 +24,7 @@ #define CONFIG_FSL_DIU_FB 1 /* FSL DIU */ /* video */ -#define CONFIG_VIDEO +#undef CONFIG_VIDEO #if defined(CONFIG_VIDEO) #define CONFIG_CFB_CONSOLE diff --git a/include/configs/NX823.h b/include/configs/NX823.h index 524aa06..da1c173 100644 --- a/include/configs/NX823.h +++ b/include/configs/NX823.h @@ -47,7 +47,7 @@ #undef CONFIG_8xx_CONS_NONE #define CONFIG_BAUDRATE 57600 /* console baudrate = 115kbps */ #define CONFIG_BOOTDELAY 2 /* autoboot after 2 seconds */ -#define CONFIG_BOOTARGS "ramdisk=8000 "\ +#define CONFIG_BOOTARGS "ramdisk_size=8000 "\ "root=/dev/nfs rw nfsroot=10.77.77.250:/ppcroot "\ "nfsaddrs=10.77.77.20:10.77.77.250" #define CONFIG_BOOTCOMMAND "bootm 400e0000" diff --git a/include/configs/lwmon5.h b/include/configs/lwmon5.h index d8a2267..97e8bf1 100644 --- a/include/configs/lwmon5.h +++ b/include/configs/lwmon5.h @@ -366,12 +366,11 @@ #define CFG_PCI_SUBSYS_VENDORID 0x10e8 /* AMCC */ #define CFG_PCI_SUBSYS_ID 0xcafe /* Whatever */ -#if 0 /* * ToDo: Watchdog is not test fully, so exclude it for now */ #define CONFIG_HW_WATCHDOG 1 /* Use external HW-Watchdog */ -#endif +#define CONFIG_WD_PERIOD 40000 /* in usec */ /* * For booting Linux, the board info and command line data diff --git a/include/configs/sbc8641d.h b/include/configs/sbc8641d.h index 1991a8c..18cedff 100644 --- a/include/configs/sbc8641d.h +++ b/include/configs/sbc8641d.h @@ -268,13 +268,9 @@ /* * Pass open firmware flat tree to kernel */ -#define CONFIG_OF_FLAT_TREE 1 -#define CONFIG_OF_BOARD_SETUP 1 - -#define OF_CPU "PowerPC,8641@0" -#define OF_SOC "soc@f8000000" -#define OF_TBCLK (bd->bi_busfreq / 4) -#define OF_STDOUT_PATH "/soc@f8000000/serial@4500" +#define CONFIG_OF_LIBFDT 1 +#define CONFIG_OF_BOARD_SETUP 1 +#define CONFIG_OF_STDOUT_VIA_ALIAS 1 #define CFG_64BIT_VSPRINTF 1 #define CFG_64BIT_STRTOUL 1 diff --git a/include/configs/sequoia.h b/include/configs/sequoia.h index cd0ae6d..52952a9 100644 --- a/include/configs/sequoia.h +++ b/include/configs/sequoia.h @@ -43,7 +43,13 @@ #define CONFIG_SYS_CLK_FREQ ((in8(CFG_BCSR_BASE + 3) & 0x80) ? \ 33333333 : 33000000) -#if 0 +/* + * Define this if you want support for video console with radeon 9200 pci card + * Also set TEXT_BASE to 0xFFF80000 in board/amcc/sequoia/config.mk in this case + */ +#undef CONFIG_VIDEO + +#ifdef CONFIG_VIDEO /* * 44x dcache supported is working now on sequoia, but we don't enable * it yet since it needs further testing @@ -58,8 +64,13 @@ * Base addresses -- Note these are effective addresses where the actual * resources get mapped (not physical addresses). */ +#ifndef CONFIG_VIDEO #define CFG_MONITOR_LEN (384 * 1024) /* Reserve 384 kiB for Monitor */ #define CFG_MALLOC_LEN (256 * 1024) /* Reserve 256 kiB for malloc() */ +#else +#define CFG_MONITOR_LEN (512 * 1024) /* Reserve 512 kB for Monitor */ +#define CFG_MALLOC_LEN (1024 * 1024) /* Reserve 1024 kB for malloc() */ +#endif #define CFG_TLB_FOR_BOOT_FLASH 0x0003 #define CFG_BOOT_BASE_ADDR 0xf0000000 @@ -571,4 +582,17 @@ #define CONFIG_OF_LIBFDT 1 #define CONFIG_OF_BOARD_SETUP 1 +#ifdef CONFIG_VIDEO +#define CONFIG_BIOSEMU /* x86 bios emulator for vga bios */ +#define CONFIG_ATI_RADEON_FB /* use radeon framebuffer driver */ +#define VIDEO_IO_OFFSET 0xe8000000 +#define CFG_ISA_IO_BASE_ADDRESS VIDEO_IO_OFFSET +#define CONFIG_VIDEO_SW_CURSOR +#define CONFIG_VIDEO_LOGO +#define CONFIG_CFB_CONSOLE +#define CONFIG_SPLASH_SCREEN +#define CONFIG_VGA_AS_SINGLE_DEVICE +#define CONFIG_CMD_BMP +#endif + #endif /* __CONFIG_H */ diff --git a/include/configs/zeus.h b/include/configs/zeus.h index 810a528..cd120df 100644 --- a/include/configs/zeus.h +++ b/include/configs/zeus.h @@ -333,7 +333,7 @@ "nfsargs=setenv bootargs root=/dev/nfs rw" \ " nfsroot=${serverip}:${rootpath}\0" \ "ramargs=setenv bootargs root=/dev/ram rw" \ - " ramdisk=${ramdisk_size}\0" \ + " ramdisk_size=${ramdisk_size}\0" \ "addip=setenv bootargs ${bootargs} " \ "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}" \ ":${hostname}:${netdev}:off panic=1\0" \ diff --git a/lib_mips/board.c b/lib_mips/board.c index c1a0acf..1645f2c 100644 --- a/lib_mips/board.c +++ b/lib_mips/board.c @@ -121,12 +121,13 @@ static int display_banner(void) return (0); } +#ifndef CFG_NO_FLASH static void display_flash_config(ulong size) { puts ("Flash: "); print_size (size, "\n"); } - +#endif static int init_baudrate (void) { @@ -247,7 +248,7 @@ void board_init_f(ulong bootflag) debug ("Reserving %d Bytes for Global Data at: %08lx\n", sizeof (gd_t), addr_sp); - /* Reserve memory for boot params. + /* Reserve memory for boot params. */ addr_sp -= CFG_BOOTPARAMS_LEN; bd->bi_boot_params = addr_sp; @@ -301,7 +302,9 @@ void board_init_f(ulong bootflag) void board_init_r (gd_t *id, ulong dest_addr) { cmd_tbl_t *cmdtp; +#ifndef CFG_NO_FLASH ulong size; +#endif extern void malloc_bin_reloc (void); #ifndef CFG_ENV_IS_NOWHERE extern char * env_name_spec; @@ -322,7 +325,7 @@ void board_init_r (gd_t *id, ulong dest_addr) /* * We have to relocate the command table manually */ - for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) { + for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) { ulong addr; addr = (ulong) (cmdtp->cmd) + gd->reloc_off; @@ -352,13 +355,16 @@ void board_init_r (gd_t *id, ulong dest_addr) env_name_spec += gd->reloc_off; #endif + bd = gd->bd; + +#ifndef CFG_NO_FLASH /* configure available FLASH banks */ size = flash_init(); display_flash_config (size); + bd->bi_flashsize = size; +#endif - bd = gd->bd; bd->bi_flashstart = CFG_FLASH_BASE; - bd->bi_flashsize = size; #if CFG_MONITOR_BASE == CFG_FLASH_BASE bd->bi_flashoffset = monitor_flash_len; /* reserved area for U-Boot */ #else diff --git a/lib_ppc/time.c b/lib_ppc/time.c index 51e8e840..2649d5f 100644 --- a/lib_ppc/time.c +++ b/lib_ppc/time.c @@ -23,6 +23,9 @@ #include <common.h> +#ifndef CONFIG_WD_PERIOD +# define CONFIG_WD_PERIOD (10 * 1000 * 1000) /* 10 seconds default*/ +#endif /* ------------------------------------------------------------------------- */ @@ -53,9 +56,14 @@ unsigned long usec2ticks(unsigned long usec) */ void udelay(unsigned long usec) { - ulong ticks = usec2ticks (usec); - - wait_ticks (ticks); + ulong ticks, kv; + + do { + kv = usec > CONFIG_WD_PERIOD ? CONFIG_WD_PERIOD : usec; + ticks = usec2ticks (kv); + wait_ticks (ticks); + usec -= kv; + } while(usec); } /* ------------------------------------------------------------------------- */ diff --git a/tools/easylogo/easylogo.c b/tools/easylogo/easylogo.c index 080bea9..c20e6a7 100644 --- a/tools/easylogo/easylogo.c +++ b/tools/easylogo/easylogo.c @@ -7,6 +7,8 @@ ** This is still under construction! */ +#include <getopt.h> +#include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -216,15 +218,10 @@ int image_load_tga (image_t * image, char *filename) return 0; } -int image_free (image_t * image) +void image_free (image_t * image) { - if (image->data != NULL) - free (image->data); - - if (image->palette != NULL) - free (image->palette); - - return 0; + free (image->data); + free (image->palette); } int image_rgb_to_yuyv (image_t * rgb_image, image_t * yuyv_image) @@ -353,59 +350,76 @@ int image_save_header (image_t * image, char *filename, char *varname) #define DEF_FILELEN 256 +static void usage (int exit_status) +{ + puts ( + "EasyLogo 1.0 (C) 2000 by Paolo Scaffardi\n" + "\n" + "Syntax: easylogo [options] inputfile [outputvar [outputfile]]\n" + "\n" + "Options:\n" + " -r Output RGB instead of YUYV\n" + " -h Help output\n" + "\n" + "Where: 'inputfile' is the TGA image to load\n" + " 'outputvar' is the variable name to create\n" + " 'outputfile' is the output header file (default is 'inputfile.h')" + ); + exit (exit_status); +} + int main (int argc, char *argv[]) { + int c; + bool use_rgb = false; char inputfile[DEF_FILELEN], outputfile[DEF_FILELEN], varname[DEF_FILELEN]; image_t rgb_logo, yuyv_logo; - switch (argc) { - case 2: - case 3: - case 4: - strcpy (inputfile, argv[1]); - - if (argc > 2) - strcpy (varname, argv[2]); - else { - char *dot = strchr (inputfile, '.'); - int pos = dot - inputfile; - - if (dot) { - strncpy (varname, inputfile, pos); - varname[pos] = 0; - } - } - - if (argc > 3) - strcpy (outputfile, argv[3]); - else { - char *dot = strchr (varname, '.'); - int pos = dot - varname; - - if (dot) { - char app[DEF_FILELEN]; - - strncpy (app, varname, pos); - app[pos] = 0; - sprintf (outputfile, "%s.h", app); - } + while ((c = getopt(argc, argv, "hr")) > 0) { + switch (c) { + case 'h': + usage (0); + break; + case 'r': + use_rgb = true; + puts ("Using 24-bit RGB Output Fromat"); + break; + default: + usage (1); + break; } - break; - - default: - printf ("EasyLogo 1.0 (C) 2000 by Paolo Scaffardi\n\n"); + } - printf("Syntax: easylogo inputfile [outputvar {outputfile}] \n"); - printf("\n"); - printf("Where: 'inputfile' is the TGA image to load\n"); - printf(" 'outputvar' is the variable name to create\n"); - printf(" 'outputfile' is the output header file (default is 'inputfile.h')\n"); + c = argc - optind; + if (c > 4 || c < 1) + usage (1); + + strcpy (inputfile, argv[optind]); + + if (c > 1) + strcpy (varname, argv[optind + 1]); + else { + /* transform "input.tga" to just "input" */ + char *dot; + strcpy (varname, inputfile); + dot = strchr (varname, '.'); + if (dot) + *dot = '\0'; + } - return -1; + if (c > 2) + strcpy (outputfile, argv[optind + 2]); + else { + /* just append ".h" to input file name */ + strcpy (outputfile, inputfile); + strcat (outputfile, ".h"); } + /* Make sure the output is sent as soon as we printf() */ + setbuf(stdout, NULL); + printf ("Doing '%s' (%s) from '%s'...", outputfile, varname, inputfile); @@ -417,20 +431,23 @@ int main (int argc, char *argv[]) exit (1); } - /* Convert it to YUYV format */ + /* Convert it to YUYV format if wanted */ - printf ("C"); - image_rgb_to_yuyv (&rgb_logo, &yuyv_logo); + if (!use_rgb) { + printf ("C"); + image_rgb_to_yuyv (&rgb_logo, &yuyv_logo); + } /* Save it into a header format */ printf ("S"); - image_save_header (&yuyv_logo, outputfile, varname); + image_save_header (use_rgb ? &rgb_logo : &yuyv_logo, outputfile, varname); /* Free original image and copy */ image_free (&rgb_logo); - image_free (&yuyv_logo); + if (!use_rgb) + image_free (&yuyv_logo); printf ("\n"); diff --git a/tools/scripts/define2mk.sed b/tools/scripts/define2mk.sed index 6464627..af40bfa 100644 --- a/tools/scripts/define2mk.sed +++ b/tools/scripts/define2mk.sed @@ -7,11 +7,11 @@ # # Only process values prefixed with #define CONFIG_ -/^#define CONFIG_[A-Za-z0-9_]\+/ { +/^#define CONFIG_[A-Za-z0-9_][A-Za-z0-9_]*/ { # Strip the #define prefix s/#define *//; # Change to form CONFIG_*=VALUE - s/ \+/=/; + s/ */=/; # Drop trailing spaces s/ *$//; # drop quotes around string values |