mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00
Make write granularity a chip attribute
Corresponding to flashrom svn r1651. Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
This commit is contained in:
parent
352e50b79e
commit
50d67aaa79
3
flash.h
3
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.
|
* - 256 bytes: If less than 256 bytes are written, the contents of the unwritten bytes are undefined.
|
||||||
*/
|
*/
|
||||||
enum write_granularity {
|
enum write_granularity {
|
||||||
|
write_gran_256bytes = 0, /* We assume 256 byte granularity by default. */
|
||||||
write_gran_1bit,
|
write_gran_1bit,
|
||||||
write_gran_1byte,
|
write_gran_1byte,
|
||||||
write_gran_256bytes,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -162,6 +162,7 @@ struct flashchip {
|
|||||||
uint16_t min;
|
uint16_t min;
|
||||||
uint16_t max;
|
uint16_t max;
|
||||||
} voltage;
|
} voltage;
|
||||||
|
enum write_granularity gran;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct flashctx {
|
struct flashctx {
|
||||||
|
@ -1273,7 +1273,7 @@ static int erase_and_write_block_helper(struct flashctx *flash,
|
|||||||
{
|
{
|
||||||
unsigned int starthere = 0, lenhere = 0;
|
unsigned int starthere = 0, lenhere = 0;
|
||||||
int ret = 0, skip = 1, writecount = 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
|
/* curcontents and newcontents are opaque to walk_eraseregions, and
|
||||||
* need to be adjusted here to keep the impression of proper abstraction
|
* 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;
|
curcontents += start;
|
||||||
newcontents += start;
|
newcontents += start;
|
||||||
msg_cdbg(":");
|
msg_cdbg(":");
|
||||||
/* FIXME: Assume 256 byte granularity for now to play it safe. */
|
|
||||||
if (need_erase(curcontents, newcontents, len, gran)) {
|
if (need_erase(curcontents, newcontents, len, gran)) {
|
||||||
msg_cdbg("E");
|
msg_cdbg("E");
|
||||||
ret = erasefn(flash, start, len);
|
ret = erasefn(flash, start, len);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user