Instead of checking the first byte only, the whole part is checked now. This
will detect any improper erase, closes #31 Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2494 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
c65113cec7
commit
f7980d8941
|
@ -95,14 +95,17 @@ int write_sst_fwhub(struct flashchip *flash, uint8_t *buf)
|
|||
flash->page_size;
|
||||
volatile uint8_t *bios = flash->virt_addr;
|
||||
|
||||
// Do we want block wide erase?
|
||||
// FIXME: We want block wide erase instead of ironing the whole chip
|
||||
erase_sst_fwhub(flash);
|
||||
|
||||
// FIXME: This test is not sufficient!
|
||||
if (*bios != 0xff) {
|
||||
printf("ERASE FAILED\n");
|
||||
return -1;
|
||||
// dumb check if erase was successful.
|
||||
for (i=0; i < total_size; i++) {
|
||||
if (bios[i] != 0xff) {
|
||||
printf("ERASE FAILED\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
printf("Programming Page: ");
|
||||
for (i = 0; i < total_size / page_size; i++) {
|
||||
printf("%04d at address: 0x%08x", i, i * page_size);
|
||||
|
|
Loading…
Reference in New Issue