diff options
-rw-r--r-- | package/system/mtd/src/mtd.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/package/system/mtd/src/mtd.c b/package/system/mtd/src/mtd.c index db3fc804c9..72b9ddfe21 100644 --- a/package/system/mtd/src/mtd.c +++ b/package/system/mtd/src/mtd.c @@ -274,7 +274,7 @@ mtd_erase(const char *mtd) } static int -mtd_dump(const char *mtd, int size) +mtd_dump(const char *mtd, int part_offset, int size) { int ret = 0, offset = 0; int fd; @@ -292,6 +292,9 @@ mtd_dump(const char *mtd, int size) if (!size) size = mtdsize; + if (part_offset) + lseek(fd, part_offset, SEEK_SET); + buf = malloc(erasesize); if (!buf) return -1; @@ -769,10 +772,6 @@ int main (int argc, char **argv) } break; case 'o': - if (!mtd_fixtrx) { - fprintf(stderr, "-o: is not available on this platform\n"); - usage(); - } errno = 0; offset = strtoul(optarg, 0, 0); if (errno) { @@ -872,7 +871,7 @@ int main (int argc, char **argv) mtd_verify(device, imagefile); break; case CMD_DUMP: - mtd_dump(device, dump_len); + mtd_dump(device, offset, dump_len); break; case CMD_ERASE: if (!unlocked) |