Patchwork Make write granularity a chip attribute.

login
register
about
Submitter Stefan Tauner
Date 2012-09-23 22:03:38
Message ID <1348437818-27933-1-git-send-email-stefan.tauner@student.tuwien.ac.at>
Download mbox | patch
Permalink /patch/3757/
State Superseded
Headers show

Comments

Stefan Tauner - 2012-09-23 22:03:38
Signed-off-by: Stefan Tauner <stefan.tauner@student.tuwien.ac.at>
---
First small step into that direction...

 flash.h    |    3 ++-
 flashrom.c |    3 +--
 2 files changed, 3 insertions(+), 3 deletions(-)

Patch

diff --git a/flash.h b/flash.h
index 4913536..f26b513 100644
--- a/flash.h
+++ b/flash.h
@@ -68,9 +68,9 @@  enum chipbustype {
  * - 256 bytes: If less than 256 bytes are written, the contents of the unwritten bytes are undefined.
  */
 enum write_granularity {
+	write_gran_256bytes = 0, /* FIXME: We assume 256 byte granularity for now to play it safe. */
 	write_gran_1bit,
 	write_gran_1byte,
-	write_gran_256bytes,
 };
 
 /*
@@ -162,6 +162,7 @@  struct flashchip {
 		uint16_t min;
 		uint16_t max;
 	} voltage;
+	enum write_granularity gran;
 };
 
 struct flashctx {
diff --git a/flashrom.c b/flashrom.c
index a887e3b..c084c03 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1237,7 +1237,7 @@  static int erase_and_write_block_helper(struct flashctx *flash,
 {
 	unsigned int starthere = 0, lenhere = 0;
 	int ret = 0, skip = 1, writecount = 0;
-	enum write_granularity gran = write_gran_256bytes; /* FIXME */
+	enum write_granularity gran = flash->chip->gran;
 
 	/* curcontents and newcontents are opaque to walk_eraseregions, and
 	 * need to be adjusted here to keep the impression of proper abstraction
@@ -1245,7 +1245,6 @@  static int erase_and_write_block_helper(struct flashctx *flash,
 	curcontents += start;
 	newcontents += start;
 	msg_cdbg(":");
-	/* FIXME: Assume 256 byte granularity for now to play it safe. */
 	if (need_erase(curcontents, newcontents, len, gran)) {
 		msg_cdbg("E");
 		ret = erasefn(flash, start, len);