mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-01 14:11:15 +02:00
Replace remaining explicit erases in SPI programmer drivers with auto-erases
Some SPI chip drivers and the generic 1-byte SPI chip write functions didn't include the automatic erase present in other chip drivers. Since the majority is definitely auto-erase, change the remaining explicit-erase cases to be auto-erase as well. Corresponding to flashrom svn r673. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Carlos Arnau Perez <cemede@gmail.com>
This commit is contained in:
10
ft2232_spi.c
10
ft2232_spi.c
@ -271,6 +271,14 @@ int ft2232_spi_write_256(struct flashchip *flash, uint8_t *buf)
|
||||
int total_size = 1024 * flash->total_size;
|
||||
int i;
|
||||
|
||||
spi_disable_blockprotect();
|
||||
/* Erase first */
|
||||
printf("Erasing flash before programming... ");
|
||||
if (flash->erase(flash)) {
|
||||
fprintf(stderr, "ERASE FAILED!\n");
|
||||
return -1;
|
||||
}
|
||||
printf("done.\n");
|
||||
printf_debug("total_size is %d\n", total_size);
|
||||
for (i = 0; i < total_size; i += 256) {
|
||||
int l, r;
|
||||
@ -281,14 +289,12 @@ int ft2232_spi_write_256(struct flashchip *flash, uint8_t *buf)
|
||||
|
||||
if ((r = spi_nbyte_program(i, &buf[i], l))) {
|
||||
fprintf(stderr, "%s: write fail %d\n", __FUNCTION__, r);
|
||||
// spi_write_disable(); chip does this for us
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
|
||||
/* loop */;
|
||||
}
|
||||
// spi_write_disable(); chip does this for us
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user