summaryrefslogtreecommitdiff
path: root/common/cmd_mtdparts.c
Commit message (Collapse)AuthorAgeLines
* Make sure that argv[] argument pointers are not modified.Wolfgang Denk2010-07-04-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* mtdparts: get rid of custom DEBUG macro, use debug()Wolfgang Denk2010-04-28-50/+40
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* mtdparts: fix write through NULL pointerWolfgang Denk2010-04-28-7/+12
| | | | | | | | | | | The "mtdparts add" command wrote through a NULL pointer - on many systems this went unnoticed (PowerPC has writable RAM there, some ARM systems have ROM where a write has no effect), but on arm1136 (i.MX31) it crashed the system. Add appropriate checks. Signed-off-by: Wolfgang Denk <wd@denx.de>
* fdt_support: add partitions fixup in mtd nodeAnatolij Gustschin2010-03-21-1/+1
| | | | | | | | | Allow overwriting defined partitions in the device tree blob using partition info defined in the 'mtdparts' environment variable. Signed-off-by: Anatolij Gustschin <agust@denx.de> Cc: Gerald Van Baren <vanbaren@cideas.com>
* cmd_mtdparts.c: prevent printbuffer overflowsAnatolij Gustschin2010-03-12-2/+8
| | | | | | | | | The length of configured MTDPARTS_DEFAULT string could be greater than console printbuffer size. Replace printf() by puts() to avoid potential buffer overflows. Signed-off-by: Anatolij Gustschin <agust@denx.de>
* cmd_mtdparts.c: fix compiler warning in debug codeWolfgang Denk2009-09-04-1/+1
| | | | | | | | | | Fix warning messages: cmd_mtdparts.c:1429: warning: format '%08lx' expects type 'long unsigned int', but argument 6 has type 'u32' cmd_mtdparts.c:1429: warning: format '%08lx' expects type 'long unsigned int', but argument 7 has type 'u32' Signed-off-by: Wolfgang Denk <wd@denx.de>
* Remove legacy NAND and disk on chip code.Scott Wood2009-07-16-10/+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>
* General help message cleanupWolfgang Denk2009-06-12-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* cmd_mtdparts.c: allow to omit definitions for default settingsWolfgang Denk2009-06-12-4/+4
| | | | | | | | | | | | There is actually no good reason to enforce that all board configuations must define default settings for "mtdids" and "mtdparts". Actually this may be difficult to handle, especially on boards where different sizes of flash chips can be fit, so there is no real "default" partition map for all boards. Lift this arbitrary limitation. Signed-off-by: Wolfgang Denk <wd@denx.de>
* cmd_mtdparts: Move to common handling of FLASH devices via MTD layerStefan Roese2009-06-12-160/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes all references to the direct CFI FLASH interface (via flash_info[]). Now that all FLASH types currently handled in mtdparts are available (if selected, see below) via the MTD infrastructure. This is NOR, NAND and OneNAND right now. This can be achieved by defining the following options: CONFIG_MTD_DEVICE (for all FLASH types) plus CONFIG_FLASH_CFI_MTD (for NOR FLASH) So we need to add those defines to the board config headers currently using the mtdparts commands. This is done via another patch, so we shouldn't break mtdparts compatibility. One big advantage from this solution is that the cmd_mtdparts.c is *much* cleaner now. Lot's of #ifdef's are removed and the code itself is smaller. Additionally the newly added MDT concatenation feature can new be used via the mtdparts infrastructure and therefor via UBI etc. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Ladislav Michl <ladis@linux-mips.org> Cc: Scott Wood <scottwood@freescale.com>
* jffs2/mtdparts: Fix problem with usage from JFFS2 and MTDPARTS togetherStefan Roese2009-05-28-37/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* mtdpart command: align output columnsDavid Brownell2009-04-28-1/+1
| | | | | | | Make the headers in the "mtdparts" command output line up with their columns ... strike the extra TAB character. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* Separate mtdparts command from jffs2Ladislav Michl2009-04-04-6/+3
| | | | | | | | | | | | | | | | 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. ... and to make it useful for NAND chips as well, we should also remove now unrelated CONFIG_JFFS2_NAND. Note that struct part_info etc is in jffs2/load_kernel.h which is a bit misleading filename for that purpose, but that can be fixed later (tm). Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
* Separate mtdparts command from jffs2Stefan Roese2009-03-20-0/+1986
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>