summaryrefslogtreecommitdiff
path: root/common/cmd_nand.c
Commit message (Collapse)AuthorAgeLines
...
* NAND: formatting cleanups from env.oob supportScott Wood2010-07-12-26/+28
| | | | | | | | | | | | | | | | | | | | Change if (ok) { bunch of stuff } else { error } to if (error) { get out } proceed with bunch of stuff Plus a few whitespace cleanups. Signed-off-by: Scott Wood <scottwood@freescale.com>
* NAND: environment offset in OOB (CONFIG_ENV_OFFSET_OOB)Ben Gardiner2010-07-12-1/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a re-submission of the patch by Harald Welte <laforge@openmoko.org> with minor modifications for rebase and changes as suggested by Scott Wood <scottwood@freescale.com> [1] [2]. This patch enables the environment partition to have a run-time dynamic location (offset) in the NAND flash. The reason for this is simply that all NAND flashes have factory-default bad blocks, and a fixed compile time offset would mean that sometimes the environment partition would live inside factory bad blocks. Since the number of factory default blocks can be quite high (easily 1.3MBytes in current standard components), it is not economic to keep that many spare blocks inside the environment partition. With this patch and CONFIG_ENV_OFFSET_OOB enabled, the location of the environment partition is stored in the out-of-band (OOB) data of the first block in flash. Since the first block is where most systems boot from, the vendors guarantee that the first block is not a factory default block. This patch introduces the 'nand env.oob' command, which can be called from the u-boot command line. 'nand env.oob get' reads the address of the environment partition from the OOB data, 'nand env.oob set {offset,partition-name}' allows the setting of the marker by specifying a numeric offset or a partition name. [1] http://article.gmane.org/gmane.comp.boot-loaders.u-boot/43916 [2] http://article.gmane.org/gmane.comp.boot-loaders.u-boot/79195 Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> Acked-by: Harald Welte <laforge@gnumonks.org>
* Make sure that argv[] argument pointers are not modified.Wolfgang Denk2010-07-04-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hush shell dynamically allocates (and re-allocates) memory for the argument strings in the "char *argv[]" argument vector passed to commands. Any code that modifies these pointers will cause serious corruption of the malloc data structures and crash U-Boot, so make sure the compiler can check that no such modifications are being done by changing the code into "char * const argv[]". This modification is the result of debugging a strange crash caused after adding a new command, which used the following argument processing code which has been working perfectly fine in all Unix systems since version 6 - but not so in U-Boot: int main (int argc, char **argv) { while (--argc > 0 && **++argv == '-') { /* ====> */ while (*++*argv) { switch (**argv) { case 'd': debug++; break; ... default: usage (); } } } ... } The line marked "====>" will corrupt the malloc data structures and usually cause U-Boot to crash when the next command gets executed by the shell. With the modification, the compiler will prevent this with an error: increment of read-only location '*argv' N.B.: The code above can be trivially rewritten like this: while (--argc > 0 && **++argv == '-') { char *arg = *argv; while (*++arg) { switch (*arg) { ... Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Mike Frysinger <vapier@gentoo.org>
* Fix "par[t]ition" typo.Wolfgang Denk2010-05-21-1/+1
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* cmd_nand: show nand scrub confirmation characterFlorian Fainelli2010-03-23-2/+8
| | | | | | | | | When issuing a nand scrub command, the entered character is not displayed this may be confusing. This patch makes the input character being displayed if it is a 'y' so that an user knows he is about to scrub his nand. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
* cmd_nand: Move conditional compilation to MakefilePeter Tyser2009-11-13-4/+0
| | | | Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* cmd_nand: Remove duplicate includePeter Tyser2009-11-13-8/+0
| | | | | | Also remove vague, unnecessary comment Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* Remove legacy NAND and disk on chip code.Scott Wood2009-07-16-412/+0
| | | | | | | | | | | | | Legacy NAND had been scheduled for removal. Any boards that use this were already not building in the previous release due to an #error. The disk on chip code in common/cmd_doc.c relies on legacy NAND, and it has also been removed. There is newer disk on chip code in drivers/mtd/nand; someone with access to hardware and sufficient time and motivation can try to get that working, but for now disk on chip is not supported. Signed-off-by: Scott Wood <scottwood@freescale.com>
* nand/onenand: Fix missing argument checking for "markbad" commandWolfgang Denk2009-07-07-10/+21
| | | | | | | | | | | | | The "nand markbad" and "onenand markbad" commands did not check if an argument was passed; if this was forgotten, no error was raised but block 0 was marked as bad. While fixing this bug, clean up the code a bit and allow to pass more than one block address, thus allowing to mark several blocks as bad in a single command invocation. Signed-off-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Scott Wood <scottwood@freescale.com>
* General help message cleanupWolfgang Denk2009-06-12-22/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many of the help messages were not really helpful; for example, many commands that take no arguments would not print a correct synopsis line, but "No additional help available." which is not exactly wrong, but not helpful either. Commit ``Make "usage" messages more helpful.'' changed this partially. But it also became clear that lots of "Usage" and "Help" messages (fields "usage" and "help" in struct cmd_tbl_s respective) were actually redundant. This patch cleans this up - for example: Before: => help dtt dtt - Digital Thermometer and Thermostat Usage: dtt - Read temperature from digital thermometer and thermostat. After: => help dtt dtt - Read temperature from Digital Thermometer and Thermostat Usage: dtt Signed-off-by: Wolfgang Denk <wd@denx.de>
* Separate mtdparts command from jffs2Ladislav Michl2009-04-28-5/+5
| | | | | | | | | | | | | | | On Thu, Mar 19, 2009 at 01:30:36PM +0100, Stefan Roese wrote: > Currently the mtdparts commands are included in the jffs2 command support. > This doesn't make sense anymore since other commands (e.g. UBI) use this > infrastructure as well now. This patch separates the mtdparts commands from > the jffs2 commands making it possible to only select mtdparts when no JFFS2 > support is needed. One more leftover... Let nboot command know about partitions even if JFFS2 support is not enabled. Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Acked-by: Stefan Roese <sr@denx.de>
* cmd_nand: drop duplicate NULL ptr checkMike Frysinger2009-04-16-1/+1
| | | | | | | | The first if statement checks for NULL ptrs, so there is no need to check it again in later else cases (such as .oob). Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Scott Wood <scottwood@freescale.com>
* Enable multi chip support in the NAND layerWolfgang Grandegger2009-03-23-6/+15
| | | | | | | | | | This patch adds support for NAND_MAX_CHIPS to the MTD NAND layer. Multi-chips devices are displayed as shown: Device 0: 2x NAND 512MiB 3,3V 8-bit, sector size 128 KiB Signed-off-by: Wolfgang Grandegger <wg@grandegger.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
* Separate mtdparts command from jffs2Stefan Roese2009-03-20-5/+5
| | | | | | | | | | | Currently the mtdparts commands are included in the jffs2 command support. This doesn't make sense anymore since other commands (e.g. UBI) use this infrastructure as well now. This patch separates the mtdparts commands from the jffs2 commands making it possible to only select mtdparts when no JFFS2 support is needed. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
* NAND: Have nboot accept .e and .i as legacy no-ops.Scott Wood2009-03-17-1/+1
| | | | | | This was intended to happen before, but a trivial bug prevented it. Signed-off-by: Scott Wood <scottwood@freescale.com>
* NAND: Make nboot skip bad blocksLadislav Michl2009-03-17-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | nboot command currently does not skip bad blocks and gives read error when loading image stored over bad block. With patch applied, nboot works as expected: Device 0 bad blocks: 00780000 014a0000 02000000 02cc0000 04aa0000 Loading from NAND 128MiB 3,3V 8-bit, offset 0x2c00000 Image Name: Linux-2.6.22-omap1 Created: 2008-11-20 23:44:32 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1052520 Bytes = 1 MB Load Address: 10008000 Entry Point: 10008000 Skipping bad block 0x02cc0000 Automatic boot of image at addr 0x10400000 ... ... Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Signed-off-by: Scott Wood <scottwood@freescale.com>
* Command usage cleanupPeter Tyser2009-01-28-4/+4
| | | | | | | | Remove command name from all command "usage" fields and update common/command.c to display "name - usage" instead of just "usage". Also remove newlines from command usage fields. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* Standardize command usage messages with cmd_usage()Peter Tyser2009-01-28-8/+8
| | | | Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* nand: fixup printf modifiers to match types usedMike Frysinger2009-01-23-2/+2
| | | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Scott Wood <scottwood@freescale.com>
* nand read.jffs2 (nand_legacy) in common/cmd_nand.cSchlaegl Manfred jun2009-01-23-4/+3
| | | | | | | | | | | | Error with CONFIG_NAND_LEGACY in common/cmd_nand.c: With current code "nand read.jffs2s" (read and skip bad blocks) is always interpreted as "nand read.jffs2" (read and fill bad blocks with 0xff). This is because ".jffs2" is tested before ".jffs2s" and only the first two characters are compared. Correction: Test for ".jffs2s" first and compare the first 7 characters. Signed-off-by: Scott Wood <scottwood@freescale.com>
* NAND: Enable nand lock, unlock featureNishanth Menon2009-01-23-47/+49
| | | | | | | | | | | | | | | | Enable nand lock, unlock and status of lock feature. Not every device and platform requires this, hence, it is under define for CONFIG_CMD_NAND_LOCK_UNLOCK Nand unlock and status operate on block boundary instead of page boundary. Details in: http://www.micron.com/products/partdetail?part=MT29C2G24MAKLAJG-6%20IT Intial solution provided by Vikram Pandita <vikram.pandita@ti.com> Includes preliminary suggestions from Scott Wood Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
* NAND: Align right column of the shorthelp with other commands.Scott Wood2008-10-29-1/+1
| | | | | | | I accidentally broke this in when making consistent the partial alignment of the longhelp. Signed-off-by: Scott Wood <scottwood@freescale.com>
* rename CFG_ macros to CONFIG_SYSJean-Christophe PLAGNIOL-VILLARD2008-10-18-19/+19
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Coding Style cleanup, update CHANGELOGWolfgang Denk2008-08-14-28/+28
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* drivers/mtd/nand: Move conditional compilation to MakefileJean-Christophe PLAGNIOL-VILLARD2008-08-13-3/+3
| | | | | | rename CFG_NAND_LEGACY to CONFIG_NAND_LEGACY Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* NAND read/write fixScott Wood2008-08-12-27/+9
| | | | | | | | Implement block-skipping read/write, based on a patch from Morten Ebbell Hestens <morten.hestnes@tandberg.com>. Signed-off-by: Morten Ebbell Hestnes <morten.hestnes@tandberg.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
* NAND: Always skip blocks on read/write/boot.Scott Wood2008-08-12-13/+14
| | | | | | | Use of the non-skipping versions was almost always (if not always) an error, and no valid use case has been identified. Signed-off-by: Scott Wood <scottwood@freescale.com>
* NAND: Fix compilation warning and small coding style issueStefan Roese2008-08-12-3/+2
| | | | Signed-off-by: Stefan Roese <sr@denx.de>
* make nand dump and nand dump.oob workWilliam Juul2008-08-12-19/+27
| | | | | Signed-off-by: William Juul <william.juul@tandberg.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
* Whitespace cleanup and marking broken code.William Juul2008-08-12-44/+52
| | | | | | | | Changes requested by maintainer Stefan Roese after posting patch to U-boot mailing list. Signed-off-by: William Juul <william.juul@tandberg.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
* Fixing coding style issuesWilliam Juul2008-08-12-52/+58
| | | | | | | | | - Fixing leading white spaces - Fixing indentation where 4 spaces are used instead of tab - Removing C++ comments (//), wherever I introduced them Signed-off-by: William Juul <william.juul@tandberg.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
* Remove white space at end.William Juul2008-08-12-1/+1
| | | | | Signed-off-by: William Juul <william.juul@tandberg.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
* Update MTD to that of Linux 2.6.22.1William Juul2008-08-12-142/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A lot changed in the Linux MTD code, since it was last ported from Linux to U-Boot. This patch takes U-Boot NAND support to the level of Linux 2.6.22.1 and will enable support for very large NAND devices (4KB pages) and ease the compatibility between U-Boot and Linux filesystems. This patch is tested on two custom boards with PPC and ARM processors running YAFFS in U-Boot and Linux using gcc-4.1.2 cross compilers. MAKEALL ppc/arm has some issues: * DOC/OneNand/nand_spl is not building (I have not tried porting these parts, and since I do not have any HW and I am not familiar with this code/HW I think its best left to someone else.) Except for the issues mentioned above, I have ported all drivers necessary to run MAKEALL ppc/arm without errors and warnings. Many drivers were trivial to port, but some were not so trivial. The following drivers must be examined carefully and maybe rewritten to some degree: cpu/ppc4xx/ndfc.c cpu/arm926ejs/davinci/nand.c board/delta/nand.c board/zylonite/nand.c Signed-off-by: William Juul <william.juul@tandberg.com> Signed-off-by: Stig Olsen <stig.olsen@tandberg.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
* Fix some more print() format errors.Wolfgang Denk2008-07-11-2/+2
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* MTD/NAND: Fix printf format warning in nand codeStefan Roese2008-07-10-6/+6
| | | | | | | | | This patch fixes NAND related printf format warning. Those warnings are now visible since patch dc4b0b38d4aadf08826f6c31270f1eecd27964fd [Fix printf errors.] by Andrew Klossner has been applied. Thanks, this is really helpful. Signed-off-by: Stefan Roese <sr@denx.de>
* Delay FIT format check on sector based devicesMarian Balakowicz2008-06-30-18/+20
| | | | | | | | | | Global FIT image operations like format check cannot be performed on a first sector data, defer them to the point when whole FIT image was uploaded to a system RAM. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Partial ('cmd_nand' case) Acked-by: Grant Erickson <gerickson@nuovations.com> NAND and DOC bits Acked-by: Scott Wood <scottwood@freescale.com>
* Cleanup nand_info[] declaration.Stelian Pop2008-05-28-2/+0
| | | | | | | | | The nand_info array is declared as extern in several .c files. Those days, nand.h contains a reference to the array, so there is no need to declare it elsewhere. Signed-off-by: Stelian Pop <stelian@popies.net> Signed-off-by: Scott Wood <scottwood@freescale.com>
* cmd_nand.c: fix another 'incompatible pointer type' warning.Wolfgang Denk2008-04-30-1/+1
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* cmd_nand.c: fix "differ in signedness" problemWolfgang Denk2008-04-28-6/+7
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* NAND: fix some strict-aliasing compiler warningsWolfgang Denk2008-04-28-9/+10
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* [new uImage] Use show_boot_progress() for new uImage formatMarian Balakowicz2008-03-12-0/+4
| | | | | | | This patch allocates a set of show_boot_progress() IDs for new uImage format and adds show_boot_progress() calls in new uImage format handling code. Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* [new uImage] Add new uImage format handling to other bootm related commandsMarian Balakowicz2008-03-12-23/+42
| | | | | | | | | | | | | Updated commands: docboot - cmd_doc.c fdcboot - cmd_fdc.c diskboot - cmd_ide.c nboot - cmd_nand.c scsiboot - cmd_scsi.c usbboot - cmd_usb.c Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* [new uImage] Update naming convention for bootm/uImage related codeMarian Balakowicz2008-02-29-2/+2
| | | | | | | | | | | | | | | This patch introduces the following prefix convention for the image format handling and bootm related code: genimg_ - dual format shared code image_ - legacy uImage format specific code fit_ - new uImage format specific code boot_ - booting process related code Related routines are renamed and a few pieces of code are moved around and re-grouped. Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* [new uImage] Add dual format uImage support frameworkMarian Balakowicz2008-02-25-16/+43
| | | | | | | | | | | | | | This patch adds framework for dual format images. Format detection is added and the bootm controll flow is updated to include cases for new FIT format uImages. When the legacy (image_header based) format is detected appropriate legacy specific handling is invoked. For the new (FIT based) format uImages dual boot framework has a minial support, that will only print out a corresponding debug messages. Implementation of the FIT specific handling will be added in following patches. Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* [new uImage] Rename and move print_image_hdr() routineMarian Balakowicz2008-02-21-2/+2
| | | | Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* [new uImage] Define a API for image handling operationsMarian Balakowicz2008-02-07-7/+7
| | | | | | | | | - Add inline helper macros for basic header processing - Move common non inline code common/image.c - Replace direct header access with the API routines - Rename IH_CPU_* to IH_ARCH_* Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* cmd_nand : fix compiler warning.Jean-Christophe PLAGNIOL-VILLARD2008-01-13-2/+2
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Re-introduce the 'nand read.oob' and 'nand write.oob' commandsHarald Welte2008-01-09-0/+8
| | | | | | that used to exist with the legacy NAND code Signed-off-by: Harald Welte <laforge@openmoko.org>
* Fix do_div() usage in nand process outputMatthias Fuchs2007-09-15-1/+1
| | | | | | | | | | Fix usage of do_div() in nand erase|read|write process output. The last patch to nand_util.c introduced do_div() instead of libgcc's implementation. But do_div() returns the quotient in its first macro parameter and not as result. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
* NAND: Add CFG_NAND_QUIET optionMatthias Fuchs2007-09-15-0/+4
| | | | | | | | | | | | | | | This config option sets the default for the progress information output behavior that can also be configured through the 'quiet' environment variable. The legacy NAND code does not print the current progress info on the console. So this option is for backward compatibility for units that are in the field and where setting the quiet variable is not an option. With CFG_NAND_QUIET set to '1' the console progress info is turned off. This can still be overwritten through the environment variable. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>