
Wolfgang Denk wrote:
Dear Scott,
In message 1263145126-23165-1-git-send-email-liwenhao.g@gmail.com Li Wenha wrote:
Signed-off-by: Li Wenhao liwenhao.g@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