[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH] nandwrite: implement -n (read/write without ecc)
From:       Aaro Koskinen <aaro.koskinen () iki ! fi>
Date:       2015-11-15 23:29:32
Message-ID: 1447630172-23111-1-git-send-email-aaro.koskinen () iki ! fi
[Download RAW message or body]

Implement -n (read/write without ecc).

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
---
 miscutils/nandwrite.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/miscutils/nandwrite.c b/miscutils/nandwrite.c
index 247fc72..ec0b5b0 100644
--- a/miscutils/nandwrite.c
+++ b/miscutils/nandwrite.c
@@ -29,16 +29,18 @@
 //kbuild:lib-$(CONFIG_NANDDUMP) += nandwrite.o
 
 //usage:#define nandwrite_trivial_usage
-//usage:	"[-p] [-s ADDR] MTD_DEVICE [FILE]"
+//usage:	"[-np] [-s ADDR] MTD_DEVICE [FILE]"
 //usage:#define nandwrite_full_usage "\n\n"
 //usage:	"Write to MTD_DEVICE\n"
+//usage:     "\n	-n	Write without ecc"
 //usage:     "\n	-p	Pad to page size"
 //usage:     "\n	-s ADDR	Start address"
 
 //usage:#define nanddump_trivial_usage
-//usage:	"[-o]" IF_LONG_OPTS(" [--bb=padbad|skipbad]") " [-s ADDR] [-l LEN] [-f FILE] MTD_DEVICE"
+//usage:	"[-no]" IF_LONG_OPTS(" [--bb=padbad|skipbad]") " [-s ADDR] [-l LEN] [-f FILE] MTD_DEVICE"
 //usage:#define nanddump_full_usage "\n\n"
 //usage:	"Dump MTD_DEVICE\n"
+//usage:     "\n	-n	Read without ecc"
 //usage:     "\n	-o	Dump oob data"
 //usage:     "\n	-s ADDR	Start address"
 //usage:     "\n	-l LEN	Length"
@@ -60,7 +62,8 @@
 #define OPT_s  (1 << 1)
 #define OPT_f  (1 << 2)
 #define OPT_l  (1 << 3)
-#define OPT_bb (1 << 4) /* must be the last one in the list */
+#define OPT_n  (1 << 4)
+#define OPT_bb (1 << 5) /* must be the last one in the list */
 
 #define BB_PADBAD (1 << 0)
 #define BB_SKIPBAD (1 << 1)
@@ -125,10 +128,10 @@ int nandwrite_main(int argc UNUSED_PARAM, char **argv)
 		applet_long_options =
 			"bb\0" Required_argument "\xff"; /* no short equivalent */
 #endif
-		opts = getopt32(argv, "os:f:l:", &opt_s, &opt_f, &opt_l, &opt_bb);
+		opts = getopt32(argv, "os:f:l:n", &opt_s, &opt_f, &opt_l, &opt_bb);
 	} else { /* nandwrite */
 		opt_complementary = "-1:?2";
-		opts = getopt32(argv, "ps:", &opt_s);
+		opts = getopt32(argv, "ps:n", &opt_s);
 	}
 	argv += optind;
 
@@ -144,6 +147,9 @@ int nandwrite_main(int argc UNUSED_PARAM, char **argv)
 	fd = xopen(argv[0], IS_NANDWRITE ? O_RDWR : O_RDONLY);
 	xioctl(fd, MEMGETINFO, &meminfo);
 
+	if ((opts & OPT_n) && ioctl(fd, MTDFILEMODE, MTD_FILE_MODE_RAW))
+		bb_simple_perror_msg_and_die("MTDFILEMODE");
+
 	mtdoffset = xstrtou(opt_s, 0);
 	if (IS_NANDDUMP && (opts & OPT_l)) {
 		unsigned length = xstrtou(opt_l, 0);
-- 
2.4.0

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic