- argc -= 3;
- argv += 3;
-
- /* Do the parsing */
- if (!strncmp(cmd, "read", 4) || !strncmp(cmd, "dump", 4) ||
- !strncmp(cmd, "write", 5)) {
- bool has_pages = mtd->type == MTD_NANDFLASH ||
- mtd->type == MTD_MLCNANDFLASH;
- bool dump, read, raw, woob, write_empty_pages;
- struct mtd_oob_ops io_op = {};
- uint user_addr = 0, npages;
- u64 start_off, off, len, remaining, default_len;
- u32 oob_len;
- u8 *buf;
- int ret;
-
- dump = !strncmp(cmd, "dump", 4);
- read = dump || !strncmp(cmd, "read", 4);
- raw = strstr(cmd, ".raw");
- woob = strstr(cmd, ".oob");
- write_empty_pages = !has_pages || strstr(cmd, ".dontskipff");
-
- if (!dump) {
- if (!argc)
- return CMD_RET_USAGE;
-
- user_addr = simple_strtoul(argv[0], NULL, 16);
- argc--;
- argv++;