diff options
| -rw-r--r-- | common/cmd_nand.c | 16 | ||||
| -rw-r--r-- | doc/README.nand | 10 | 
2 files changed, 26 insertions, 0 deletions
| diff --git a/common/cmd_nand.c b/common/cmd_nand.c index 27a88796e..b767cd287 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -575,6 +575,16 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])  			else  				ret = nand_write_skip_bad(nand, off, &rwsize,  							  (u_char *)addr, 0); +#ifdef CONFIG_CMD_NAND_TRIMFFS +		} else if (!strcmp(s, ".trimffs")) { +			if (read) { +				printf("Unknown nand command suffix '%s'\n", s); +				return 1; +			} +			ret = nand_write_skip_bad(nand, off, &rwsize, +						(u_char *)addr, +						WITH_DROP_FFS); +#endif  #ifdef CONFIG_CMD_NAND_YAFFS  		} else if (!strcmp(s, ".yaffs")) {  			if (read) { @@ -689,6 +699,12 @@ U_BOOT_CMD(  	"nand write - addr off|partition size\n"  	"    read/write 'size' bytes starting at offset 'off'\n"  	"    to/from memory address 'addr', skipping bad blocks.\n" +#ifdef CONFIG_CMD_NAND_TRIMFFS +	"nand write.trimffs - addr off|partition size\n" +	"    write 'size' bytes starting at offset 'off' from memory address\n" +	"    'addr', skipping bad blocks and dropping any pages at the end\n" +	"    of eraseblocks that contain only 0xFF\n" +#endif  #ifdef CONFIG_CMD_NAND_YAFFS  	"nand write.yaffs - addr off|partition size\n"  	"    write 'size' bytes starting at offset 'off' with yaffs format\n" diff --git a/doc/README.nand b/doc/README.nand index 8eedb6c4d..751b69384 100644 --- a/doc/README.nand +++ b/doc/README.nand @@ -78,6 +78,16 @@ Commands:        should work well, but loading an image copied from another flash is        going to be trouble if there are any bad blocks. +   nand write.trimffs addr ofs|partition size +      Enabled by the CONFIG_CMD_NAND_TRIMFFS macro. This command will write to +      the NAND flash in a manner identical to the 'nand write' command +      described above -- with the additional check that all pages at the end +      of eraseblocks which contain only 0xff data will not be written to the +      NAND flash. This behaviour is required when flashing UBI images +      containing UBIFS volumes as per the UBI FAQ[1]. + +      [1] http://www.linux-mtd.infradead.org/doc/ubi.html#L_flasher_algo +     nand write.oob addr ofs|partition size        Write `size' bytes from `addr' to the out-of-band data area        corresponding to `ofs' in NAND flash. This is limited to the 16 bytes |