[PATCH] Introduce proper error checking for SPI programming
Introduce proper error checking for SPI programming. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Index: flashrom-spi_program_errorcheck/spi.c =================================================================== --- flashrom-spi_program_errorcheck/spi.c (Revision 725) +++ flashrom-spi_program_errorcheck/spi.c (Arbeitskopie) @@ -971,7 +971,7 @@ 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 */ @@ -982,7 +982,9 @@ } 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); } Index: flashrom-spi_program_errorcheck/sb600spi.c =================================================================== --- flashrom-spi_program_errorcheck/sb600spi.c (Revision 725) +++ flashrom-spi_program_errorcheck/sb600spi.c (Arbeitskopie) @@ -48,9 +48,9 @@ /* 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 @@ 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 @@ ; } printf(" done.\n"); - return rc; + return result; } static void reset_internal_fifo_pointer(void) -- http://www.hailfinger.org/
On 16.09.2009 17:37, Carl-Daniel Hailfinger wrote:
Introduce proper error checking for SPI programming.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Ping? Regards, Carl-Daniel -- http://www.hailfinger.org/
Carl-Daniel Hailfinger wrote:
On 16.09.2009 17:37, Carl-Daniel Hailfinger wrote:
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>
-- coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br. Tel.: +49 761 7668825 • Fax: +49 761 7664613 Email: info@coresystems.de • http://www.coresystems.de/ Registergericht: Amtsgericht Freiburg • HRB 7656 Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866
On 01.10.2009 13:12, Stefan Reinauer wrote:
Carl-Daniel Hailfinger wrote:
On 16.09.2009 17:37, Carl-Daniel Hailfinger wrote:
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>
Thanks, r739. Regards, Carl-Daniel -- http://www.hailfinger.org/
participants (2)
-
Carl-Daniel Hailfinger -
Stefan Reinauer