From ea07f6245cb622a073a363112a95fea51429a086 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Wed, 24 Jun 2009 17:31:08 +0000 Subject: Always verify write operations automatically Should this be undesireable because of speed reasons, --noverify can be used to suppress an auto-verify. Corresponding to flashrom svn r631. Signed-off-by: Uwe Hermann Acked-by: Carl-Daniel Hailfinger Acked-by: Harald Gutmann --- flashrom.8 | 20 +++++++++++++++++--- flashrom.c | 13 +++++++++++-- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/flashrom.8 b/flashrom.8 index 423ee293..3dd76f74 100644 --- a/flashrom.8 +++ b/flashrom.8 @@ -2,9 +2,8 @@ .SH NAME flashrom \- detect, read, write, verify and erase flash chips .SH SYNOPSIS -.B flashrom \fR[\fB\-VfLzhR\fR] [\fB\-E\fR|\fB\-r\fR file|\fB\-w\fR file|\fB\-v\fR file] - [\fB\-c\fR chipname] [\fB\-m\fR [vendor:]part] - [\fB\-l\fR file] [\fB\-i\fR image] [\fB\-p\fR programmer] +.B flashrom \fR[\fB\-VfLzhRn\fR] [\fB\-E\fR|\fB\-r\fR file|\fB\-w\fR file|\fB\-v\fR file] [\fB\-c\fR chipname] + [\fB\-m\fR [vendor:]part] [\fB\-l\fR file] [\fB\-i\fR image] [\fB\-p\fR programmer] .SH DESCRIPTION .B flashrom is a utility for detecting, reading, writing, verifying and erasing flash @@ -38,6 +37,21 @@ Write file into flash ROM (default when .B is specified). .TP +.B "\-n, \-\-noverify" +Do +.B not +verify the flash ROM contents after writing them to the chip. Using this +option is +.B not +recommended, you should only use it if you know what you are doing and you +feel that the time for verification takes too long. +.sp +Typical usage is: +.B "flashrom -wn file" +.sp +This option is only useful in combination with +.BR \-\-write . +.TP .B "\-v, \-\-verify " Verify the flash ROM contents against the given .BR . diff --git a/flashrom.c b/flashrom.c index 97b086fd..7bc9b718 100644 --- a/flashrom.c +++ b/flashrom.c @@ -480,6 +480,7 @@ void usage(const char *name) (" -r | --read: read flash and save into file\n" " -w | --write: write file into flash\n" " -v | --verify: verify flash against file\n" + " -n | --noverify: don't verify flash against file\n" " -E | --erase: erase flash device\n" " -V | --verbose: more verbose output\n" " -c | --chip : probe only for specified flash chip\n" @@ -515,7 +516,7 @@ int main(int argc, char *argv[]) int option_index = 0; int force = 0; int read_it = 0, write_it = 0, erase_it = 0, verify_it = 0; - int list_supported = 0, list_supported_wiki = 0; + int dont_verify_it = 0, list_supported = 0, list_supported_wiki = 0; int operation_specified = 0; int ret = 0, i; @@ -524,6 +525,7 @@ int main(int argc, char *argv[]) {"write", 0, 0, 'w'}, {"erase", 0, 0, 'E'}, {"verify", 0, 0, 'v'}, + {"noverify", 0, 0, 'n'}, {"chip", 1, 0, 'c'}, {"mainboard", 1, 0, 'm'}, {"verbose", 0, 0, 'V'}, @@ -553,7 +555,7 @@ int main(int argc, char *argv[]) } setbuf(stdout, NULL); - while ((opt = getopt_long(argc, argv, "rRwvVEfc:m:l:i:p:Lzh", + while ((opt = getopt_long(argc, argv, "rRwvnVEfc:m:l:i:p:Lzh", long_options, &option_index)) != EOF) { switch (opt) { case 'r': @@ -580,6 +582,9 @@ int main(int argc, char *argv[]) } verify_it = 1; break; + case 'n': + dont_verify_it = 1; + break; case 'c': chip_to_probe = strdup(optarg); break; @@ -779,6 +784,10 @@ int main(int argc, char *argv[]) exit(1); } + /* Always verify write operations unless -n is used. */ + if (write_it && !dont_verify_it) + verify_it = 1; + size = flash->total_size * 1024; buf = (uint8_t *) calloc(size, sizeof(char)); -- cgit v1.2.3