summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-10-12led_display: split led display support into generic and hw-dependent partsIlya Yanok
Split the display command into generic interface and hardware-specific realization for PDSP188x LED display found on hmi1001 and manroland boards. Simple interface for LED displays is defined in include/led-display.h and described in doc/README.LED_display. Driver-specific implementation was moved into drivers/misc/pdsp188x.c file (enabled with CONFIG_PDSP188x set). Signed-off-by: Ilya Yanok <yanok@emcraft.com>
2010-10-12A4M072: Added support for the board.Sergei Poselenov
This patch provides support for the A4M072 board with the following features: UART NOR flash FEC Ethernet External SRAM I2C EEPROM CompactFlash cards on IDE/ATA port USB Host PCI initialization The 7-segment LED indicator is not yet supported. Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
2010-10-12VFAT: fix processing of scattered long file name entriesMikhail Zolotaryov
The U-Boot code has the following bugs related to the processing of Long File Name (LFN) entries scattered across several clusters/sectors : 1) get_vfatname() function is designed to gather scattered LFN entries by cluster chain processing - that doesn't work for FAT12/16 root directory. In other words, the function expects the following input data: 1.1) FAT32 directory (which is cluster chain based); OR 1.2) FAT12/16 non-root directory (which is also cluster chain based); OR 1.3) FAT12/16 root directory (allocated as contiguous sectors area), but all necessary information MUST be within the input buffer of filesystem cluster size (thus cluster-chain jump is never initiated). In order to accomplish the last condition, root directory parsing code in do_fat_read() uses the following trick: read-out cluster-size block, process only first sector (512 bytes), then shift 512 forward, read-out cluster-size block and so on. This works great unless cluster size is equal to 512 bytes (in a case you have a small partition), or long file name entries are scattered across three sectors, see 4) for details. 2) Despite of the fact that get_vfatname() supports FAT32 root directory browsing, do_fat_read() function doesn't send current cluster number correctly, so root directory look-up doesn't work correctly. 3) get_vfatname() doesn't gather scattered entries correctly also is the case when all LFN entries are located at the end of the source cluster, but real directory entry (which must be returned) is at the only beginning of the next one. No error detected, the resulting directory entry returned contains a semi-random information (wrong size, wrong start cluster number and so on) i.e. the entry is not accessible. 4) LFN (VFAT) allows up to 20 entries (slots) each containing 26 bytes (13 UTF-16 code units) to represent a single long file name i.e. up to 520 bytes. U-Boot allocates 256 bytes buffer instead, i.e. 10 or more LFN slots record may cause buffer overflow / memory corruption. Also, it's worth to mention that 20+1 slots occupy 672 bytes space which may take more than one cluster of 512 bytes (medium-size FAT32 or small FAT16 partition) - get_vfatname() function doesn't support such case as well. The patch attached fixes these problems in the following way: - keep using 256 bytes buffer for a long file name, but safely prevent a possible buffer overflow (skip LFN processing, if it contains 10 or more slots). - explicitly specify FAT12/16 root directory parsing buffer size, instead of relying on cluster size. The value used is a double sector size (to store current sector and the next one). This fixes the first problem and increases performance on big FAT12/16 partitions; - send current cluster number (FAT32) to get_vfatname() during root directory processing; - use LFN counter to seek the real directory entry in get_vfatname() - fixes the third problem; - skip deleted entries in the root directory (to prevent bogus buffer overflow detection and LFN counter steps). Note: it's not advised to split up the patch, because a separate part may operate incorrectly. Signed-off-by: Mikhail Zolotaryov <lebon@lebon.org.ua>
2010-10-12tools/imls: fix comment in MakefileDaniel Hobi
Commit d984fed0 (makefiles: fixes for building build tools) changed the variable name FIT_CFLAGS to HOSTCFLAGS_NOPED but forgot to update to corresponding comment. Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch> Cc: Scott Wood <scottwood@freescale.com> Cc: Wolfgang Denk <wd@denx.de>
2010-10-12env: don't set to default env twice when use CONFIG_ENV_IS_NOWHERELei Wen
When use the CONFIG_ENV_IS_NOWHERE, I met such issue: DRAM: 256 MiB Using default environment *** Warning - bad CRC, using default environment Signed-off-by: Lei Wen <leiwen@marvell.com>
2010-10-12zlib: Add further watchdog reset callsStefan Roese
Patch 253cb831 [zlib: add watchdog reset call] added already a few watchdog reset calls to the new zlib U-Boot port. But on some boards this is not enough. Additional calls are needed on boards with short watchdog timeouts. This was detected and tested on the lwmon5 board with a very short watchdog timeout. Without this patch, the board resets during Linux kernel decompression. With it, the decompression succeeds. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Detlev Zundel <dzu@denx.de> Acked-by: Detlev Zundel <dzu@denx.de>
2010-10-12zlib/gunzip: Use WATCHDOG_RESET macroStefan Roese
As usually done in U-Boot, the watchdog_reset code is called via a macro (WATCHDOG_RESET). In zlib.c this was done differently, by using a function pointer which is initialized with WATCHDOG_RESET upon watchdog usage or with NULL otherwise. This patch now uses the plain WATCHDOG_RESET macros to call the function resulting in slightly smaller U-Boot images and simpler code. U-Boot code size reduction: PowerPC board with watchdog support (lwmon5): -> 80 bytes smaller image size PowerPC board without watchdog support (sequoia): -> 112 bytes smaller image size Signed-off-by: Stefan Roese <sr@denx.de> Cc: Detlev Zundel <dzu@denx.de> Cc: Wolfgang Denk <wd@denx.de> Acked-by: Detlev Zundel <dzu@denx.de>
2010-10-12pdm360ng: add EDID property to FDT display nodeAnatolij Gustschin
PDM360NG board uses this functionality to pass display timing info to the Linux Framebuffer driver. Signed-off-by: Anatolij Gustschin <agust@denx.de> Acked-by: Detlev Zundel <dzu@denx.de>
2010-10-12fdt_support: support adding EDID property to FDT display nodesAnatolij Gustschin
Boards can pass display timing info for drivers using EDID block. Provide common function to add board specific EDID data to the device tree. Subsequent patch makes use of this functionality. Detailed timing descriptor data from EDID is used for programming the display controller. This is currently implemented on the Linux side by the fsl-diu-fb frame buffer driver and it is documented there in Documentation/powerpc/dts-bindings/fsl/diu.txt. Signed-off-by: Anatolij Gustschin <agust@denx.de> Acked-by: Detlev Zundel <dzu@denx.de> Cc: Gerald Van Baren <vanbaren@cideas.com>
2010-10-12CONFIG_CMD_JFFS2 is not necessary to use mtdparts on erase & protect on/offAlexander Stein
The include <jffs2/jffs2.h> is still necessary though. Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com> Acked-by: Stefan Roese <sr@denx.de>
2010-10-12Merge branch 'master' of git://git.denx.de/u-boot-cfi-flashWolfgang Denk
2010-10-12Merge branch 'master' of git://git.denx.de/u-boot-microblazeWolfgang Denk
2010-10-12Merge branch 'master' of git://git.denx.de/u-boot-netWolfgang Denk
2010-10-12cfi_flash: Fix "Unknown FLASH" error messageJohn Schmoller
When a CFI flash chip could not be detected an error message similar to the following would be printed on bootup: FLASH: ## Unknown FLASH on Bank 1 - Size = 0x01000000 = 0 MB The printf incorrectly converted the flash size into megabytes. This patch fixes the printing of the flash size in megabytes: FLASH: ## Unknown FLASH on Bank 1 - Size = 0x01000000 = 16 MB Signed-off-by: John Schmoller <jschmoller@xes-inc.com> Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Signed-off-by: Stefan Roese <sr@denx.de>
2010-10-12microblaze: Support little-endian microblaze targetMichal Simek
Microblaze little-endian toolchain should export __MICROBLAZEEL__. Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-10-12microblaze: Add support for NET_MULTI apiMichal Simek
Microblaze hasn't supported NET_MULTI support. Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-10-12microblaze: Fix microblaze-generic config fileMichal Simek
1. Fix preprocessor statements 2. Clean coding style Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-10-12microblaze: generic: rename MTD partition set to 'flash-0'Stephan Linz
Signed-off-by: Stephan Linz <linz@li-pro.net> Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-10-12microblaze: generic: adding DHCP supportStephan Linz
Signed-off-by: Stephan Linz <linz@li-pro.net> Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-10-12smc91111: add write_hwaddrThomas Chou
Add smc_write_hwaddr() to set mac address. Clear dev before use. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12davinci_emac: davinci_eth_set_mac_addr to ->write_hwaddrBen Gardiner
This patch proposes to migrate the davinci_emac driver to using the eth_device->write_hwaddr function pointer as suggested by Ben Warren. All the davinci boards had the behaviour, prior to this patch, of sync'ing the environment variable enetaddr with the MAC address read from non-volatile storage on boot -- when the two locations disagreed, the environment variable value took precendence. This patch keeps the same behaviour but lets eth_initialize take care of it. This patch refactors davinci_emac setup in the boards so that the MAC address is read from non-volatile storage into the environment variable and then the environment variable value is use in eth_intialize. The only exception is the direct call to davinci_eth_set_mac_addr made by the da830evm board init which was changed into an assignment of the enetaddr field. Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> Tested-by: Nick Thompson <nick.thompson@ge.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12net: Move Emaclite to NET_MULTIMichal Simek
Emaclite was using old net api that's why this patch move emaclite to NET_MULTI api. Signed-off-by: Michal Simek <monstr@monstr.eu> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12rarp: Condtionally compile rarp supportPeter Tyser
Most people don't use the 'rarpboot' command, so only enable it when CONFIG_CMD_RARP is defined. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12net: Fix emaclite driver to support little-endian microblazeMichal Simek
Support New emaclite AXI IP. Signed-off-by: Michal Simek <monstr@monstr.eu> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12mpc5xxx_fec: add call to reset_phy() after PHY initializationIlya Yanok
Some boards need their board-specific PHY quirks to be called to PHY to work normally. As mpc5xxx_fec driver uses on demand PHY initialization and can even reinit PHY during normal operation we can't count on reset_phy() call from arch/<arch>/lib/board.c (it is most likely called _before_ we init the PHY from the driver) so we need to add call to reset_phy() directly in the driver. Signed-off-by: Ilya Yanok <yanok@emcraft.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12drivers/net/at91_emac.c: change return valuesAndreas Bießmann
Some return values pretended correct pass. This patch changes them according to README.drivers.net. This patch changes e.g. command 'dhcp' to stop after errorneous autonegotiation. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12drivers/net/at91_emac.c: increase timeout for autonegotiationAndreas Bießmann
This patch increases timeout for autonegotiation from 1 second to 3 seconds. Some boards (e.g. at91rm9200ek) did not negotiate within 1 second. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12NET: add ENC28J60 driver using SPI frameworkReinhard Meyer
V3: further refinements: - use priv member instead of container method - allow setting of MAC address by write_hwaddr method - avoid shutting down link between commands Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12UEC PHY: Speed up initial PHY neg.Joakim Tjernlund
Instead of always performing an autoneg, check if the PHY already has a link and if it matches one of the requested modes. Initially only 100MbFD is optimized this way. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12Net: Remove redundant CONFIG_NET_MULTI directivesBen Warren
All are within an #ifdef CONFIG_NET_MULTI block already Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12UEC PHY: Remove strange 0.5 sec delayJoakim Tjernlund
This udelay looks bogus and doesn't help my board. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Acked-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12UEC: Don't udelay needlesslyJoakim Tjernlund
uec_init() adds an udelay(100000) even though the PHY status read went well, don't do that. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Acked-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12NET: move legacy enc28j60.c to sidetrack as enc28j60_lpc2292.cReinhard Meyer (-VC)
This patch is required before the upcoming new enc28j60 driver using SPI framework patch can be applied: - Move legacy enc28j60.c to enc28j60_lpc2292.c. - Change Makefile and the two affected boards' definition files. Tested with ./MAKEALL ARM7 that both boards still compile. Signed-off-by: Reinhard Meyer<info@emk-elektronik.de> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-12net: Fix faulty definition of uec_initialize()Joakim Tjernlund
The correct definition is in drivers/qe/uec.h so just remove this one. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2010-10-11mtd: OneNAND: add support for OneNAND manufactured by NumonyxEnric Balletbo i Serra
This patch adds the Numonyx manufacturer code (0x20) to onenand manufacturers. Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Steve Sakoman <steve.sakoman@linaro.org> Tested-by: Steve Sakoman <steve.sakoman@linaro.org>
2010-10-11README: Add new NAND env featuresScott Wood
CONFIG_ENV_SIZE does not need block alignment. Document CONFIG_ENV_RANGE and CONFIG_ENV_OFFSET_OOB. Signed-off-by: Scott Wood <scottwood@freescale.com>
2010-10-11Followup fixes on the mtdparts spread patchsetScott Wood
Consolidate some code in mtd_get_len_incl_bad(), and fix a condition where a valid partition could be reported as truncated if it has a good block at the end of the device (unlikely, since the BBT is usually there). Fix mid-block declarations in net_part_size(). Signed-off-by: Scott Wood <scottwood@freescale.com> Reviewed-by: Ben Gardiner <bengardiner@nanometrics.ca>
2010-10-11mtdparts: new add.spread: add part skipping bad blocksBen Gardiner
This patch adds a new 'mtdparts add' variant: add.spread. This command variant adds a new partition to the mtdparts variable but also increases the partitions size by skipping bad blocks and aggregating any additional bad blocks found at the end of the partition. Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> CC: Wolfgang Denk <wd@denx.de> CC: Scott Wood <scottwood@freescale.com>
2010-10-11mtdparts: add new sub-command "spread"Ben Gardiner
This patch introduces the 'spread' sub-command of the mtdparts command. This command will modify the existing mtdparts variable by increasing the size of the partitions such that 1) each partition's net size is at least as large as the size specified in the mtdparts variable and 2) each partition starts on a good block. The new subcommand is implemented by iterating over the mtd device partitions and collecting a bad blocks count in each -- including any trailing bad blocks -- and then modifying that partitions's part_info structure and checking if the modification affects the next partition. This patch is based on a port of the 'dynnamic partitions' feature by Harald Welte <laforge@gnumonks.org>; ported from commit e05835df019027391f58f9d8ce5e1257d6924798 of git://git.openmoko.org/u-boot.git. Whereas Harald's feature used a compile-time array to specify partitions, the feature introduced by this patch uses the mtdparts environment variable. Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> Signed-off-by: Harald Welte <laforge@gnumonks.org> CC: Wolfgang Denk <wd@denx.de> CC: Scott Wood <scottwood@freescale.com>
2010-10-11mtdparts: show net size in mtdparts listBen Gardiner
This patch adds an additional column to the output of list_partitions. The additional column will contain the net size and a '(!)' beside it if the net size is not equal to the partition size. Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> CC: Wolfgang Denk <wd@denx.de> CC: Scott Wood <scottwood@freescale.com>
2010-10-11mtd: add an mtd method for get_len_incl_bad()Ben Gardiner
The logic to 'spread' mtd partitions needs to calculate the length in the mtd device, including bad blocks. This patch introduces a new function, mtd_get_len_incl_bad that can return both the length including bad blocks and whether that length was truncated on the device. This new function will be used by the mtdparts spread command later in this series. The definition of the function is #ifdef'd out in configurations that do not use the new 'mtdparts spread' command. Signed-off-by: Ben Gardiner<bengardiner@nanometrics.ca> CC: Scott Wood <scottwood@freescale.com>
2010-10-11mtdparts: regroup calls to get_mtd_device_nmBen Gardiner
The get_mtd_device_nm function is called in a couple places and the string that is passed to it is not really used after the calls. This patch regroups the calls to this function into a new function, get_mtd_info. Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> Acked-by: Stefan Roese <sr@denx.de> CC: Wolfgang Denk <wd@denx.de>
2010-10-11nand: remove dead code and suspend/resumeScott Wood
Get rid of the several "#if 0" sections that were keeping around Linux code that isn't relevant to U-Boot. Besides cluttering the code, these sections make tracking upstream changes harder, rather than easier. It's easy to discard obviously irrelevant diff hunks that patch rejects, but it's not as easy to notice hunks that apply cleanly to the #if 0 section, but *are* relevant to U-Boot and require modification elsewhere. Also remove suspend/resume, as this is not applicable to U-Boot. Removal saves 232 bytes on powerpc. Signed-off-by: Scott Wood <scottwood@freescale.com> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
2010-10-11nand commands: make only "dump" repeatable.Scott Wood
The dump command is made to increment its address on repeat, as md does. Other commands do not make sense to issue repeatedly, and can be irritating when it happens accidentally, so don't. Signed-off-by: Scott Wood <scottwood@freescale.com> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
2010-10-11nand erase: .spread, .part, .chip subcommandsScott Wood
A while back, in http://lists.denx.de/pipermail/u-boot/2009-June/054428.html, Michele De Candia posted a patch to not count bad blocks toward the requested size to be erased. This is desireable when you're passing in something like $filesize, but not when you're trying to erase a partition. Thus, a .spread subcommand (named for consistency with http://lists.denx.de/pipermail/u-boot/2010-August/075163.html) is introduced to make explicit the user's desire to erase for a given amount of data, rather than to erase a specific region of the chip. While passing $filesize to "nand erase" is useful, accidentally passing something like $fliesize currently produces quite unpleasant results, as the variable evaluates to nothing and U-Boot assumes that you want to erase the entire rest of the chip/partition. To improve the safety of the erase command, require the user to make explicit their intentions by using a .part or .chip subcommand. This is an incompatible user interface change, but keeping compatibility would eliminate the safety gain, and IMHO it's worth it. While touching nand_erase_opts(), make it accept 64-bit offsets and sizes, fix the percentage display when erase length is rounded up, eliminate an inconsistent warning about rounding up the erase length which only happened when the length was less than one block (rounding up for $filesize is normal operation), and add a diagnostic if there's an attempt to erase beginning at a non-block boundary. Signed-off-by: Scott Wood <scottwood@freescale.com> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
2010-10-11cmd_nand: some infrastructure fixes and refactoringScott Wood
- If the current device is overridden by a named partition, - update the caller's pointer/index, rather than copy over the nand_info struct, and - be sure to call board_nand_select_device even when the device is overridden by a named partition. - Support 64-bit offsets/sizes in a few more places. - Refactor arg_off_size for added readability and flexibility, and some added checks such as partition size. - Remove redundant check for bad subcommands -- if there's no match it'll print usage when it gets to the end anyway. Signed-off-by: Scott Wood <scottwood@freescale.com> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
2010-10-11nand util: read/write: accept unaligned lengthScott Wood
The underlying code in nand_base.c already supports non-page-aligned reads and writes, but the block-skipping wrapper code did not. With block skipping, an unaligned start address is not useful since you really want to be starting at the beginning of a partition -- or at least that's where you want to start checking for blocks to skip, but we don't (yet) support that. So we still require the start address to be aligned. An unaligned length, though, is useful for passing $filesize to the read/write command, and handling it does not complicate block skipping. Signed-off-by: Scott Wood <scottwood@freescale.com> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
2010-10-11Merge branch 'master' of git://git.denx.de/u-boot-x86Wolfgang Denk
2010-10-11Merge branch 'master' of git://git.denx.de/u-boot-mpc85xxWolfgang Denk
2010-10-11Merge branch 'sf' of git://git.denx.de/u-boot-blackfinWolfgang Denk