mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-13 21:36:57 +00:00
cmd_nand: add nand write.trimffs command
Add another nand write. variant, trimffs. This command will request of nand_write_skip_bad() that all trailing all-0xff pages will be dropped from eraseblocks when they are written to flash as-per the reccommended behaviour of the UBI FAQ [1]. The function that implements this timming is the drop_ffs() function by Artem Bityutskiy, ported from the mtd-utils tree. [1] http://www.linux-mtd.infradead.org/doc/ubi.html#L_flasher_algo Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> CC: Artem Bityutskiy <dedekind1@gmail.com> CC: Detlev Zundel <dzu@denx.de> Acked-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
parent
169d54d8b3
commit
c9494866df
2 changed files with 26 additions and 0 deletions
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue