[flashrom] [commit] r1235 - trunk
repository service
svn at flashrom.org
Tue Nov 23 22:28:17 CET 2010
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 at gmx.net>
Acked-by: Richard A. Smith <richard at laptop.org>
Acked-by: Mathias Krause <mathias.krause at 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
More information about the flashrom
mailing list