From 556c2a14898777cd25aa75601ca48169e4155698 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Fri, 18 Mar 2011 11:21:57 +0100 Subject: flash_erase: start position should be in bytes Commit a8801d8 (unify flash_erase and flash_eraseall) changed the flash_erase interface in a backwards incompatible way. Before that commit start position was given in bytes, and now it must be provided in blocks. While I agree the new interface is nicer, we shouldn't break the interface. I have scripts that expect the old behaviour, and I'm most likely not alone, so change the interface back to the old way. Signed-off-by: Peter Korsgaard Signed-off-by: Artem Bityutskiy --- flash_erase.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/flash_erase.c b/flash_erase.c index 1a7b52e..3ce701b 100644 --- a/flash_erase.c +++ b/flash_erase.c @@ -60,7 +60,7 @@ static void show_progress(struct mtd_dev_info *mtd, uint64_t start, int eb, static void display_help (void) { - printf("Usage: %s [options] MTD_DEVICE \n" + printf("Usage: %s [options] MTD_DEVICE \n" "Erase blocks of the specified MTD device.\n" "Specify a count of 0 to erase to end of device.\n" "\n" @@ -94,6 +94,7 @@ int main(int argc, char *argv[]) libmtd_t mtd_desc; struct mtd_dev_info mtd; int fd, clmpos = 0, clmlen = 8; + unsigned long long start; unsigned int eb, eb_start, eb_cnt; int isNAND; int error = 0; @@ -153,7 +154,7 @@ int main(int argc, char *argv[]) switch (argc - optind) { case 3: mtd_device = argv[optind]; - eb_start = simple_strtoul(argv[optind + 1], &error); + start = simple_strtoull(argv[optind + 1], &error); eb_cnt = simple_strtoul(argv[optind + 2], &error); break; default: @@ -182,6 +183,8 @@ int main(int argc, char *argv[]) if (mtd_get_dev_info(mtd_desc, mtd_device, &mtd) < 0) return errmsg("mtd_get_dev_info failed"); + eb_start = start / mtd.eb_size; + isNAND = mtd.type == MTD_NANDFLASH ? 1 : 0; if (jffs2) { -- cgit v1.2.3