check whether SST FWH chip was successfully erased on flashchip -E, too

(trivial)

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3153 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer 2008-03-16 19:44:13 +00:00 committed by Stefan Reinauer
parent 568667da20
commit dd6877a46d
1 changed files with 11 additions and 9 deletions

View File

@ -63,10 +63,19 @@ int erase_sst_fwhub(struct flashchip *flash)
{
int i;
unsigned int total_size = flash->total_size * 1024;
volatile uint8_t *bios = flash->virtual_memory;
for (i = 0; i < total_size; i += flash->page_size)
erase_sst_fwhub_block(flash, i);
// dumb check if erase was successful.
for (i = 0; i < total_size; i++) {
if (bios[i] != 0xff) {
printf("ERASE FAILED!\n");
return -1;
}
}
return 0;
}
@ -78,15 +87,8 @@ int write_sst_fwhub(struct flashchip *flash, uint8_t *buf)
volatile uint8_t *bios = flash->virtual_memory;
// FIXME: We want block wide erase instead of ironing the whole chip
erase_sst_fwhub(flash);
// dumb check if erase was successful.
for (i = 0; i < total_size; i++) {
if (bios[i] != 0xff) {
printf("ERASE FAILED!\n");
if (erase_sst_fwhub(flash))
return -1;
}
}
printf("Programming page: ");
for (i = 0; i < total_size / page_size; i++) {