summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOllie Lho <ollie@sis.com.tw>2004-03-18 20:27:33 +0000
committerOllie Lho <ollie@sis.com.tw>2004-03-18 20:27:33 +0000
commit789ad3db351e53767d10b05fe9c2ed69757fa3ed (patch)
treed1a2668fbf61cadc9b37ee36a5eee97738b58f12
parentcf29de879843ec2293483eeb609191a834a4863c (diff)
downloadast2050-flashrom-789ad3db351e53767d10b05fe9c2ed69757fa3ed.zip
ast2050-flashrom-789ad3db351e53767d10b05fe9c2ed69757fa3ed.tar.gz
Fix stupid i++ evalution order bug
Corresponding to flashrom svn r9 and coreboot v2 svn r1435.
-rw-r--r--flash_rom.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/flash_rom.c b/flash_rom.c
index 13bb182..d57957d 100644
--- a/flash_rom.c
+++ b/flash_rom.c
@@ -141,7 +141,7 @@ int verify_flash (struct flashchip * flash, char * buf, int verbose)
volatile char * bios = flash->virt_addr;
printf("Verifying address: ");
- while (i++ < total_size) {
+ while (i < total_size) {
if (verbose)
printf("0x%08x", i);
if (*(bios+i) != *(buf+i)) {
@@ -150,6 +150,7 @@ int verify_flash (struct flashchip * flash, char * buf, int verbose)
}
if (verbose)
printf("\b\b\b\b\b\b\b\b\b\b");
+ i++
}
if (verbose)
printf("\n");
@@ -178,12 +179,12 @@ int main (int argc, char * argv[])
FILE * image;
struct flashchip * flash;
int opt;
- int read_it = 0, write_it = 0, verify_it = 0;
+ int read_it = 0, write_it = 0, verify_it = 0, verbose = 0;
char *filename = NULL;
setbuf(stdout, NULL);
- while ((opt = getopt(argc, argv, "rwvc:")) != EOF) {
+ while ((opt = getopt(argc, argv, "rwvVc:")) != EOF) {
switch (opt) {
case 'r':
read_it = 1;
@@ -197,6 +198,9 @@ int main (int argc, char * argv[])
case 'c':
chip_to_probe = strdup(optarg);
break;
+ case 'V':
+ verbose = 1;
+ break;
default:
usage(argv[0]);
break;
@@ -257,6 +261,6 @@ int main (int argc, char * argv[])
if (write_it || (!read_it && !verify_it))
flash->write (flash, buf);
if (verify_it)
- verify_flash (flash, buf, /* verbose = */ 0);
+ verify_flash (flash, buf, verbose);
return 0;
}
OpenPOWER on IntegriCloud