diff options
-rw-r--r-- | CHANGELOG | 573 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | board/ep88x/u-boot.lds | 2 | ||||
-rw-r--r-- | board/freescale/mpc8569mds/bcsr.c | 2 | ||||
-rw-r--r-- | board/freescale/mpc8569mds/ddr.c | 2 | ||||
-rw-r--r-- | board/trizepsiv/eeprom.c | 14 | ||||
-rw-r--r-- | cpu/arm926ejs/at91/cpu.c | 23 | ||||
-rw-r--r-- | cpu/mpc85xx/tlb.c | 2 | ||||
-rw-r--r-- | drivers/net/4xx_enet.c | 10 | ||||
-rw-r--r-- | drivers/net/dm9000x.c | 16 | ||||
-rw-r--r-- | drivers/net/rtl8169.c | 13 | ||||
-rw-r--r-- | drivers/net/smc911x.c | 32 | ||||
-rw-r--r-- | drivers/usb/host/ohci-at91.c | 3 | ||||
-rw-r--r-- | fs/ubifs/ubifs.c | 6 | ||||
-rw-r--r-- | include/configs/MPC8569MDS.h | 4 | ||||
-rw-r--r-- | include/configs/TQM85xx.h | 20 | ||||
-rw-r--r-- | include/configs/at91sam9261ek.h | 1 | ||||
-rw-r--r-- | include/configs/rmu.h | 3 | ||||
-rw-r--r-- | include/dm9000.h | 20 | ||||
-rw-r--r-- | onenand_ipl/board/apollon/Makefile | 2 |
20 files changed, 693 insertions, 57 deletions
@@ -1,3 +1,576 @@ +commit 3a76ab5c166d5956885f803ce975e7151cc0ca0e +Author: Wolfgang Denk <wd@denx.de> +Date: Wed Jun 10 00:15:11 2009 +0200 + + rmu board: fix error: 'CONFIG_ENV_SECT_SIZE' undeclared + + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit 165f9859b64ff59f0cfae3cc70a7e7ded7aaa4a7 +Author: Daniel Mack <daniel@caiaq.de> +Date: Thu Jun 4 19:44:12 2009 +0200 + + ubifs: fix small error path mismatch + + In do_readpage(), don't free 'dn' if its allocation failed. + + Signed-off-by: Daniel Mack <daniel@caiaq.de> + +commit de7cf709ebd3c01fbd094e8853dabb410c0370a1 +Author: Wolfgang Denk <wd@denx.de> +Date: Thu Jun 4 00:31:07 2009 +0200 + + EP88x: fix broken linker script + + Signed-off-by: Wolfgang Denk <wd@denx.de> + Tested-by: Mikhail Zaturenskiy <mzaturenskiy@shoppertrak.com> + +commit 7a2063bd80d3b58b2dd5d5e58f4411f8d250576c +Author: Wolfgang Denk <wd@denx.de> +Date: Fri May 15 00:16:02 2009 +0200 + + TQM85xx: minor config file cleanup + + Remove "saveenv" from "update" definition: the environment is outside + the U-Boot image on TQM85xx and therefor not affected by updates. + + Also "beautify" code a bit (vertical alignment). + + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit c0296b1801fc9426d772fa75fe58458db605dfee +Author: Wolfgang Denk <wd@denx.de> +Date: Fri May 15 00:16:01 2009 +0200 + + TQM85xx: adapt for new flash types + + Old TQM85xx boards had 'M' type Spansion Flashes from the S29GLxxxM + series while new boards have 'N' type Flashes from the S29GLxxxN + series, which have bigger sectors: 2 x 128 instead of 2 x 64 KB. + + We now change the configuration to the new flash types for all + boards; this also works on old boards - we just waste two flash + sectors for the environment which could be smaller there. + + Signed-off-by: Wolfgang Denk <wd@denx.de> + +commit 6735104924f06340071a6914a9ee3345607fc102 +Author: Dave Liu <daveliu@freescale.com> +Date: Mon May 18 17:49:23 2009 +0800 + + 85xx: Fix the wrong SYS_CLK_IN for 8569MDS + + The SYS_CLK_IN of MPC8569MDS is 66.66MHz, + The DDR_CLK_IN is same with SYS_CLK_IN in 8569 processor. + so, change the SYS_CLK_IN from 66MHz to 66.66MHz. + + Signed-off-by: Dave Liu <daveliu@freescale.com> + +commit 16e7559c08b6f29db4596d795b92914c01e6a1b3 +Author: Dave Liu <daveliu@freescale.com> +Date: Fri May 15 10:27:44 2009 +0800 + + 85xx: Fix the wrong BCSR address of 8569MDS + + The BCSR17[7] = 1 will unlock the write protect of FLASH. + The WP# pin only controls the write protect of top/bottom sector, + That is why we can save env, but we can't write the first sector + before the patch. + + Signed-off-by: Dave Liu <daveliu@freescale.com> + +commit 90d13b8ac3d515349626d7c8a3dc34ef38c43fa6 +Author: Fredrik Arnerup <fredrik.arnerup@edgeware.tv> +Date: Tue Jun 2 16:27:10 2009 -0500 + + 85xx: bugfix for reading maximum TLB size on mpc85xx + + The MAXSIZE field in the TLB1CFG register is 4 bits, not 8 bits. + This made setup_ddr_tlbs() try to set up a TLB larger than the e500 maximum + (256 MB) + which made u-boot hang in board_init_f() when trying to create a new stack + in RAM. + I have an mpc8540 with one 1GB dimm. + + Signed-off-by: Fredrik Arnerup <fredrik.arnerup@edgeware.tv> + Signed-off-by: Andy Fleming <afleming@freescale.com> + Acked-by: Kumar Gala <galak@kernel.crashing.org> + +commit 1b5291dddf5f16c7ae10e3cb165882fa96038b26 +Author: Dave Liu <daveliu@freescale.com> +Date: Fri Mar 27 14:32:43 2009 +0800 + + 85xx: Fix the clock adjust of mpc8569mds board + + Currently the clk_adj is 6 (3/4 cycle), The settings will cause + the DDR controller hang at the data init. Change the clk_adj + from 6 to 4 (1/2 cycle), make the memory system stable. + + Signed-off-by: Dave Liu <daveliu@freescale.com> + +commit faa14babd7466dfade358f9cac128ae246b9bf1b +Author: RONETIX - Ilko Iliev <iliev@ronetix.at> +Date: Fri Jun 5 16:54:31 2009 +0200 + + at91: fix a USB problem for AT91SAM9261 + + This patch corrects the missing PLLB initialization in usb_cpu_init() + for AT91SAM9261. + Because of the missing PLLB initialization, the USB support for all + AT91SAM9261 based boards will work only if the PLLB is configured by a + precedent bootloader. + + Signed-off-by: Ilko Iliev <iliev@ronetix.at> + Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + Signed-off-by: Remy Bohmer <linux@bohmer.net> + +commit 0c24dec550ddb7d86b8bfdd8645b18479f73e6e2 +Author: Felix Radensky <felix@embedded-sol.com> +Date: Sun May 31 20:44:15 2009 +0300 + + ppc4xx/net: Fix MDIO clock setup + + This patch fixes MDIO clock setup in case when OPB frequency is 100MHz. + Current code assumes that the value of sysinfo.freqOPB is 100000000 + when OPB frequency is 100MHz. In reality it is 100000001. As a result + MDIO clock is set to incorrect value, larger than 2.5MHz, thus violating + the standard. This in not a problem on boards equipped with Marvell PHYs + (e.g. Canyonlands), since those PHYs support MDIO clocks up to 8.3MHz, + but can be a problem for other PHYs (e.g. Realtek ones). + + Signed-off-by: Felix Radensky <felix@embedded-sol.com> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit d65e34d12514de2bbe3b8f519761d641c081bad0 +Author: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> +Date: Wed Feb 25 14:27:29 2009 +0900 + + rtl8169: fix PCI system memory address + + When PCI device use system memory, some PCI host controller should be + set physical memory address. + + Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit ca9c8a1e10fac01e6a1129f82a7ce18bd818fa43 +Author: Manikandan Pillai <mani.pillai@ti.com> +Date: Wed Apr 8 09:14:35 2009 +0530 + + SMC911x driver fixed for NFS boot + + eth_halt() function in the smc911x drivers used to call the + smc911x_reset() function. eth_halt() used to be called after + tftp transfers. This used to put the ethernet chip in reset + while the linux boots up resulting in the ethernet driver + not coming up. NFS boot used to fail as a result. + + This patch calls smc911x_shutdown() instead of smc911x_reset(). + Some comments received has also been fixed. + + Signed-off-by: Manikandan Pillai <mani.pillai@ti.com> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit e5a3bc2401a23f1890611f020f57f94824a534db +Author: Remy Bohmer <linux@bohmer.net> +Date: Sun May 3 12:11:40 2009 +0200 + + Add config option for disabling DM9000-SROM support. + + Some boards do not have SROM support for the DM9000 network adapter. + Instead of listing these board names in the driver code, make this + option configurable from the board config file. + + It also removes a build warning for the at91sam9261ek board: + 'dm9000x.c:545: warning: 'read_srom_word' defined but not used' + + And it repaires the trizepsiv board build which was broken around the + same routines + + Signed-off-by: Remy Bohmer <linux@bohmer.net> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit 2c0234fa79122a5aa77c4e17c33eb2fe184b61a7 +Author: Daniel Mack <daniel@caiaq.de> +Date: Wed Apr 8 13:23:37 2009 +0200 + + smc911x: write back the manually set MAC address + + If the MAX address is given by the environment, write it back to the + hardware. + + Signed-off-by: Daniel Mack <daniel@caiaq.de> + Cc: Sascha Hauer <s.hauer@pengutronix.de> + Signed-off-by: Ben Warren <biggerbadderben@gmail.com> + +commit dfcd7f21607fd847236b04bb1a8d59a7c10ab99c +Author: Wolfgang Denk <wd@denx.de> +Date: Fri May 15 00:16:03 2009 +0200 + + Redundant Environment: protect full sector size + + Several boards used different ways to specify the size of the + protected area when enabling flash write protection for the sectors + holding the environment variables: some used CONFIG_ENV_SIZE and + CONFIG_ENV_SIZE_REDUND, some used CONFIG_ENV_SECT_SIZE, and some even + a mix of both for the "normal" and the "redundant" areas. + + Normally, this makes no difference at all. However, things are + different when you have to deal with boards that can come with + different types of flash chips, which may have different sector + sizes. + + Here we may have to chose CONFIG_ENV_SECT_SIZE such that it fits the + biggest sector size, which may include several sectors on boards using + the smaller sector flash types. In such a case, using CONFIG_ENV_SIZE + or CONFIG_ENV_SIZE_REDUND to enable the protection may lead to the + case that only the first of these sectors get protected, while the + following ones aren't. + + This is no real problem, but it can be confusing for the user - + especially on boards that use CONFIG_ENV_SECT_SIZE to protect the + "normal" areas, while using CONFIG_ENV_SIZE_REDUND for the + "redundant" area. + + To avoid such inconsistencies, I changed all sucn boards that I found + to consistently use CONFIG_ENV_SECT_SIZE for protection. This should + not cause any functional changes to the code. + + Signed-off-by: Wolfgang Denk <wd@denx.de> + Cc: Paul Ruhland + Cc: Pantelis Antoniou <panto@intracom.gr> + Cc: Stefan Roese <sr@denx.de> + Cc: Gary Jennejohn <garyj@denx.de> + Cc: Dave Ellis <DGE@sixnetio.com> + Acked-by: Stefan Roese <sr@denx.de> + +commit b81830f6e3b3e6ed114d071eb107965e49fa9b5a +Author: Ilya Yanok <yanok@emcraft.com> +Date: Thu May 14 14:03:09 2009 +0400 + + mmc: it's safe to ignore mmc_send_if_cond() return value + + Return value of mmc_send_if_cond() can be safely ignored (as it is + done in Linux). This makes older cards work with MXC MCI controller. + + Signed-off-by: Ilya Yanok <yanok@emcraft.com> + +commit dba6fcf6517faa5dda7df8109febe03c9c72a6f5 +Author: Stefan Roese <sr@denx.de> +Date: Mon May 11 15:54:13 2009 +0200 + + cfi_mtd: Fix bug in last sector detection + + This patch now enabled this cfi-mtd wrapper to correctly detect and + erase the last sector in an NOR FLASH device. + + Signed-off-by: Stefan Roese <sr@denx.de> + +commit 4e3d89ba948eef801ffd46ef862cdede5b3f8320 +Author: Yauhen Kharuzhy <jekhor@gmail.com> +Date: Thu May 7 00:43:30 2009 +0300 + + mmc: Fix decoding of SCR & function switch data on little-endian machines + + SCR & switch data are read from card as big-endian words and should be + converted to CPU byte order. + + Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com> + Signed-off-by: Andy Fleming <afleming@freescale.com> + +commit f33cb34b3971dabe3720d577b0e1b8601c09fe17 +Author: Yauhen Kharuzhy <jekhor@gmail.com> +Date: Thu May 7 13:08:53 2009 +0300 + + mmc: Remove return from mmc_init for non SD 2.0 compatible cards. + + Cards which are not compatible with SD 2.0 standard, may return response + for CMD8 command, but it will be invalid in terms of SD 2.0. We should + accept this case as admissible, just like Linux does. + + Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com> + Signed-off-by: Andy Fleming <afleming@freescale.com> + +commit 998be3dd59ed0af4bec38324047fecfa88ac45db +Author: Rabin Vincent <rabin@rab.in> +Date: Sun Apr 5 13:30:56 2009 +0530 + + mmc: drop unnecessary casts + + Now that response is a uint, we can drop all the casts. + + Signed-off-by: Rabin Vincent <rabin@rab.in> + +commit 0b453ffe28bb9227d86ddbe0893bd19c93f04ed7 +Author: Rabin Vincent <rabin@rab.in> +Date: Sun Apr 5 13:30:55 2009 +0530 + + mmc: fix response decoding on little endian + + The mmc code defines the response as an array of chars. However, it + access the response bytes both as (i) an array of four uints (with + casts) and (ii) as individual chars. The former case is used more + often, including by the driver when it assigns the response. + + The char-wise accesses are broken on little endian systems because they + assume that the bytes in the uints are in big endian byte order. + + This patch fixes this by changing the response to be an array of four + uints and replacing the char-wise accesses with equivalent uint-wise + accesses. + + Signed-off-by: Rabin Vincent <rabin@rab.in> + +commit 9b1f942c09dd942e6de3185caa81c111b14de567 +Author: Rabin Vincent <rabin@rab.in> +Date: Sun Apr 5 13:30:54 2009 +0530 + + mmc: use lldiv to fix arm eabi build + + The generic MMC core uses direct long long divisions, which do not build + with ARM EABI toolchains. Use lldiv() instead, which works everywhere. + + Signed-off-by: Rabin Vincent <rabin@rab.in> + +commit e85649c7e683faea1ccfddc9fa9abc62f38e4201 +Author: Rabin Vincent <rabin@rab.in> +Date: Sun Apr 5 13:30:53 2009 +0530 + + mmc: check find_mmc_device return value + + find_mmc_device returns NULL if an invalid device number is specified. + Check for this to avoid dereferencing NULL pointers. + + Signed-off-by: Rabin Vincent <rabin@rab.in> + +commit ac0865ff33870cdf2cd480165045e1bc311e9fa2 +Author: Rabin Vincent <rabin@rab.in> +Date: Sun Apr 5 13:30:52 2009 +0530 + + mmc: clean up help texts + + Remove some repeated words and superfluous newlines in the mmc command + help entries. + + Signed-off-by: Rabin Vincent <rabin@rab.in> + +commit 7d6900ebe16d679c0e03f8d1584b64057a64ce39 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Fri May 29 17:01:48 2009 -0400 + + Blackfin: spi: fix pin handling of SPI0 SSEL4 + + CS4 on SPI0 has a dedicated PH8 pin which needs to be enabled as a + peripheral in order to work. + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit 2157359dad2533987f5eb0181ef543693fad6a33 +Author: Mike Frysinger <vapier@gentoo.org> +Date: Tue May 26 02:51:57 2009 -0400 + + Blackfin: fix if() logic in bootrom evt1 check + + A missing set of parenthesis caused the silicon revision to apply only to + the BF533 and not the BF531/BF532 variants. + + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit 76b5883da2cf049cd410901c04ea450e5f5c27c3 +Author: Stefan Roese <sr@denx.de> +Date: Sat May 16 12:04:22 2009 +0200 + + jffs2/mtdparts: Fix problem with usage from JFFS2 and MTDPARTS together + + Currently using JFFS2 with MTDPARTS enabled doesn't work. This is because + mtdparts_init() is available in both files, cmd_mtdparts.c and + cmd_jffs2.c. Please note that in the original cmd_jffs2.c file (before + the jffs2/mtdparts command/file split those 2 different versions + already existed. So this is nothing new. The main problem is that the + variables "current_dev" and "current_partnum" are declared in both + files now. This doesn't work. + + This patch now changes the names of those variable to more specific + names: "current_mtd_dev" and "current_mtd_partnum". This is because + this patch also changes the declaration from static to global, so + that they can be used from both files. + + Please note that my first tests were not successful. The MTD devices + selected via mtdparts are now accessed but I'm failing to see the + directory listed via the "ls" command. Nothing is displayed. Perhaps + I didn't generate the JFFS2 image correctly (I never used JFFS2 in + U-Boot before). Not sure. Perhaps somebody else could take a look at + this as well. I'll continue looking into this on Monday. + + Signed-off-by: Stefan Roese <sr@denx.de> + Cc: Wolfgang Denk <wd@denx.de> + Cc: Detlev Zundel <dzu@denx.de> + Cc: Ilya Yanok <yanok@emcraft.com> + Cc: Renaud barbier <renaud.barbier@ge.com> + +commit ab687907980fa28940a1a992d3f1c5d17cdbbf5d +Author: Graf Yang <graf.yang@analog.com> +Date: Sun May 24 02:34:34 2009 -0400 + + Blackfin: bf518f-ezbrd: setup portmux for async flash + + The pins for async memory where parallel flash lives are not enabled by + default, so make sure we mux them as needed. + + Signed-off-by: Graf Yang <graf.yang@analog.com> + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit f40f6db278f602b55820693634a7256b0b4e4b80 +Author: Stefan Roese <sr@denx.de> +Date: Wed May 20 10:58:03 2009 +0200 + + nand: Fix problem with ECC ordering for PPC4xx NDFC platforms + + This patch enables Smart Media (SMC) ECC byte ordering which is used + on the PPC4xx NAND FLASH controller (NDFC). Without this patch we have + incompatible ECC byte ordering to the Linux kernel NDFC driver. + + Signed-off-by: Stefan Roese <sr@denx.de> + Acked-by: Scott Wood <scottwood@freescale.com> + +commit 399aab7748bef053d59612211e1bd7a3fabfce18 +Author: Stefan Roese <sr@denx.de> +Date: Wed May 20 10:58:02 2009 +0200 + + ppc4xx: Fix problem with ECC ordering for PPC4xx NDFC platforms + + This patch now uses the correct ECC byte order (Smart Media - SMC) + to be used on the 4xx NAND FLASH driver. Without this patch we have + incompatible ECC byte ordering to the Linux kernel NDFC driver. + + Please note that we also have to enable CONFIG_MTD_NAND_ECC_SMC in + drivers/mtd/nand/nand_ecc.c for correct operation. This is done with + a seperate patch. + + Signed-off-by: Stefan Roese <sr@denx.de> + Acked-by: Scott Wood <scottwood@freescale.com> + +commit 5d841fac8249a2b3f9a814da2140132be0a9f60d +Author: Stefan Roese <sr@denx.de> +Date: Wed May 20 10:58:01 2009 +0200 + + ppc4xx: Move definition for PPC4xx NAND FLASH controller to header + + This patch moves the definition for the PPC4xx NAND FLASH controller + (NDFC) CONFIG_NAND_NDFC into include/ppc4xx.h. This is needed for the + upcoming fix for the ECC byte ordering of the NDFC driver. + + Signed-off-by: Stefan Roese <sr@denx.de> + Acked-by: Scott Wood <scottwood@freescale.com> + +commit 2df72b82bc9e17b88dc82735a067749220beb025 +Author: Kim Phillips <kim.phillips@freescale.com> +Date: Tue May 19 12:53:36 2009 -0500 + + common: fix inline--weak error spotted by gcc 4.4 + + cmd_ide.c:547: error: inline function 'ide_inb' cannot be declared weak + + removing the inline attribute fixes it. + + Signed-off-by: Kim Phillips <kim.phillips@freescale.com> + +commit 9fd9abedcc3c10cf89353265cbe05f58609d51f3 +Author: Kim Phillips <kim.phillips@freescale.com> +Date: Tue May 19 12:53:32 2009 -0500 + + TQM834x: remove defines causing gcc4.4 warnings + + Configuring for TQM834x board... + cpu_init.c: In function 'cpu_init_f': + cpu_init.c:262: warning: array subscript is above array bounds + cpu_init.c:263: warning: array subscript is above array bounds + cpu_init.c:270: warning: array subscript is above array bounds + ... + + Signed-off-by: Kim Phillips <kim.phillips@freescale.com> + +commit 0850301747228a3327f2815a85284d26ade3de95 +Author: Andreas Huber <andreas.huber@keymile.com> +Date: Tue May 19 11:06:30 2009 +0200 + + UBI: fix return code in ubi_volume_read + + Return -ENODEV instead of 0 when trying to read from a non existing volume. + + Signed-off-by: Andreas Huber <andreas.huber@keymile.com> + Signed-off-by: Stefan Roese <sr@denx.de> + +commit ec01481ddc4cf302c7f6d760b776ca94819ec21e +Author: Graf Yang <graf.yang@analog.com> +Date: Tue May 19 04:40:08 2009 -0400 + + Blackfin: fix timer_init()/timer_reset() + + The timer_init() function was not using the right csync instruction, nor + was it doing it right after disabling the core timer. + + The timer_reset() function would reset the timestamp, but not the actual + timer, so there was a common edge case where get_timer() return a jump of + one timestamp (couple milliseconds) right after resetting. This caused + many functions to improperly timeout right away. + + Signed-off-by: Graf Yang <graf.yang@analog.com> + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +commit c06326c73bf90e48a8e1cf8893ad31c575423f50 +Author: Shinya Kuribayashi <skuribay@pobox.com> +Date: Sat May 16 09:12:09 2009 +0900 + + MIPS: lib_mips/board.c: Remove unused variables + + This fixes the following build warnings: + + board.c: In function 'board_init_r': + board.c:328: warning: unused variable 'i' + board.c:326: warning: unused variable 'e' + + Signed-off-by: Shinya Kuribayashi <skuribay@pobox.com> + +commit 47f6a36cc3f3427cc8e4f1d0f3e6678be6f33769 +Author: Shinya Kuribayashi <skuribay@pobox.com> +Date: Sat May 16 09:12:09 2009 +0900 + + MIPS: Make all extern-ed functions in bitops.h static + + All these functions are expected to be static inline-ed. + This patch also fixes the following build warnings on MIPS targets: + + include/asm/bitops.h: In function 'ext2_find_next_zero_bit': + include/asm/bitops.h:862: warning: '__fswab32' is static but used in inline function 'ext2_find_next_zero_bit' which is not static + include/asm/bitops.h:885: warning: '__fswab32' is static but used in inline function 'ext2_find_next_zero_bit' which is not static + include/asm/bitops.h:887: warning: '__fswab32' is static but used in inline function 'ext2_find_next_zero_bit' which is not static + + Signed-off-by: Shinya Kuribayashi <skuribay@pobox.com> + +commit 87423d740b91329b8d1d0b73cafd6930993b558a +Author: Thomas Lange <thomas@corelatus.se> +Date: Fri Apr 24 16:22:16 2009 +0200 + + MIPS: Implement ethernet halt for au1x00 + + Implement ethernet halt() by putting MAC0 in reset. + If we do not do this, we will get memory corruption + when ethernet frames are received during early OS boot. + + Signed-off-by: Thomas Lange <thomas@corelatus.se> + Signed-off-by: Shinya Kuribayashi <skuribay@pobox.com> + +commit a2e0ffcf2d9a22c582a93e84a4bef20fd3877f47 +Author: Wolfgang Denk <wd@denx.de> +Date: Fri May 15 23:29:23 2009 +0200 + + Prepare v2009.06-rc2 + + Update CHANGELOG. + + Signed-off-by: Wolfgang Denk <wd@denx.de> + commit f4317ea91942f44cc1c433277927b61618e9b0a5 Author: Daniel Mack <daniel@caiaq.de> Date: Tue May 5 12:48:29 2009 +0200 @@ -24,7 +24,7 @@ VERSION = 2009 PATCHLEVEL = 06 SUBLEVEL = -EXTRAVERSION = -rc2 +EXTRAVERSION = -rc3 ifneq "$(SUBLEVEL)" "" U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) else diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds index dd62e58..b3849de 100644 --- a/board/ep88x/u-boot.lds +++ b/board/ep88x/u-boot.lds @@ -90,11 +90,13 @@ SECTIONS _edata = .; PROVIDE (edata = .); + . = .; __u_boot_cmd_start = .; .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .; + . = .; __start___ex_table = .; __ex_table : { *(__ex_table) } __stop___ex_table = .; diff --git a/board/freescale/mpc8569mds/bcsr.c b/board/freescale/mpc8569mds/bcsr.c index 5adffc2..f462597 100644 --- a/board/freescale/mpc8569mds/bcsr.c +++ b/board/freescale/mpc8569mds/bcsr.c @@ -27,7 +27,7 @@ void enable_8569mds_flash_write() { - setbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 11), BCSR17_FLASH_nWP); + setbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 17), BCSR17_FLASH_nWP); } void disable_8569mds_flash_write() diff --git a/board/freescale/mpc8569mds/ddr.c b/board/freescale/mpc8569mds/ddr.c index 4b4533e..e938788 100644 --- a/board/freescale/mpc8569mds/ddr.c +++ b/board/freescale/mpc8569mds/ddr.c @@ -54,7 +54,7 @@ void fsl_ddr_board_options(memctl_options_t *popts, * 0110 3/4 cycle late * 0111 7/8 cycle late */ - popts->clk_adjust = 6; + popts->clk_adjust = 4; /* * Factors to consider for CPO: diff --git a/board/trizepsiv/eeprom.c b/board/trizepsiv/eeprom.c index 63f1c6c..9fa7aef 100644 --- a/board/trizepsiv/eeprom.c +++ b/board/trizepsiv/eeprom.c @@ -23,17 +23,17 @@ #include <common.h> #include <command.h> - -extern u16 read_srom_word(int); -extern void write_srom_word(int offset, u16 val); +#include <dm9000.h> static int do_read_dm9000_eeprom ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { - int i; + unsigned int i; + u8 data[2]; for (i=0; i < 0x40; i++) { if (!(i % 0x10)) - printf("\n%08lx:", i); - printf(" %04x", read_srom_word(i)); + printf("\n%08x:", i); + dm9000_read_srom_word(i, data); + printf(" %02x%02x", data[1], data[0]); } printf ("\n"); return (0); @@ -54,7 +54,7 @@ static int do_write_dm9000_eeprom ( cmd_tbl_t *cmdtp, int flag, int argc, char * cmd_usage(cmdtp); return 1; } - write_srom_word(offset, value); + dm9000_write_srom_word(offset, value); return (0); } diff --git a/cpu/arm926ejs/at91/cpu.c b/cpu/arm926ejs/at91/cpu.c index a9705cf..2ae97fe 100644 --- a/cpu/arm926ejs/at91/cpu.c +++ b/cpu/arm926ejs/at91/cpu.c @@ -1,3 +1,26 @@ +/* + * (C) Copyright 2009 + * Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.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 + */ + #include <config.h> #include <asm/arch/hardware.h> #include <asm/arch/at91_pmc.h> diff --git a/cpu/mpc85xx/tlb.c b/cpu/mpc85xx/tlb.c index c73bf05..8304ffe 100644 --- a/cpu/mpc85xx/tlb.c +++ b/cpu/mpc85xx/tlb.c @@ -134,7 +134,7 @@ unsigned int setup_ddr_tlbs(unsigned int memsize_in_meg) unsigned int tlb_size; unsigned int ram_tlb_index = CONFIG_SYS_DDR_TLB_START; unsigned int ram_tlb_address = (unsigned int)CONFIG_SYS_DDR_SDRAM_BASE; - unsigned int max_cam = (mfspr(SPRN_TLB1CFG) >> 16) & 0xff; + unsigned int max_cam = (mfspr(SPRN_TLB1CFG) >> 16) & 0xf; u64 size, memsize = (u64)memsize_in_meg << 20; size = min(memsize, CONFIG_MAX_MEM_MAPPED); diff --git a/drivers/net/4xx_enet.c b/drivers/net/4xx_enet.c index 918373b..7bf3e0a 100644 --- a/drivers/net/4xx_enet.c +++ b/drivers/net/4xx_enet.c @@ -871,6 +871,7 @@ static int ppc_4xx_eth_init (struct eth_device *dev, bd_t * bis) defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \ defined(CONFIG_460EX) || defined(CONFIG_460GT) || \ defined(CONFIG_405EX) + u32 opbfreq; sys_info_t sysinfo; #if defined(CONFIG_440GX) || defined(CONFIG_440SPE) || \ defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \ @@ -997,12 +998,13 @@ static int ppc_4xx_eth_init (struct eth_device *dev, bd_t * bis) /* Whack the M1 register */ mode_reg = 0x0; mode_reg &= ~0x00000038; - if (sysinfo.freqOPB <= 50000000); - else if (sysinfo.freqOPB <= 66666667) + opbfreq = sysinfo.freqOPB / 1000000; + if (opbfreq <= 50); + else if (opbfreq <= 66) mode_reg |= EMAC_M1_OBCI_66; - else if (sysinfo.freqOPB <= 83333333) + else if (opbfreq <= 83) mode_reg |= EMAC_M1_OBCI_83; - else if (sysinfo.freqOPB <= 100000000) + else if (opbfreq <= 100) mode_reg |= EMAC_M1_OBCI_100; else mode_reg |= EMAC_M1_OBCI_GT100; diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c index 8ca2bf7..f139435 100644 --- a/drivers/net/dm9000x.c +++ b/drivers/net/dm9000x.c @@ -53,7 +53,7 @@ v1.2 03/18/2003 Weilun Huang <weilun_huang@davicom.com.tw>: notes (i.e. double reset) - some minor code cleanups These changes are tested with DM9000{A,EP,E} together - with a 200MHz Atmel AT91SAM92161 core + with a 200MHz Atmel AT91SAM9261 core TODO: external MII is not functional, only internal at the moment. */ @@ -62,6 +62,7 @@ TODO: external MII is not functional, only internal at the moment. #include <command.h> #include <net.h> #include <asm/io.h> +#include <dm9000.h> #include "dm9000x.h" @@ -113,7 +114,6 @@ void eth_halt(void); static int dm9000_probe(void); static u16 phy_read(int); static void phy_write(int, u16); -static void read_srom_word(int, u8 *); static u8 DM9000_ior(int); static void DM9000_iow(int reg, u8 value); @@ -347,9 +347,9 @@ eth_init(bd_t * bd) /* Set Node address */ if (!eth_getenv_enetaddr("ethaddr", enetaddr)) { -#if !defined(CONFIG_AT91SAM9261EK) +#if !defined(CONFIG_DM9000_NO_SROM) for (i = 0; i < 3; i++) - read_srom_word(i, enetaddr + 2 * i); + dm9000_read_srom_word(i, enetaddr + 2 * i); eth_setenv_enetaddr("ethaddr", enetaddr); #endif } @@ -541,7 +541,8 @@ eth_rx(void) /* Read a word data from SROM */ -static void read_srom_word(int offset, u8 *to) +#if !defined(CONFIG_DM9000_NO_SROM) +void dm9000_read_srom_word(int offset, u8 *to) { DM9000_iow(DM9000_EPAR, offset); DM9000_iow(DM9000_EPCR, 0x4); @@ -551,8 +552,7 @@ static void read_srom_word(int offset, u8 *to) to[1] = DM9000_ior(DM9000_EPDRH); } -void -write_srom_word(int offset, u16 val) +void dm9000_write_srom_word(int offset, u16 val) { DM9000_iow(DM9000_EPAR, offset); DM9000_iow(DM9000_EPDRH, ((val >> 8) & 0xff)); @@ -561,7 +561,7 @@ write_srom_word(int offset, u16 val) udelay(8000); DM9000_iow(DM9000_EPCR, 0); } - +#endif /* Read a byte from I/O port diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c index 83a05b4..e45d1a5 100644 --- a/drivers/net/rtl8169.c +++ b/drivers/net/rtl8169.c @@ -110,6 +110,9 @@ static int media[MAX_UNITS] = { -1, -1, -1, -1, -1, -1, -1, -1 }; #define ETH_ALEN MAC_ADDR_LEN #define ETH_ZLEN 60 +#define bus_to_phys(a) pci_mem_to_phys((pci_dev_t)dev->priv, (pci_addr_t)a) +#define phys_to_bus(a) pci_phys_to_mem((pci_dev_t)dev->priv, (phys_addr_t)a) + enum RTL8169_registers { MAC0 = 0, /* Ethernet hardware address. */ MAR0 = 8, /* Multicast filter. */ @@ -438,7 +441,7 @@ static int rtl_recv(struct eth_device *dev) tpc->RxDescArray[cur_rx].status = cpu_to_le32(OWNbit + RX_BUF_SIZE); tpc->RxDescArray[cur_rx].buf_addr = - cpu_to_le32((unsigned long)tpc->RxBufferRing[cur_rx]); + cpu_to_le32(bus_to_phys(tpc->RxBufferRing[cur_rx])); flush_cache((unsigned long)tpc->RxBufferRing[cur_rx], RX_BUF_SIZE); } else { @@ -488,7 +491,7 @@ static int rtl_send(struct eth_device *dev, volatile void *packet, int length) ptxb[len++] = '\0'; tpc->TxDescArray[entry].buf_Haddr = 0; - tpc->TxDescArray[entry].buf_addr = cpu_to_le32((unsigned long)ptxb); + tpc->TxDescArray[entry].buf_addr = cpu_to_le32(bus_to_phys(ptxb)); if (entry != (NUM_TX_DESC - 1)) { tpc->TxDescArray[entry].status = cpu_to_le32((OWNbit | FSbit | LSbit) | @@ -593,9 +596,9 @@ static void rtl8169_hw_start(struct eth_device *dev) tpc->cur_rx = 0; - RTL_W32(TxDescStartAddrLow, (unsigned long)tpc->TxDescArray); + RTL_W32(TxDescStartAddrLow, bus_to_phys(tpc->TxDescArray)); RTL_W32(TxDescStartAddrHigh, (unsigned long)0); - RTL_W32(RxDescStartAddrLow, (unsigned long)tpc->RxDescArray); + RTL_W32(RxDescStartAddrLow, bus_to_phys(tpc->RxDescArray)); RTL_W32(RxDescStartAddrHigh, (unsigned long)0); /* RTL-8169sc/8110sc or later version */ @@ -646,7 +649,7 @@ static void rtl8169_init_ring(struct eth_device *dev) tpc->RxBufferRing[i] = &rxb[i * RX_BUF_SIZE]; tpc->RxDescArray[i].buf_addr = - cpu_to_le32((unsigned long)tpc->RxBufferRing[i]); + cpu_to_le32(bus_to_phys(tpc->RxBufferRing[i])); flush_cache((unsigned long)tpc->RxBufferRing[i], RX_BUF_SIZE); } diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index 30f2dc2..455b055 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -41,8 +41,13 @@ static int smx911x_handle_mac_address(bd_t *bd) unsigned long addrh, addrl; uchar m[6]; - /* if the environment has a valid mac address then use it */ - if (!eth_getenv_enetaddr("ethaddr", m)) { + if (eth_getenv_enetaddr("ethaddr", m)) { + /* if the environment has a valid mac address then use it */ + addrl = m[0] | (m[1] << 8) | (m[2] << 16) | (m[3] << 24); + addrh = m[4] | (m[5] << 8); + smc911x_set_mac_csr(ADDRL, addrl); + smc911x_set_mac_csr(ADDRH, addrh); + } else { /* if not, try to get one from the eeprom */ addrh = smc911x_get_mac_csr(ADDRH); addrl = smc911x_get_mac_csr(ADDRL); @@ -112,6 +117,27 @@ static int smc911x_phy_reset(void) return 0; } +static void smc911x_shutdown(void) +{ + unsigned int cr; + + /* Turn of Rx and TX */ + cr = smc911x_get_mac_csr(MAC_CR); + cr &= ~(MAC_CR_TXEN | MAC_CR_RXEN | MAC_CR_HBDIS); + smc911x_set_mac_csr(MAC_CR, cr); + + /* Stop Transmission */ + cr = smc911x_get_mac_csr(TX_CFG); + cr &= ~(TX_CFG_STOP_TX); + smc911x_set_mac_csr(TX_CFG, cr); + /* Stop receiving packets */ + cr = smc911x_get_mac_csr(RX_CFG); + cr &= ~(RX_CFG_RXDOFF); + smc911x_set_mac_csr(RX_CFG, cr); + +} + + static void smc911x_phy_configure(void) { int timeout; @@ -220,7 +246,7 @@ int eth_send(volatile void *packet, int length) void eth_halt(void) { - smc911x_reset(); + smc911x_shutdown(); } int eth_rx(void) diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c index c35319c..226859a 100644 --- a/drivers/usb/host/ohci-at91.c +++ b/drivers/usb/host/ohci-at91.c @@ -34,7 +34,8 @@ int usb_cpu_init(void) { #if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \ - defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) + defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) || \ + defined(CONFIG_AT91SAM9261) /* Enable PLLB */ at91_sys_write(AT91_CKGR_PLLBR, get_pllb_init()); while ((at91_sys_read(AT91_PMC_SR) & AT91_PMC_LOCKB) != AT91_PMC_LOCKB) diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index 91fc574..8ede188 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -554,10 +554,8 @@ static int do_readpage(struct ubifs_info *c, struct inode *inode, struct page *p } dn = kmalloc(UBIFS_MAX_DATA_NODE_SZ, GFP_NOFS); - if (!dn) { - err = -ENOMEM; - goto error; - } + if (!dn) + return -ENOMEM; i = 0; while (1) { diff --git a/include/configs/MPC8569MDS.h b/include/configs/MPC8569MDS.h index b0af5dc..64a82dd 100644 --- a/include/configs/MPC8569MDS.h +++ b/include/configs/MPC8569MDS.h @@ -55,8 +55,8 @@ extern unsigned long get_clock_freq(void); #endif /* Replace a call to get_clock_freq (after it is implemented)*/ -#define CONFIG_SYS_CLK_FREQ 66000000 -#define CONFIG_DDR_CLK_FREQ 66000000 +#define CONFIG_SYS_CLK_FREQ 66666666 +#define CONFIG_DDR_CLK_FREQ CONFIG_SYS_CLK_FREQ /* * These can be toggled for performance analysis, otherwise use default. diff --git a/include/configs/TQM85xx.h b/include/configs/TQM85xx.h index 2ef24cd..0846501 100644 --- a/include/configs/TQM85xx.h +++ b/include/configs/TQM85xx.h @@ -166,15 +166,6 @@ #endif /* CONFIG_TQM8541 || CONFIG_TQM8555 || CONFIG_TQM8548 */ /* - * Old TQM85xx boards have 'M' type Spansion Flashes from the S29GLxxxM - * series while new boards have 'N' type Flashes from the S29GLxxxN - * series, which have bigger sectors: 2 x 128 instead of 2 x 64 KB. - */ -#ifdef CONFIG_TQM8548 -#define CONFIG_TQM_FLASH_N_TYPE -#endif /* CONFIG_TQM8548 */ - -/* * Flash on the Local Bus */ #ifdef CONFIG_TQM_BIGFLASH @@ -547,11 +538,7 @@ */ #define CONFIG_ENV_IS_IN_FLASH 1 -#ifdef CONFIG_TQM_FLASH_N_TYPE #define CONFIG_ENV_SECT_SIZE 0x40000 /* 256K (one sector) for env */ -#else /* !CONFIG_TQM_FLASH_N_TYPE */ -#define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K (one sector) for env */ -#endif /* CONFIG_TQM_FLASH_N_TYPE */ #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) #define CONFIG_ENV_SIZE 0x2000 #define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR - CONFIG_ENV_SECT_SIZE) @@ -680,7 +667,7 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ CONFIG_ENV_BOOTFILE \ CONFIG_ENV_FDT_FILE \ - CONFIG_ENV_CONSDEV \ + CONFIG_ENV_CONSDEV \ "netdev=eth0\0" \ "nfsargs=setenv bootargs root=/dev/nfs rw " \ "nfsroot=$serverip:$rootpath\0" \ @@ -704,12 +691,11 @@ "fdt_addr=ffec0000\0" \ "kernel_addr=ffd00000\0" \ "ramdisk_addr=ff800000\0" \ - CONFIG_ENV_UBOOT \ + CONFIG_ENV_UBOOT \ "load=tftp 100000 $uboot\0" \ "update=protect off $uboot_addr +$filesize;" \ "erase $uboot_addr +$filesize;" \ - "cp.b 100000 $uboot_addr $filesize;" \ - "setenv filesize;saveenv\0" \ + "cp.b 100000 $uboot_addr $filesize" \ "upd=run load update\0" \ "" #define CONFIG_BOOTCOMMAND "run flash_self" diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h index fdaa71c..9621b7c 100644 --- a/include/configs/at91sam9261ek.h +++ b/include/configs/at91sam9261ek.h @@ -137,6 +137,7 @@ #define DM9000_IO CONFIG_DM9000_BASE #define DM9000_DATA (CONFIG_DM9000_BASE + 4) #define CONFIG_DM9000_USE_16BIT 1 +#define CONFIG_DM9000_NO_SROM 1 #define CONFIG_NET_RETRY_COUNT 20 #define CONFIG_RESET_PHY_R 1 diff --git a/include/configs/rmu.h b/include/configs/rmu.h index d88ae81..026826b 100644 --- a/include/configs/rmu.h +++ b/include/configs/rmu.h @@ -190,7 +190,8 @@ #define CONFIG_ENV_IS_IN_FLASH 1 #define CONFIG_ENV_ADDR ((TEXT_BASE) + 0x40000) -#define CONFIG_ENV_SIZE 0x40000 /* Total Size of Environment Sector */ +#define CONFIG_ENV_SECT_SIZE 0x40000 /* Total Size of Environment Sector */ +#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE /* Used size for environment */ /* Address and size of Redundant Environment Sector */ #define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR+CONFIG_ENV_SIZE) diff --git a/include/dm9000.h b/include/dm9000.h new file mode 100644 index 0000000..76f9bfd --- /dev/null +++ b/include/dm9000.h @@ -0,0 +1,20 @@ +/* + * NOTE: DAVICOM DM9000 ethernet driver interface + * + * Authors: Remy Bohmer <linux@bohmer.net> + * + * 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. + */ +#ifndef __DM9000_H__ +#define __DM9000_H__ + +/****************** function prototypes **********************/ +#if !defined(CONFIG_DM9000_NO_SROM) +void dm9000_write_srom_word(int offset, u16 val); +void dm9000_read_srom_word(int offset, u8 *to); +#endif + +#endif /* __DM9000_H__ */ diff --git a/onenand_ipl/board/apollon/Makefile b/onenand_ipl/board/apollon/Makefile index 1f996a4..f6c36ec 100644 --- a/onenand_ipl/board/apollon/Makefile +++ b/onenand_ipl/board/apollon/Makefile @@ -6,7 +6,7 @@ LDSCRIPT= $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/u-boot.onenand.lds LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) AFLAGS += -DCONFIG_ONENAND_IPL CFLAGS += -DCONFIG_ONENAND_IPL -OBJCLFAGS += --gap-fill=0x00 +OBJCFLAGS += --gap-fill=0x00 SOBJS := low_levelinit.o SOBJS += start.o |