[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