Author: hailfinger Date: Tue Nov 23 22:28:16 2010 New Revision: 1235 URL: http://flashrom.org/trac/flashrom/changeset/1235
Log: Add chunked write ability to the Dediprog SF100 driver.
Please note that the write speedup only applies to chips which have SPI page write (i.e. chips using spi_chip_write_256).
This is a quick fix for write speed until I get around to implementing full bulk SPI write support.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net Acked-by: Richard A. Smith richard@laptop.org Acked-by: Mathias Krause mathias.krause@secunet.com
Modified: trunk/dediprog.c trunk/programmer.h trunk/spi.c
Modified: trunk/dediprog.c ============================================================================== --- trunk/dediprog.c Tue Nov 16 22:25:29 2010 (r1234) +++ trunk/dediprog.c Tue Nov 23 22:28:16 2010 (r1235) @@ -238,6 +238,12 @@ return 0; }
+int dediprog_spi_write_256(struct flashchip *flash, uint8_t *buf, int start, int len) +{ + /* No idea about the real limit. Maybe 12, maybe more, maybe less. */ + return spi_write_chunked(flash, buf, start, len, 12); +} + int dediprog_spi_send_command(unsigned int writecnt, unsigned int readcnt, const unsigned char *writearr, unsigned char *readarr) { @@ -245,7 +251,7 @@
msg_pspew("%s, writecnt=%i, readcnt=%i\n", __func__, writecnt, readcnt); /* Paranoid, but I don't want to be blamed if anything explodes. */ - if (writecnt > 5) { + if (writecnt > 16) { msg_perr("Untested writecnt=%i, aborting.\n", writecnt); return 1; }
Modified: trunk/programmer.h ============================================================================== --- trunk/programmer.h Tue Nov 16 22:25:29 2010 (r1234) +++ trunk/programmer.h Tue Nov 23 22:28:16 2010 (r1235) @@ -472,6 +472,7 @@ int dediprog_shutdown(void); int dediprog_spi_send_command(unsigned int writecnt, unsigned int readcnt, const unsigned char *writearr, unsigned char *readarr); int dediprog_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len); +int dediprog_spi_write_256(struct flashchip *flash, uint8_t *buf, int start, int len);
/* flashrom.c */ struct decode_sizes {
Modified: trunk/spi.c ============================================================================== --- trunk/spi.c Tue Nov 16 22:25:29 2010 (r1234) +++ trunk/spi.c Tue Nov 23 22:28:16 2010 (r1235) @@ -124,7 +124,7 @@ .command = dediprog_spi_send_command, .multicommand = default_spi_send_multicommand, .read = dediprog_spi_read, - .write_256 = spi_chip_write_1, + .write_256 = dediprog_spi_write_256, }, #endif