diff --git a/chipdrivers.h b/chipdrivers.h index d9b2dc721f2099e6767303a4eb3c731f050bed5d..7fe3202836be248e35dfc9fcd52c3592a4b8443c 100644 --- a/chipdrivers.h +++ b/chipdrivers.h @@ -136,10 +136,8 @@ int unlock_lh28f008bjt(struct flashctx *flash); /* jedec.c */ uint8_t oddparity(uint8_t val); -void toggle_ready_jedec(struct flashctx *flash, chipaddr dst); -void data_polling_jedec(struct flashctx *flash, chipaddr dst, uint8_t data); -int write_byte_program_jedec(struct flashctx *flash, chipaddr bios, uint8_t *src, - chipaddr dst); +void toggle_ready_jedec(const struct flashctx *flash, chipaddr dst); +void data_polling_jedec(const struct flashctx *flash, chipaddr dst, uint8_t data); int probe_jedec(struct flashctx *flash); int write_jedec(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len); int write_jedec_1(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len); diff --git a/jedec.c b/jedec.c index be4782af22511d3dc82caa1480b1249e21d85e45..08cc88ba2e9ecb27e3df3edb256ca9f5b5933a7d 100644 --- a/jedec.c +++ b/jedec.c @@ -23,6 +23,7 @@ */ #include "flash.h" +#include "chipdrivers.h" #define MAX_REFLASH_TRIES 0x10 #define MASK_FULL 0xffff @@ -111,8 +112,7 @@ static unsigned int getaddrmask(const struct flashchip *chip) } } -static void start_program_jedec_common(struct flashctx *flash, - unsigned int mask) +static void start_program_jedec_common(const struct flashctx *flash, unsigned int mask) { chipaddr bios = flash->virtual_memory; chip_writeb(flash, 0xAA, bios + (0x5555 & mask)); @@ -328,7 +328,7 @@ static int erase_chip_jedec_common(struct flashctx *flash, unsigned int mask) return 0; } -static int write_byte_program_jedec_common(struct flashctx *flash, uint8_t *src, +static int write_byte_program_jedec_common(const struct flashctx *flash, const uint8_t *src, chipaddr dst, unsigned int mask) { int tried = 0, failed = 0; @@ -358,7 +358,7 @@ retry: } /* chunksize is 1 */ -int write_jedec_1(struct flashctx *flash, uint8_t *src, unsigned int start, +int write_jedec_1(struct flashctx *flash, const uint8_t *src, unsigned int start, unsigned int len) { int i, failed = 0; @@ -380,11 +380,11 @@ int write_jedec_1(struct flashctx *flash, uint8_t *src, unsigned int start, return failed; } -static int write_page_write_jedec_common(struct flashctx *flash, uint8_t *src, +static int write_page_write_jedec_common(struct flashctx *flash, const uint8_t *src, unsigned int start, unsigned int page_size) { int i, tried = 0, failed; - uint8_t *s = src; + const uint8_t *s = src; chipaddr bios = flash->virtual_memory; chipaddr dst = bios + start; chipaddr d = dst; @@ -428,7 +428,7 @@ retry: * This function is a slightly modified copy of spi_write_chunked. * Each page is written separately in chunks with a maximum size of chunksize. */ -int write_jedec(struct flashctx *flash, uint8_t *buf, unsigned int start, +int write_jedec(struct flashctx *flash, const uint8_t *buf, unsigned int start, int unsigned len) { unsigned int i, starthere, lenhere;