summaryrefslogtreecommitdiff
path: root/sb600spi.c
diff options
context:
space:
mode:
authorhailfinger <hailfinger@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2009-10-01 13:16:32 +0000
committerhailfinger <hailfinger@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2009-10-01 13:16:32 +0000
commit3e459362bed7d3b8648c3ebbe7996aed159ea798 (patch)
treee94909e0b3b7bd53dcee2d46ce51d1423d0483f5 /sb600spi.c
parent336bdc479d6a021fddacf84d29fb588fe9db99b3 (diff)
downloadflashrom-3e459362bed7d3b8648c3ebbe7996aed159ea798.tar.gz
Introduce proper error checking for SPI programming.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@739 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'sb600spi.c')
-rw-r--r--sb600spi.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sb600spi.c b/sb600spi.c
index 5965b3b..87f1cc1 100644
--- a/sb600spi.c
+++ b/sb600spi.c
@@ -48,9 +48,9 @@ int sb600_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
/* FIXME: SB600 can write 5 bytes per transaction. */
int sb600_spi_write_1(struct flashchip *flash, uint8_t *buf)
{
- int rc = 0, i;
+ int i;
int total_size = flash->total_size * 1024;
- int result;
+ int result = 0;
spi_disable_blockprotect();
/* Erase first */
@@ -63,10 +63,10 @@ int sb600_spi_write_1(struct flashchip *flash, uint8_t *buf)
printf("Programming flash");
for (i = 0; i < total_size; i++, buf++) {
- result = spi_byte_program(i, *buf);
+ result = spi_nbyte_program(i, buf, 1);
if (result) {
- // spi_byte_program reported the error for us already
- printf_debug("... continuing anyway.\n");
+ fprintf(stderr, "Write error!\n");
+ return result;
}
/* wait program complete. */
@@ -76,7 +76,7 @@ int sb600_spi_write_1(struct flashchip *flash, uint8_t *buf)
;
}
printf(" done.\n");
- return rc;
+ return result;
}
static void reset_internal_fifo_pointer(void)