summaryrefslogtreecommitdiff
path: root/package/system/mtd
diff options
context:
space:
mode:
Diffstat (limited to 'package/system/mtd')
-rw-r--r--package/system/mtd/src/mtd.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/package/system/mtd/src/mtd.c b/package/system/mtd/src/mtd.c
index db3fc80..72b9ddf 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)