1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-26 22:52:34 +02:00

Add 'const' keyword to chip write and other function prototypes

Corresponding to flashrom svn r1789.

Inspired by and mostly based on a patch
Signed-off-by: Mark Marshall <mark.marshall@omicron.at>

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
This commit is contained in:
Mark Marshall 2014-05-09 21:16:21 +00:00 committed by Stefan Tauner
parent 20da4aa82c
commit f20b7beff0
19 changed files with 82 additions and 117 deletions

View File

@ -142,8 +142,7 @@ int erase_block_82802ab(struct flashctx *flash, unsigned int page,
} }
/* chunksize is 1 */ /* chunksize is 1 */
int write_82802ab(struct flashctx *flash, uint8_t *src, unsigned int start, int write_82802ab(struct flashctx *flash, const uint8_t *src, unsigned int start, unsigned int len)
unsigned int len)
{ {
int i; int i;
chipaddr dst = flash->virtual_memory + start; chipaddr dst = flash->virtual_memory + start;

View File

@ -460,7 +460,7 @@ int spi_erase_at45cs_sector(struct flashctx *flash, unsigned int addr, unsigned
return at45db_erase(flash, opcode, at45db_convert_addr(addr, page_size), 200000, 100); return at45db_erase(flash, opcode, at45db_convert_addr(addr, page_size), 200000, 100);
} }
static int at45db_fill_buffer1(struct flashctx *flash, uint8_t *bytes, unsigned int off, unsigned int len) static int at45db_fill_buffer1(struct flashctx *flash, const uint8_t *bytes, unsigned int off, unsigned int len)
{ {
const unsigned int page_size = flash->chip->page_size; const unsigned int page_size = flash->chip->page_size;
if ((off + len) > page_size) { if ((off + len) > page_size) {
@ -518,7 +518,7 @@ static int at45db_commit_buffer1(struct flashctx *flash, unsigned int at45db_add
return 0; return 0;
} }
static int at45db_program_page(struct flashctx *flash, uint8_t *buf, unsigned int at45db_addr) static int at45db_program_page(struct flashctx *flash, const uint8_t *buf, unsigned int at45db_addr)
{ {
int ret = at45db_fill_buffer1(flash, buf, 0, flash->chip->page_size); int ret = at45db_fill_buffer1(flash, buf, 0, flash->chip->page_size);
if (ret != 0) { if (ret != 0) {
@ -535,7 +535,7 @@ static int at45db_program_page(struct flashctx *flash, uint8_t *buf, unsigned in
return 0; return 0;
} }
int spi_write_at45db(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) int spi_write_at45db(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
{ {
const unsigned int page_size = flash->chip->page_size; const unsigned int page_size = flash->chip->page_size;
const unsigned int total_size = flash->chip->total_size; const unsigned int total_size = flash->chip->total_size;

View File

@ -28,8 +28,8 @@
#include "flash.h" /* for chipaddr and flashctx */ #include "flash.h" /* for chipaddr and flashctx */
/* spi.c */ /* spi.c */
int spi_aai_write(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_aai_write(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_chip_write_256(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len); int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len);
/* spi25.c */ /* spi25.c */
@ -54,12 +54,12 @@ int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int b
int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
int spi_block_erase_db(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_block_erase_db(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode); erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode);
int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_chip_write_1(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int spi_byte_program(struct flashctx *flash, unsigned int addr, uint8_t databyte); int spi_byte_program(struct flashctx *flash, unsigned int addr, uint8_t databyte);
int spi_nbyte_program(struct flashctx *flash, unsigned int addr, uint8_t *bytes, unsigned int len); int spi_nbyte_program(struct flashctx *flash, unsigned int addr, const uint8_t *bytes, unsigned int len);
int spi_nbyte_read(struct flashctx *flash, unsigned int addr, uint8_t *bytes, unsigned int len); int spi_nbyte_read(struct flashctx *flash, unsigned int addr, uint8_t *bytes, unsigned int len);
int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize);
int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); int spi_write_chunked(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize);
/* spi25_statusreg.c */ /* spi25_statusreg.c */
uint8_t spi_read_status_register(struct flashctx *flash); uint8_t spi_read_status_register(struct flashctx *flash);
@ -107,7 +107,7 @@ int probe_spi_sfdp(struct flashctx *flash);
/* opaque.c */ /* opaque.c */
int probe_opaque(struct flashctx *flash); int probe_opaque(struct flashctx *flash);
int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
int write_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int write_opaque(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int erase_opaque(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); int erase_opaque(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen);
/* at45db.c */ /* at45db.c */
@ -116,7 +116,7 @@ int spi_prettyprint_status_register_at45db(struct flashctx *flash);
int spi_disable_blockprotect_at45db(struct flashctx *flash); int spi_disable_blockprotect_at45db(struct flashctx *flash);
int spi_read_at45db(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_read_at45db(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
int spi_read_at45db_e8(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_read_at45db_e8(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
int spi_write_at45db(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_write_at45db(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int spi_erase_at45db_page(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_erase_at45db_page(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
int spi_erase_at45db_block(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_erase_at45db_block(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
int spi_erase_at45db_sector(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_erase_at45db_sector(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
@ -127,7 +127,7 @@ int spi_erase_at45cs_sector(struct flashctx *flash, unsigned int addr, unsigned
uint8_t wait_82802ab(struct flashctx *flash); uint8_t wait_82802ab(struct flashctx *flash);
int probe_82802ab(struct flashctx *flash); int probe_82802ab(struct flashctx *flash);
int erase_block_82802ab(struct flashctx *flash, unsigned int page, unsigned int pagesize); int erase_block_82802ab(struct flashctx *flash, unsigned int page, unsigned int pagesize);
int write_82802ab(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int write_82802ab(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
void print_status_82802ab(uint8_t status); void print_status_82802ab(uint8_t status);
int unlock_82802ab(struct flashctx *flash); int unlock_82802ab(struct flashctx *flash);
int unlock_28f004s5(struct flashctx *flash); int unlock_28f004s5(struct flashctx *flash);
@ -140,8 +140,8 @@ 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, int write_byte_program_jedec(struct flashctx *flash, chipaddr bios, uint8_t *src,
chipaddr dst); chipaddr dst);
int probe_jedec(struct flashctx *flash); int probe_jedec(struct flashctx *flash);
int write_jedec(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int write_jedec(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int write_jedec_1(struct flashctx *flash, 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);
int erase_sector_jedec(struct flashctx *flash, unsigned int page, unsigned int pagesize); int erase_sector_jedec(struct flashctx *flash, unsigned int page, unsigned int pagesize);
int erase_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize); int erase_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize);
int erase_chip_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize); int erase_chip_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize);
@ -150,7 +150,7 @@ int erase_chip_block_jedec(struct flashctx *flash, unsigned int page, unsigned i
int probe_m29f400bt(struct flashctx *flash); int probe_m29f400bt(struct flashctx *flash);
int block_erase_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len); int block_erase_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len);
int block_erase_chip_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len); int block_erase_chip_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len);
int write_m29f400bt(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int write_m29f400bt(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
void protect_m29f400bt(struct flashctx *flash, chipaddr bios); void protect_m29f400bt(struct flashctx *flash, chipaddr bios);
/* pm49fl00x.c */ /* pm49fl00x.c */
@ -160,7 +160,7 @@ int lock_49fl00x(struct flashctx *flash);
/* sst28sf040.c */ /* sst28sf040.c */
int erase_chip_28sf040(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int erase_chip_28sf040(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
int erase_sector_28sf040(struct flashctx *flash, unsigned int address, unsigned int sector_size); int erase_sector_28sf040(struct flashctx *flash, unsigned int address, unsigned int sector_size);
int write_28sf040(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int write_28sf040(struct flashctx *flash, const uint8_t *buf,unsigned int start, unsigned int len);
int unprotect_28sf040(struct flashctx *flash); int unprotect_28sf040(struct flashctx *flash);
int protect_28sf040(struct flashctx *flash); int protect_28sf040(struct flashctx *flash);
@ -202,6 +202,6 @@ int unlock_stm50_nonuniform(struct flashctx *flash);
int probe_en29lv640b(struct flashctx *flash); int probe_en29lv640b(struct flashctx *flash);
int block_erase_en29lv640b(struct flashctx *flash, unsigned int start, unsigned int len); int block_erase_en29lv640b(struct flashctx *flash, unsigned int start, unsigned int len);
int block_erase_chip_en29lv640b(struct flashctx *flash, unsigned int start, unsigned int len); int block_erase_chip_en29lv640b(struct flashctx *flash, unsigned int start, unsigned int len);
int write_en29lv640b(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int write_en29lv640b(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
#endif /* !__CHIPDRIVERS_H__ */ #endif /* !__CHIPDRIVERS_H__ */

View File

@ -96,28 +96,18 @@ static const uint8_t sfdp_table[] = {
static unsigned int spi_write_256_chunksize = 256; static unsigned int spi_write_256_chunksize = 256;
static int dummy_spi_send_command(struct flashctx *flash, unsigned int writecnt, static int dummy_spi_send_command(struct flashctx *flash, unsigned int writecnt, unsigned int readcnt,
unsigned int readcnt, const unsigned char *writearr, unsigned char *readarr);
const unsigned char *writearr, static int dummy_spi_write_256(struct flashctx *flash, const uint8_t *buf,
unsigned char *readarr);
static int dummy_spi_write_256(struct flashctx *flash, uint8_t *buf,
unsigned int start, unsigned int len); unsigned int start, unsigned int len);
static void dummy_chip_writeb(const struct flashctx *flash, uint8_t val, static void dummy_chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr);
chipaddr addr); static void dummy_chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr);
static void dummy_chip_writew(const struct flashctx *flash, uint16_t val, static void dummy_chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr);
chipaddr addr); static void dummy_chip_writen(const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len);
static void dummy_chip_writel(const struct flashctx *flash, uint32_t val, static uint8_t dummy_chip_readb(const struct flashctx *flash, const chipaddr addr);
chipaddr addr); static uint16_t dummy_chip_readw(const struct flashctx *flash, const chipaddr addr);
static void dummy_chip_writen(const struct flashctx *flash, uint8_t *buf, static uint32_t dummy_chip_readl(const struct flashctx *flash, const chipaddr addr);
chipaddr addr, size_t len); static void dummy_chip_readn(const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len);
static uint8_t dummy_chip_readb(const struct flashctx *flash,
const chipaddr addr);
static uint16_t dummy_chip_readw(const struct flashctx *flash,
const chipaddr addr);
static uint32_t dummy_chip_readl(const struct flashctx *flash,
const chipaddr addr);
static void dummy_chip_readn(const struct flashctx *flash, uint8_t *buf,
const chipaddr addr, size_t len);
static const struct spi_programmer spi_programmer_dummyflasher = { static const struct spi_programmer spi_programmer_dummyflasher = {
.type = SPI_CONTROLLER_DUMMY, .type = SPI_CONTROLLER_DUMMY,
@ -427,26 +417,22 @@ void dummy_unmap(void *virt_addr, size_t len)
msg_pspew("%s: Unmapping 0x%zx bytes at %p\n", __func__, len, virt_addr); msg_pspew("%s: Unmapping 0x%zx bytes at %p\n", __func__, len, virt_addr);
} }
static void dummy_chip_writeb(const struct flashctx *flash, uint8_t val, static void dummy_chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr)
chipaddr addr)
{ {
msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%02x\n", __func__, addr, val); msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%02x\n", __func__, addr, val);
} }
static void dummy_chip_writew(const struct flashctx *flash, uint16_t val, static void dummy_chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr)
chipaddr addr)
{ {
msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%04x\n", __func__, addr, val); msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%04x\n", __func__, addr, val);
} }
static void dummy_chip_writel(const struct flashctx *flash, uint32_t val, static void dummy_chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr)
chipaddr addr)
{ {
msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%08x\n", __func__, addr, val); msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%08x\n", __func__, addr, val);
} }
static void dummy_chip_writen(const struct flashctx *flash, uint8_t *buf, static void dummy_chip_writen(const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len)
chipaddr addr, size_t len)
{ {
size_t i; size_t i;
msg_pspew("%s: addr=0x%" PRIxPTR ", len=0x%zx, writing data (hex):", __func__, addr, len); msg_pspew("%s: addr=0x%" PRIxPTR ", len=0x%zx, writing data (hex):", __func__, addr, len);
@ -457,29 +443,25 @@ static void dummy_chip_writen(const struct flashctx *flash, uint8_t *buf,
} }
} }
static uint8_t dummy_chip_readb(const struct flashctx *flash, static uint8_t dummy_chip_readb(const struct flashctx *flash, const chipaddr addr)
const chipaddr addr)
{ {
msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xff\n", __func__, addr); msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xff\n", __func__, addr);
return 0xff; return 0xff;
} }
static uint16_t dummy_chip_readw(const struct flashctx *flash, static uint16_t dummy_chip_readw(const struct flashctx *flash, const chipaddr addr)
const chipaddr addr)
{ {
msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xffff\n", __func__, addr); msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xffff\n", __func__, addr);
return 0xffff; return 0xffff;
} }
static uint32_t dummy_chip_readl(const struct flashctx *flash, static uint32_t dummy_chip_readl(const struct flashctx *flash, const chipaddr addr)
const chipaddr addr)
{ {
msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xffffffff\n", __func__, addr); msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xffffffff\n", __func__, addr);
return 0xffffffff; return 0xffffffff;
} }
static void dummy_chip_readn(const struct flashctx *flash, uint8_t *buf, static void dummy_chip_readn(const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len)
const chipaddr addr, size_t len)
{ {
msg_pspew("%s: addr=0x%" PRIxPTR ", len=0x%zx, returning array of 0xff\n", __func__, addr, len); msg_pspew("%s: addr=0x%" PRIxPTR ", len=0x%zx, returning array of 0xff\n", __func__, addr, len);
memset(buf, 0xff, len); memset(buf, 0xff, len);
@ -846,8 +828,7 @@ static int dummy_spi_send_command(struct flashctx *flash, unsigned int writecnt,
return 0; return 0;
} }
static int dummy_spi_write_256(struct flashctx *flash, uint8_t *buf, static int dummy_spi_write_256(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
unsigned int start, unsigned int len)
{ {
return spi_write_chunked(flash, buf, start, len, return spi_write_chunked(flash, buf, start, len,
spi_write_256_chunksize); spi_write_256_chunksize);

View File

@ -31,8 +31,7 @@
*/ */
/* chunksize is 1 */ /* chunksize is 1 */
int write_en29lv640b(struct flashctx *flash, uint8_t *src, unsigned int start, int write_en29lv640b(struct flashctx *flash, const uint8_t *src, unsigned int start, unsigned int len)
unsigned int len)
{ {
int i; int i;
chipaddr bios = flash->virtual_memory; chipaddr bios = flash->virtual_memory;

12
flash.h
View File

@ -175,7 +175,7 @@ struct flashchip {
int (*printlock) (struct flashctx *flash); int (*printlock) (struct flashctx *flash);
int (*unlock) (struct flashctx *flash); int (*unlock) (struct flashctx *flash);
int (*write) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int (*write) (struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int (*read) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int (*read) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
struct voltage { struct voltage {
uint16_t min; uint16_t min;
@ -228,7 +228,7 @@ extern const struct flashchip flashchips[];
void chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr); void chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr);
void chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr); void chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr);
void chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr); void chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr);
void chip_writen(const struct flashctx *flash, uint8_t *buf, chipaddr addr, size_t len); void chip_writen(const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len);
uint8_t chip_readb(const struct flashctx *flash, const chipaddr addr); uint8_t chip_readb(const struct flashctx *flash, const chipaddr addr);
uint16_t chip_readw(const struct flashctx *flash, const chipaddr addr); uint16_t chip_readw(const struct flashctx *flash, const chipaddr addr);
uint32_t chip_readl(const struct flashctx *flash, const chipaddr addr); uint32_t chip_readl(const struct flashctx *flash, const chipaddr addr);
@ -253,8 +253,8 @@ int min(int a, int b);
int max(int a, int b); int max(int a, int b);
void tolower_string(char *str); void tolower_string(char *str);
char *extract_param(const char *const *haystack, const char *needle, const char *delim); char *extract_param(const char *const *haystack, const char *needle, const char *delim);
int verify_range(struct flashctx *flash, uint8_t *cmpbuf, unsigned int start, unsigned int len); int verify_range(struct flashctx *flash, const uint8_t *cmpbuf, unsigned int start, unsigned int len);
int need_erase(uint8_t *have, uint8_t *want, unsigned int len, enum write_granularity gran); int need_erase(const uint8_t *have, const uint8_t *want, unsigned int len, enum write_granularity gran);
char *strcat_realloc(char *dest, const char *src); char *strcat_realloc(char *dest, const char *src);
void print_version(void); void print_version(void);
void print_buildinfo(void); void print_buildinfo(void);
@ -263,7 +263,7 @@ void list_programmers_linebreak(int startcol, int cols, int paren);
int selfcheck(void); int selfcheck(void);
int doit(struct flashctx *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it); int doit(struct flashctx *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it);
int read_buf_from_file(unsigned char *buf, unsigned long size, const char *filename); int read_buf_from_file(unsigned char *buf, unsigned long size, const char *filename);
int write_buf_to_file(unsigned char *buf, unsigned long size, const char *filename); int write_buf_to_file(const unsigned char *buf, unsigned long size, const char *filename);
enum test_state { enum test_state {
OK = 0, OK = 0,
@ -327,7 +327,7 @@ __attribute__((format(printf, 2, 3)));
/* layout.c */ /* layout.c */
int register_include_arg(char *name); int register_include_arg(char *name);
int process_include_args(void); int process_include_args(void);
int read_romlayout(char *name); int read_romlayout(const char *name);
int normalize_romentries(const struct flashctx *flash); int normalize_romentries(const struct flashctx *flash);
int build_new_image(const struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents); int build_new_image(const struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents);
void layout_cleanup(void); void layout_cleanup(void);

View File

@ -463,8 +463,7 @@ void chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr)
flash->pgm->par.chip_writel(flash, val, addr); flash->pgm->par.chip_writel(flash, val, addr);
} }
void chip_writen(const struct flashctx *flash, uint8_t *buf, chipaddr addr, void chip_writen(const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len)
size_t len)
{ {
flash->pgm->par.chip_writen(flash, buf, addr, len); flash->pgm->par.chip_writen(flash, buf, addr, len);
} }
@ -627,7 +626,7 @@ static unsigned int count_usable_erasers(const struct flashctx *flash)
return usable_erasefunctions; return usable_erasefunctions;
} }
int compare_range(uint8_t *wantbuf, uint8_t *havebuf, unsigned int start, unsigned int len) static int compare_range(const uint8_t *wantbuf, const uint8_t *havebuf, unsigned int start, unsigned int len)
{ {
int ret = 0, failcount = 0; int ret = 0, failcount = 0;
unsigned int i; unsigned int i;
@ -671,7 +670,7 @@ int check_erased_range(struct flashctx *flash, unsigned int start,
* @len length of the verified area * @len length of the verified area
* @return 0 for success, -1 for failure * @return 0 for success, -1 for failure
*/ */
int verify_range(struct flashctx *flash, uint8_t *cmpbuf, unsigned int start, unsigned int len) int verify_range(struct flashctx *flash, const uint8_t *cmpbuf, unsigned int start, unsigned int len)
{ {
uint8_t *readbuf = malloc(len); uint8_t *readbuf = malloc(len);
int ret = 0; int ret = 0;
@ -710,7 +709,7 @@ out_free:
} }
/* Helper function for need_erase() that focuses on granularities of gran bytes. */ /* Helper function for need_erase() that focuses on granularities of gran bytes. */
static int need_erase_gran_bytes(uint8_t *have, uint8_t *want, unsigned int len, unsigned int gran) static int need_erase_gran_bytes(const uint8_t *have, const uint8_t *want, unsigned int len, unsigned int gran)
{ {
unsigned int i, j, limit; unsigned int i, j, limit;
for (j = 0; j < len / gran; j++) { for (j = 0; j < len / gran; j++) {
@ -740,7 +739,7 @@ static int need_erase_gran_bytes(uint8_t *have, uint8_t *want, unsigned int len,
* @gran write granularity (enum, not count) * @gran write granularity (enum, not count)
* @return 0 if no erase is needed, 1 otherwise * @return 0 if no erase is needed, 1 otherwise
*/ */
int need_erase(uint8_t *have, uint8_t *want, unsigned int len, enum write_granularity gran) int need_erase(const uint8_t *have, const uint8_t *want, unsigned int len, enum write_granularity gran)
{ {
int result = 0; int result = 0;
unsigned int i; unsigned int i;
@ -808,7 +807,7 @@ int need_erase(uint8_t *have, uint8_t *want, unsigned int len, enum write_granul
* in relation to the max write length of the programmer and the max write * in relation to the max write length of the programmer and the max write
* length of the chip. * length of the chip.
*/ */
static unsigned int get_next_write(uint8_t *have, uint8_t *want, unsigned int len, static unsigned int get_next_write(const uint8_t *have, const uint8_t *want, unsigned int len,
unsigned int *first_start, unsigned int *first_start,
enum write_granularity gran) enum write_granularity gran)
{ {
@ -1211,8 +1210,7 @@ int read_buf_from_file(unsigned char *buf, unsigned long size,
#endif #endif
} }
int write_buf_to_file(unsigned char *buf, unsigned long size, int write_buf_to_file(const unsigned char *buf, unsigned long size, const char *filename)
const char *filename)
{ {
#ifdef __LIBPAYLOAD__ #ifdef __LIBPAYLOAD__
msg_gerr("Error: No file I/O support in libpayload\n"); msg_gerr("Error: No file I/O support in libpayload\n");
@ -1456,8 +1454,7 @@ static int check_block_eraser(const struct flashctx *flash, int k, int log)
return 0; return 0;
} }
int erase_and_write_flash(struct flashctx *flash, uint8_t *oldcontents, int erase_and_write_flash(struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents)
uint8_t *newcontents)
{ {
int k, ret = 1; int k, ret = 1;
uint8_t *curcontents; uint8_t *curcontents;

View File

@ -1327,8 +1327,7 @@ static int ich_hwseq_read(struct flashctx *flash, uint8_t *buf,
return 0; return 0;
} }
static int ich_hwseq_write(struct flashctx *flash, uint8_t *buf, static int ich_hwseq_write(struct flashctx *flash, const uint8_t *buf, unsigned int addr, unsigned int len)
unsigned int addr, unsigned int len)
{ {
uint16_t hsfc; uint16_t hsfc;
uint16_t timeout = 100 * 60; uint16_t timeout = 100 * 60;

View File

@ -108,7 +108,7 @@ static int it8716f_spi_send_command(struct flashctx *flash,
unsigned char *readarr); unsigned char *readarr);
static int it8716f_spi_chip_read(struct flashctx *flash, uint8_t *buf, static int it8716f_spi_chip_read(struct flashctx *flash, uint8_t *buf,
unsigned int start, unsigned int len); unsigned int start, unsigned int len);
static int it8716f_spi_chip_write_256(struct flashctx *flash, uint8_t *buf, static int it8716f_spi_chip_write_256(struct flashctx *flash, const uint8_t *buf,
unsigned int start, unsigned int len); unsigned int start, unsigned int len);
static const struct spi_programmer spi_programmer_it87xx = { static const struct spi_programmer spi_programmer_it87xx = {
@ -347,8 +347,7 @@ static int it8716f_spi_send_command(struct flashctx *flash,
} }
/* Page size is usually 256 bytes */ /* Page size is usually 256 bytes */
static int it8716f_spi_page_program(struct flashctx *flash, uint8_t *buf, static int it8716f_spi_page_program(struct flashctx *flash, const uint8_t *buf, unsigned int start)
unsigned int start)
{ {
unsigned int i; unsigned int i;
int result; int result;
@ -393,7 +392,7 @@ static int it8716f_spi_chip_read(struct flashctx *flash, uint8_t *buf,
return 0; return 0;
} }
static int it8716f_spi_chip_write_256(struct flashctx *flash, uint8_t *buf, static int it8716f_spi_chip_write_256(struct flashctx *flash, const uint8_t *buf,
unsigned int start, unsigned int len) unsigned int start, unsigned int len)
{ {
const struct flashchip *chip = flash->chip; const struct flashchip *chip = flash->chip;

View File

@ -45,7 +45,7 @@ static char *include_args[MAX_ROMLAYOUT];
static int num_include_args = 0; /* the number of valid include_args. */ static int num_include_args = 0; /* the number of valid include_args. */
#ifndef __LIBPAYLOAD__ #ifndef __LIBPAYLOAD__
int read_romlayout(char *name) int read_romlayout(const char *name)
{ {
FILE *romlayout; FILE *romlayout;
char tempstr[256]; char tempstr[256];
@ -102,7 +102,7 @@ int read_romlayout(char *name)
#endif #endif
/* returns the index of the entry (or a negative value if it is not found) */ /* returns the index of the entry (or a negative value if it is not found) */
int find_include_arg(const char *const name) static int find_include_arg(const char *const name)
{ {
unsigned int i; unsigned int i;
for (i = 0; i < num_include_args; i++) { for (i = 0; i < num_include_args; i++) {

View File

@ -43,7 +43,7 @@ static int linux_spi_send_command(struct flashctx *flash, unsigned int writecnt,
unsigned char *rxbuf); unsigned char *rxbuf);
static int linux_spi_read(struct flashctx *flash, uint8_t *buf, static int linux_spi_read(struct flashctx *flash, uint8_t *buf,
unsigned int start, unsigned int len); unsigned int start, unsigned int len);
static int linux_spi_write_256(struct flashctx *flash, uint8_t *buf, static int linux_spi_write_256(struct flashctx *flash, const uint8_t *buf,
unsigned int start, unsigned int len); unsigned int start, unsigned int len);
static const struct spi_programmer spi_programmer_linux = { static const struct spi_programmer spi_programmer_linux = {
@ -179,8 +179,7 @@ static int linux_spi_read(struct flashctx *flash, uint8_t *buf,
(unsigned int)getpagesize()); (unsigned int)getpagesize());
} }
static int linux_spi_write_256(struct flashctx *flash, uint8_t *buf, static int linux_spi_write_256(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
unsigned int start, unsigned int len)
{ {
return spi_write_chunked(flash, buf, start, len, return spi_write_chunked(flash, buf, start, len,
((unsigned int)getpagesize()) - 4); ((unsigned int)getpagesize()) - 4);

View File

@ -28,8 +28,7 @@
functions. */ functions. */
/* chunksize is 1 */ /* chunksize is 1 */
int write_m29f400bt(struct flashctx *flash, uint8_t *src, unsigned int start, int write_m29f400bt(struct flashctx *flash, const uint8_t *src, unsigned int start, unsigned int len)
unsigned int len)
{ {
int i; int i;
chipaddr bios = flash->virtual_memory; chipaddr bios = flash->virtual_memory;

View File

@ -40,7 +40,7 @@ int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsign
return flash->pgm->opaque.read(flash, buf, start, len); return flash->pgm->opaque.read(flash, buf, start, len);
} }
int write_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) int write_opaque(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
{ {
return flash->pgm->opaque.write(flash, buf, start, len); return flash->pgm->opaque.write(flash, buf, start, len);
} }

View File

@ -78,8 +78,7 @@ uint32_t fallback_chip_readl(const struct flashctx *flash, const chipaddr addr)
return val; return val;
} }
void fallback_chip_writen(const struct flashctx *flash, uint8_t *buf, void fallback_chip_writen(const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len)
chipaddr addr, size_t len)
{ {
size_t i; size_t i;
for (i = 0; i < len; i++) for (i = 0; i < len; i++)

View File

@ -542,8 +542,8 @@ struct spi_programmer {
/* Optimized functions for this programmer */ /* Optimized functions for this programmer */
int (*read)(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int (*read)(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
int (*write_256)(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int (*write_256)(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int (*write_aai)(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int (*write_aai)(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
const void *data; const void *data;
}; };
@ -551,8 +551,8 @@ int default_spi_send_command(struct flashctx *flash, unsigned int writecnt, unsi
const unsigned char *writearr, unsigned char *readarr); const unsigned char *writearr, unsigned char *readarr);
int default_spi_send_multicommand(struct flashctx *flash, struct spi_command *cmds); int default_spi_send_multicommand(struct flashctx *flash, struct spi_command *cmds);
int default_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int default_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
int default_spi_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int default_spi_write_256(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int default_spi_write_aai(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int register_spi_programmer(const struct spi_programmer *programmer); int register_spi_programmer(const struct spi_programmer *programmer);
/* The following enum is needed by ich_descriptor_tool and ich* code as well as in chipset_enable.c. */ /* The following enum is needed by ich_descriptor_tool and ich* code as well as in chipset_enable.c. */
@ -611,7 +611,7 @@ struct opaque_programmer {
/* Specific functions for this programmer */ /* Specific functions for this programmer */
int (*probe) (struct flashctx *flash); int (*probe) (struct flashctx *flash);
int (*read) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int (*read) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
int (*write) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int (*write) (struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
int (*erase) (struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); int (*erase) (struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen);
const void *data; const void *data;
}; };
@ -624,7 +624,7 @@ void fallback_unmap(void *virt_addr, size_t len);
void noop_chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr); void noop_chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr);
void fallback_chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr); void fallback_chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr);
void fallback_chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr); void fallback_chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr);
void fallback_chip_writen(const struct flashctx *flash, uint8_t *buf, chipaddr addr, size_t len); void fallback_chip_writen(const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len);
uint16_t fallback_chip_readw(const struct flashctx *flash, const chipaddr addr); uint16_t fallback_chip_readw(const struct flashctx *flash, const chipaddr addr);
uint32_t fallback_chip_readl(const struct flashctx *flash, const chipaddr addr); uint32_t fallback_chip_readl(const struct flashctx *flash, const chipaddr addr);
void fallback_chip_readn(const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len); void fallback_chip_readn(const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len);
@ -632,7 +632,7 @@ struct par_programmer {
void (*chip_writeb) (const struct flashctx *flash, uint8_t val, chipaddr addr); void (*chip_writeb) (const struct flashctx *flash, uint8_t val, chipaddr addr);
void (*chip_writew) (const struct flashctx *flash, uint16_t val, chipaddr addr); void (*chip_writew) (const struct flashctx *flash, uint16_t val, chipaddr addr);
void (*chip_writel) (const struct flashctx *flash, uint32_t val, chipaddr addr); void (*chip_writel) (const struct flashctx *flash, uint32_t val, chipaddr addr);
void (*chip_writen) (const struct flashctx *flash, uint8_t *buf, chipaddr addr, size_t len); void (*chip_writen) (const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len);
uint8_t (*chip_readb) (const struct flashctx *flash, const chipaddr addr); uint8_t (*chip_readb) (const struct flashctx *flash, const chipaddr addr);
uint16_t (*chip_readw) (const struct flashctx *flash, const chipaddr addr); uint16_t (*chip_readw) (const struct flashctx *flash, const chipaddr addr);
uint32_t (*chip_readl) (const struct flashctx *flash, const chipaddr addr); uint32_t (*chip_readl) (const struct flashctx *flash, const chipaddr addr);
@ -673,8 +673,8 @@ int serialport_config(fdtype fd, unsigned int baud);
extern fdtype sp_fd; extern fdtype sp_fd;
/* expose serialport_shutdown as it's currently used by buspirate */ /* expose serialport_shutdown as it's currently used by buspirate */
int serialport_shutdown(void *data); int serialport_shutdown(void *data);
int serialport_write(unsigned char *buf, unsigned int writecnt); int serialport_write(const unsigned char *buf, unsigned int writecnt);
int serialport_write_nonblock(unsigned char *buf, unsigned int writecnt, unsigned int timeout, unsigned int *really_wrote); int serialport_write_nonblock(const unsigned char *buf, unsigned int writecnt, unsigned int timeout, unsigned int *really_wrote);
int serialport_read(unsigned char *buf, unsigned int readcnt); int serialport_read(unsigned char *buf, unsigned int readcnt);
int serialport_read_nonblock(unsigned char *c, unsigned int readcnt, unsigned int timeout, unsigned int *really_read); int serialport_read_nonblock(unsigned char *c, unsigned int readcnt, unsigned int timeout, unsigned int *really_read);

View File

@ -335,7 +335,7 @@ int serialport_shutdown(void *data)
return 0; return 0;
} }
int serialport_write(unsigned char *buf, unsigned int writecnt) int serialport_write(const unsigned char *buf, unsigned int writecnt)
{ {
#ifdef _WIN32 #ifdef _WIN32
DWORD tmp = 0; DWORD tmp = 0;
@ -470,7 +470,7 @@ int serialport_read_nonblock(unsigned char *c, unsigned int readcnt, unsigned in
/* Tries up to timeout ms to write writecnt characters from the array starting at buf. Returns /* Tries up to timeout ms to write writecnt characters from the array starting at buf. Returns
* 0 on success, positive values on temporary errors (e.g. timeouts) and negative ones on permanent errors. * 0 on success, positive values on temporary errors (e.g. timeouts) and negative ones on permanent errors.
* If really_wrote is not NULL, this function sets its contents to the number of bytes written successfully. */ * If really_wrote is not NULL, this function sets its contents to the number of bytes written successfully. */
int serialport_write_nonblock(unsigned char *buf, unsigned int writecnt, unsigned int timeout, unsigned int *really_wrote) int serialport_write_nonblock(const unsigned char *buf, unsigned int writecnt, unsigned int timeout, unsigned int *really_wrote)
{ {
int ret = 1; int ret = 1;
/* disable blocked i/o and declare platform-specific variables */ /* disable blocked i/o and declare platform-specific variables */

9
spi.c
View File

@ -88,8 +88,7 @@ int default_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start,
return spi_read_chunked(flash, buf, start, len, max_data); return spi_read_chunked(flash, buf, start, len, max_data);
} }
int default_spi_write_256(struct flashctx *flash, uint8_t *buf, int default_spi_write_256(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
unsigned int start, unsigned int len)
{ {
unsigned int max_data = flash->pgm->spi.max_data_write; unsigned int max_data = flash->pgm->spi.max_data_write;
if (max_data == MAX_DATA_UNSPECIFIED) { if (max_data == MAX_DATA_UNSPECIFIED) {
@ -135,8 +134,7 @@ int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start,
* .write_256 = spi_chip_write_1 * .write_256 = spi_chip_write_1
*/ */
/* real chunksize is up to 256, logical chunksize is 256 */ /* real chunksize is up to 256, logical chunksize is 256 */
int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, int spi_chip_write_256(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
unsigned int len)
{ {
return flash->pgm->spi.write_256(flash, buf, start, len); return flash->pgm->spi.write_256(flash, buf, start, len);
} }
@ -162,8 +160,7 @@ uint32_t spi_get_valid_read_addr(struct flashctx *flash)
} }
} }
int spi_aai_write(struct flashctx *flash, uint8_t *buf, int spi_aai_write(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
unsigned int start, unsigned int len)
{ {
return flash->pgm->spi.write_aai(flash, buf, start, len); return flash->pgm->spi.write_aai(flash, buf, start, len);
} }

10
spi25.c
View File

@ -876,8 +876,7 @@ int spi_byte_program(struct flashctx *flash, unsigned int addr,
return result; return result;
} }
int spi_nbyte_program(struct flashctx *flash, unsigned int addr, uint8_t *bytes, int spi_nbyte_program(struct flashctx *flash, unsigned int addr, const uint8_t *bytes, unsigned int len)
unsigned int len)
{ {
int result; int result;
/* FIXME: Switch to malloc based on len unless that kills speed. */ /* FIXME: Switch to malloc based on len unless that kills speed. */
@ -983,7 +982,7 @@ int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start,
* FIXME: Use the chunk code from Michael Karcher instead. * FIXME: Use the chunk code from Michael Karcher instead.
* Each page is written separately in chunks with a maximum size of chunksize. * Each page is written separately in chunks with a maximum size of chunksize.
*/ */
int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, int spi_write_chunked(struct flashctx *flash, const uint8_t *buf, unsigned int start,
unsigned int len, unsigned int chunksize) unsigned int len, unsigned int chunksize)
{ {
int rc = 0; int rc = 0;
@ -1032,8 +1031,7 @@ int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start,
* (e.g. due to size constraints in IT87* for over 512 kB) * (e.g. due to size constraints in IT87* for over 512 kB)
*/ */
/* real chunksize is 1, logical chunksize is 1 */ /* real chunksize is 1, logical chunksize is 1 */
int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, int spi_chip_write_1(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
unsigned int len)
{ {
unsigned int i; unsigned int i;
int result = 0; int result = 0;
@ -1049,7 +1047,7 @@ int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start,
return 0; return 0;
} }
int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) int default_spi_write_aai(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
{ {
uint32_t pos = start; uint32_t pos = start;
int result; int result;

View File

@ -77,8 +77,7 @@ int erase_sector_28sf040(struct flashctx *flash, unsigned int address,
} }
/* chunksize is 1 */ /* chunksize is 1 */
int write_28sf040(struct flashctx *flash, uint8_t *src, unsigned int start, int write_28sf040(struct flashctx *flash, const uint8_t *src, unsigned int start, unsigned int len)
unsigned int len)
{ {
int i; int i;
chipaddr bios = flash->virtual_memory; chipaddr bios = flash->virtual_memory;