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(-)
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);