summaryrefslogtreecommitdiffstats
path: root/spi.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-08-10 02:29:21 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-08-10 02:29:21 +0000
commit116081a224c3b36a4a7d940cfdb1dac1ba35fc75 (patch)
treee82fbd5e39ffa638a9f56d93e90f0f520d392a53 /spi.c
parentdb41c59e3ba625659e397675384b08b4ec967fe6 (diff)
downloadast2050-flashrom-116081a224c3b36a4a7d940cfdb1dac1ba35fc75.zip
ast2050-flashrom-116081a224c3b36a4a7d940cfdb1dac1ba35fc75.tar.gz
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>
Diffstat (limited to 'spi.c')
-rw-r--r--spi.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/spi.c b/spi.c
index b2812ba..85d1e47 100644
--- a/spi.c
+++ b/spi.c
@@ -963,6 +963,13 @@ int spi_chip_write_1(struct flashchip *flash, uint8_t *buf)
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");
for (i = 0; i < total_size; i++) {
spi_byte_program(i, buf[i]);
while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
OpenPOWER on IntegriCloud