mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 23:22:37 +02:00
Continue erase/write verification after the first error
The first error is printed in detail and all subsequent errors are listed in statistics. This allows users to check if there was just one error or if the failure was widespread. Corresponding to flashrom svn r663. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Reinauer <stepan@coresystems.de>
This commit is contained in:
parent
32961be12d
commit
49b9cab392
19
flashrom.c
19
flashrom.c
@ -278,6 +278,7 @@ int verify_range(struct flashchip *flash, uint8_t *cmpbuf, int start, int len, c
|
||||
int i, j, starthere, lenhere, ret = 0;
|
||||
int page_size = flash->page_size;
|
||||
uint8_t *readbuf = malloc(page_size);
|
||||
int failcount = 0;
|
||||
|
||||
if (!len)
|
||||
goto out_free;
|
||||
@ -318,15 +319,21 @@ int verify_range(struct flashchip *flash, uint8_t *cmpbuf, int start, int len, c
|
||||
flash->read(flash, readbuf, starthere, lenhere);
|
||||
for (j = 0; j < lenhere; j++) {
|
||||
if (cmpbuf[starthere - start + j] != readbuf[j]) {
|
||||
fprintf(stderr, "%s FAILED at 0x%08x! "
|
||||
"Expected=0x%02x, Read=0x%02x\n",
|
||||
message, starthere + j,
|
||||
cmpbuf[starthere - start + j], readbuf[j]);
|
||||
ret = -1;
|
||||
goto out_free;
|
||||
/* Only print the first failure. */
|
||||
if (!failcount++)
|
||||
fprintf(stderr, "%s FAILED at 0x%08x! "
|
||||
"Expected=0x%02x, Read=0x%02x,",
|
||||
message, starthere + j,
|
||||
cmpbuf[starthere - start + j],
|
||||
readbuf[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (failcount) {
|
||||
fprintf(stderr, " failed byte count from 0x%08x-0x%08x: 0x%x\n",
|
||||
start, start + len - 1, failcount);
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
out_free:
|
||||
free(readbuf);
|
||||
|
Loading…
x
Reference in New Issue
Block a user