summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstefanct <stefanct@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2013-03-03 23:49:48 +0000
committerstefanct <stefanct@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2013-03-03 23:49:48 +0000
commit2a350e4cad55957cb5ee6f13f9b4495fb2773915 (patch)
treef1b620f41753f30ca126947b6e634156fea996cb
parent32faf52dcfcd0f5d5ad93161b1127bb9f4a6d380 (diff)
downloadflashrom-2a350e4cad55957cb5ee6f13f9b4495fb2773915.tar.gz
Make write granularity a chip attribute.
Signed-off-by: Stefan Tauner <stefan.tauner@student.tuwien.ac.at> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@1651 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--flash.h3
-rw-r--r--flashrom.c3
2 files changed, 3 insertions, 3 deletions
diff --git a/flash.h b/flash.h
index a479286..9c4b0ac 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, /* We assume 256 byte granularity by default. */
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 e1be398..225b6f0 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1273,7 +1273,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
@@ -1281,7 +1281,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);