summaryrefslogtreecommitdiffstats
path: root/spi.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-10-01 13:16:32 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-10-01 13:16:32 +0000
commitaa2d79289131659e710c86ca9baa44ebd5b7ed34 (patch)
treee94909e0b3b7bd53dcee2d46ce51d1423d0483f5 /spi.c
parent643130468b20af1a1dbd94e69a46343d493cf574 (diff)
downloadflashrom-aa2d79289131659e710c86ca9baa44ebd5b7ed34.zip
flashrom-aa2d79289131659e710c86ca9baa44ebd5b7ed34.tar.gz
Introduce proper error checking for SPI programming
Corresponding to flashrom svn r739. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Reinauer <stepan@coresystems.de>
Diffstat (limited to 'spi.c')
-rw-r--r--spi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/spi.c b/spi.c
index 8b3f6d9..cfb6966 100644
--- a/spi.c
+++ b/spi.c
@@ -970,7 +970,7 @@ int spi_chip_read(struct flashchip *flash, uint8_t *buf, int start, int len)
int spi_chip_write_1(struct flashchip *flash, uint8_t *buf)
{
int total_size = 1024 * flash->total_size;
- int i;
+ int i, result = 0;
spi_disable_blockprotect();
/* Erase first */
@@ -981,7 +981,9 @@ int spi_chip_write_1(struct flashchip *flash, uint8_t *buf)
}
printf("done.\n");
for (i = 0; i < total_size; i++) {
- spi_byte_program(i, buf[i]);
+ result = spi_byte_program(i, buf[i]);
+ if (result)
+ return 1;
while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
programmer_delay(10);
}
OpenPOWER on IntegriCloud