Blackfin: replace "bfin_reset_or_hang()" with "panic()"
[oweals/u-boot.git] / common / cmd_nand.c
index 8a812379a6e3295ba5765c0c7dfbf146aa006bc0..7bd37de78dee9e717f4c521c2eeaa51fe2825de3 100644 (file)
@@ -574,7 +574,15 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
                                                         (u_char *)addr);
                        else
                                ret = nand_write_skip_bad(nand, off, &rwsize,
-                                                         (u_char *)addr);
+                                                         (u_char *)addr, 0);
+#ifdef CONFIG_CMD_NAND_YAFFS
+               } else if (!strcmp(s, ".yaffs")) {
+                       if (read) {
+                               printf("Unknown nand command suffix '%s'.\n", s);
+                               return 1;
+                       }
+                       ret = nand_write_skip_bad(nand, off, &rwsize, (u_char *)addr, 1);
+#endif
                } else if (!strcmp(s, ".oob")) {
                        /* out-of-band data */
                        mtd_oob_ops_t ops = {
@@ -653,7 +661,7 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
        }
 
        if (strcmp(cmd, "unlock") == 0) {
-               if (arg_off_size(argc - 2, argv + 2, nand, &off, &size) < 0)
+               if (arg_off_size(argc - 2, argv + 2, &dev, &off, &size) < 0)
                        return 1;
 
                if (!nand_unlock(&nand_info[dev], off, size)) {
@@ -680,6 +688,11 @@ 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_YAFFS
+       "nand write.yaffs - addr off|partition size\n"
+       "    write 'size' bytes starting at offset 'off' with yaffs format\n"
+       "    from memory address 'addr', skipping bad blocks.\n"
+#endif
        "nand erase[.spread] [clean] [off [size]] - erase 'size' bytes "
        "from offset 'off'\n"
        "    With '.spread', erase enough for given file size, otherwise,\n"
@@ -789,7 +802,6 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
        /* Check if we should attempt an auto-start */
        if (((ep = getenv("autostart")) != NULL) && (strcmp(ep, "yes") == 0)) {
                char *local_args[2];
-               extern int do_bootm(cmd_tbl_t *, int, int, char *[]);
 
                local_args[0] = cmd;
                local_args[1] = NULL;