[U-Boot] [PATCH] Add Yaffs2 image writing support.
Scott Wood
scottwood at freescale.com
Fri Mar 12 00:14:14 CET 2010
Wolfgang Denk wrote:
> Dear Scott,
>
> In message <1263145126-23165-1-git-send-email-liwenhao.g at gmail.com> Li Wenha wrote:
>> Signed-off-by: Li Wenhao <liwenhao.g at gmail.com>
>> ---
>> common/cmd_nand.c | 21 +++++++++++++++++++++
>> 1 files changed, 21 insertions(+), 0 deletions(-)
>>
>> diff --git a/common/cmd_nand.c b/common/cmd_nand.c
>> index 075a8af..38c6480 100644
>> --- a/common/cmd_nand.c
>> +++ b/common/cmd_nand.c
>> @@ -390,6 +390,27 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
>> ret = nand->read_oob(nand, off, &ops);
>> else
>> ret = nand->write_oob(nand, off, &ops);
>> + } else if (!strcmp(s, ".yaffs2") && !read) {
>> + mtd_oob_ops_t ops = {
>> + .mode = MTD_OOB_AUTO,
>> + .len = 2048, /* page size */
>> + .ooblen = 64, /* spare size */
>> + };
What about 512 or 4096 byte pages?
>> +
>> + ulong page = 0;
>> + ulong block_size = ops.len + ops.ooblen;
>> + while (page * block_size < size) {
What if "size" is not a multiple of "block_size"? Should not read past
the end of the input array, and should warn the user.
>> + ret = nand->write_oob(nand,
>> + off + page * ops.len,
>> + &ops);
>> +
>> + if (ret) break;
The break should go on its own line, and you should tell the user about
the failure.
>> +
>> + page++;
>> + }
>> } else {
>> printf("Unknown nand command suffix '%s'.\n", s);
>> return 1;
>> --
>> 1.6.3.3
>
> What is the status of this patch? Is it in your queue?
No, I didn't notice it -- the subject doesn't mention NAND, and it
presumably wasn't CCed to me.
Li Wenhao, could you send a new patch addressing the above issues, plus
updated documentation?
-Scott
More information about the U-Boot
mailing list