Signed-off-by: Li Wenhao <liwenha...@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 */
+                       };
+
+                       ulong page = 0;
+                       ulong block_size = ops.len + ops.ooblen;
+                       while (page * block_size < size) {
+                               ops.datbuf = addr + page * block_size;
+                               ops.oobbuf = ops.datbuf + ops.len;
+
+                               ret = nand->write_oob(nand, 
+                                                     off + page * ops.len,
+                                                     &ops);
+
+                               if (ret) break;
+
+                               page++;
+                       }
                } else {
                        printf("Unknown nand command suffix '%s'.\n", s);
                        return 1;
-- 
1.6.3.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to