From: Andreas Fritiofson Date: Mon, 10 Mar 2014 21:23:07 +0000 (+0100) Subject: flash: Constify write buffer X-Git-Tag: v0.8.0-rc1~47 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=565f8481c7b71614a05d79ab79af8610d2535a81;p=openocd flash: Constify write buffer Change-Id: Ic812098d3ed5a2992c26bb57d08ae350e2c5d5d8 Signed-off-by: Andreas Fritiofson Reviewed-on: http://openocd.zylin.com/2040 Tested-by: jenkins Reviewed-by: Spencer Oliver --- diff --git a/src/flash/nor/aduc702x.c b/src/flash/nor/aduc702x.c index 60ec7d38..88522458 100644 --- a/src/flash/nor/aduc702x.c +++ b/src/flash/nor/aduc702x.c @@ -144,7 +144,7 @@ static int aduc702x_protect(struct flash_bank *bank, int set, int first, int las * Caller should not check for other return values specifically */ static int aduc702x_write_block(struct flash_bank *bank, - uint8_t *buffer, + const uint8_t *buffer, uint32_t offset, uint32_t count) { @@ -285,7 +285,7 @@ static int aduc702x_write_block(struct flash_bank *bank, /* All-JTAG, single-access method. Very slow. Used only if there is no * working area available. */ static int aduc702x_write_single(struct flash_bank *bank, - uint8_t *buffer, + const uint8_t *buffer, uint32_t offset, uint32_t count) { @@ -326,7 +326,7 @@ static int aduc702x_write_single(struct flash_bank *bank, return ERROR_OK; } -static int aduc702x_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int aduc702x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { int retval; diff --git a/src/flash/nor/at91sam3.c b/src/flash/nor/at91sam3.c index a05ab169..bbdb58cb 100644 --- a/src/flash/nor/at91sam3.c +++ b/src/flash/nor/at91sam3.c @@ -3285,7 +3285,7 @@ static const uint8_t 0x00, 0xBE /* bkpt #0 */ }; -static int sam3_page_write(struct sam3_bank_private *pPrivate, unsigned pagenum, uint8_t *buf) +static int sam3_page_write(struct sam3_bank_private *pPrivate, unsigned pagenum, const uint8_t *buf) { uint32_t adr; uint32_t status; @@ -3344,7 +3344,7 @@ static int sam3_page_write(struct sam3_bank_private *pPrivate, unsigned pagenum, } static int sam3_write(struct flash_bank *bank, - uint8_t *buffer, + const uint8_t *buffer, uint32_t offset, uint32_t count) { diff --git a/src/flash/nor/at91sam4.c b/src/flash/nor/at91sam4.c index 84d09c21..4d5ba2e0 100644 --- a/src/flash/nor/at91sam4.c +++ b/src/flash/nor/at91sam4.c @@ -1877,7 +1877,7 @@ static int sam4_page_read(struct sam4_bank_private *pPrivate, unsigned pagenum, return r; } -static int sam4_page_write(struct sam4_bank_private *pPrivate, unsigned pagenum, uint8_t *buf) +static int sam4_page_write(struct sam4_bank_private *pPrivate, unsigned pagenum, const uint8_t *buf) { uint32_t adr; uint32_t status; @@ -1939,7 +1939,7 @@ static int sam4_page_write(struct sam4_bank_private *pPrivate, unsigned pagenum, } static int sam4_write(struct flash_bank *bank, - uint8_t *buffer, + const uint8_t *buffer, uint32_t offset, uint32_t count) { diff --git a/src/flash/nor/at91sam4l.c b/src/flash/nor/at91sam4l.c index d3bdbfe6..9f1319b6 100644 --- a/src/flash/nor/at91sam4l.c +++ b/src/flash/nor/at91sam4l.c @@ -495,7 +495,7 @@ static int sam4l_erase(struct flash_bank *bank, int first, int last) /* Write an entire page from host buffer 'buf' to page-aligned 'address' in the * Flash. */ static int sam4l_write_page(struct sam4l_info *chip, struct target *target, - uint32_t address, uint8_t *buf) + uint32_t address, const uint8_t *buf) { int res; @@ -527,7 +527,7 @@ static int sam4l_write_page(struct sam4l_info *chip, struct target *target, /* Write partial contents into page-aligned 'address' on the Flash from host * buffer 'buf' by writing 'nb' of 'buf' at 'offset' into the Flash page. */ static int sam4l_write_page_partial(struct sam4l_info *chip, - struct flash_bank *bank, uint32_t address, uint8_t *buf, + struct flash_bank *bank, uint32_t address, const uint8_t *buf, uint32_t page_offset, uint32_t nb) { int res; @@ -556,7 +556,7 @@ static int sam4l_write_page_partial(struct sam4l_info *chip, return res; } -static int sam4l_write(struct flash_bank *bank, uint8_t *buffer, +static int sam4l_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { int res; diff --git a/src/flash/nor/at91sam7.c b/src/flash/nor/at91sam7.c index 9cda3f2d..c7334ca5 100644 --- a/src/flash/nor/at91sam7.c +++ b/src/flash/nor/at91sam7.c @@ -98,7 +98,7 @@ #define FLASH_SIZE_2048KB 14 static int at91sam7_protect_check(struct flash_bank *bank); -static int at91sam7_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, +static int at91sam7_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count); static uint32_t at91sam7_get_flash_status(struct target *target, int bank_number); @@ -954,7 +954,7 @@ static int at91sam7_protect(struct flash_bank *bank, int set, int first, int las return ERROR_OK; } -static int at91sam7_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int at91sam7_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { int retval; struct at91sam7_flash_bank *at91sam7_info = bank->driver_priv; diff --git a/src/flash/nor/at91samd.c b/src/flash/nor/at91samd.c index 8b0f14dd..5af61ab4 100644 --- a/src/flash/nor/at91samd.c +++ b/src/flash/nor/at91samd.c @@ -385,7 +385,7 @@ static int samd_erase(struct flash_bank *bank, int first, int last) /* Write an entire row (four pages) from host buffer 'buf' to row-aligned * 'address' in the Flash. */ static int samd_write_row(struct flash_bank *bank, uint32_t address, - uint8_t *buf) + const uint8_t *buf) { int res; struct samd_info *chip = (struct samd_info *)bank->driver_priv; @@ -424,7 +424,7 @@ static int samd_write_row(struct flash_bank *bank, uint32_t address, /* Write partial contents into row-aligned 'address' on the Flash from host * buffer 'buf' by writing 'nb' of 'buf' at 'row_offset' into the Flash row. */ static int samd_write_row_partial(struct flash_bank *bank, uint32_t address, - uint8_t *buf, uint32_t row_offset, uint32_t nb) + const uint8_t *buf, uint32_t row_offset, uint32_t nb) { int res; struct samd_info *chip = (struct samd_info *)bank->driver_priv; @@ -453,7 +453,7 @@ static int samd_write_row_partial(struct flash_bank *bank, uint32_t address, return res; } -static int samd_write(struct flash_bank *bank, uint8_t *buffer, +static int samd_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { int res; diff --git a/src/flash/nor/avrf.c b/src/flash/nor/avrf.c index e408282b..ecc09046 100644 --- a/src/flash/nor/avrf.c +++ b/src/flash/nor/avrf.c @@ -142,7 +142,7 @@ static int avr_jtagprg_chiperase(struct avr_common *avr) } static int avr_jtagprg_writeflashpage(struct avr_common *avr, - uint8_t *page_buf, + const uint8_t *page_buf, uint32_t buf_size, uint32_t addr, uint32_t page_size) @@ -239,7 +239,7 @@ static int avrf_protect(struct flash_bank *bank, int set, int first, int last) return ERROR_OK; } -static int avrf_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int avrf_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; struct avr_common *avr = target->arch_info; diff --git a/src/flash/nor/cfi.c b/src/flash/nor/cfi.c index 56d8e6e8..97d3f190 100644 --- a/src/flash/nor/cfi.c +++ b/src/flash/nor/cfi.c @@ -1126,7 +1126,7 @@ static uint32_t cfi_command_val(struct flash_bank *bank, uint8_t cmd) } } -static int cfi_intel_write_block(struct flash_bank *bank, uint8_t *buffer, +static int cfi_intel_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t address, uint32_t count) { struct target *target = bank->target; @@ -1379,7 +1379,7 @@ cleanup: return retval; } -static int cfi_spansion_write_block_mips(struct flash_bank *bank, uint8_t *buffer, +static int cfi_spansion_write_block_mips(struct flash_bank *bank, const uint8_t *buffer, uint32_t address, uint32_t count) { struct cfi_flash_bank *cfi_info = bank->driver_priv; @@ -1592,7 +1592,7 @@ static int cfi_spansion_write_block_mips(struct flash_bank *bank, uint8_t *buffe return retval; } -static int cfi_spansion_write_block(struct flash_bank *bank, uint8_t *buffer, +static int cfi_spansion_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t address, uint32_t count) { struct cfi_flash_bank *cfi_info = bank->driver_priv; @@ -2002,7 +2002,7 @@ static int cfi_intel_write_word(struct flash_bank *bank, uint8_t *word, uint32_t return ERROR_OK; } -static int cfi_intel_write_words(struct flash_bank *bank, uint8_t *word, +static int cfi_intel_write_words(struct flash_bank *bank, const uint8_t *word, uint32_t wordcount, uint32_t address) { int retval; @@ -2122,7 +2122,7 @@ static int cfi_spansion_write_word(struct flash_bank *bank, uint8_t *word, uint3 return ERROR_OK; } -static int cfi_spansion_write_words(struct flash_bank *bank, uint8_t *word, +static int cfi_spansion_write_words(struct flash_bank *bank, const uint8_t *word, uint32_t wordcount, uint32_t address) { int retval; @@ -2215,7 +2215,7 @@ static int cfi_write_word(struct flash_bank *bank, uint8_t *word, uint32_t addre return ERROR_FLASH_OPERATION_FAILED; } -static int cfi_write_words(struct flash_bank *bank, uint8_t *word, +static int cfi_write_words(struct flash_bank *bank, const uint8_t *word, uint32_t wordcount, uint32_t address) { struct cfi_flash_bank *cfi_info = bank->driver_priv; @@ -2312,7 +2312,7 @@ static int cfi_read(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, u return ERROR_OK; } -static int cfi_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int cfi_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct cfi_flash_bank *cfi_info = bank->driver_priv; struct target *target = bank->target; diff --git a/src/flash/nor/driver.h b/src/flash/nor/driver.h index 4e172074..8f2e1cc2 100644 --- a/src/flash/nor/driver.h +++ b/src/flash/nor/driver.h @@ -137,7 +137,7 @@ struct flash_driver { * @returns ERROR_OK if successful; otherwise, an error code. */ int (*write)(struct flash_bank *bank, - uint8_t *buffer, uint32_t offset, uint32_t count); + const uint8_t *buffer, uint32_t offset, uint32_t count); /** * Read data from the flash. Note CPU address will be diff --git a/src/flash/nor/dsp5680xx_flash.c b/src/flash/nor/dsp5680xx_flash.c index 9368d892..693ff487 100644 --- a/src/flash/nor/dsp5680xx_flash.c +++ b/src/flash/nor/dsp5680xx_flash.c @@ -156,7 +156,7 @@ static int dsp5680xx_flash_protect(struct flash_bank *bank, int set, int first, * * @return */ -static int dsp5680xx_flash_write(struct flash_bank *bank, uint8_t * buffer, +static int dsp5680xx_flash_write(struct flash_bank *bank, const uint8_t* buffer, uint32_t offset, uint32_t count) { int retval; diff --git a/src/flash/nor/efm32.c b/src/flash/nor/efm32.c index 6e2ebce2..3c46c76d 100644 --- a/src/flash/nor/efm32.c +++ b/src/flash/nor/efm32.c @@ -98,7 +98,7 @@ struct efm32_info { uint16_t page_size; }; -static int efm32x_write(struct flash_bank *bank, uint8_t *buffer, +static int efm32x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count); static int efm32x_get_flash_size(struct flash_bank *bank, uint16_t *flash_sz) @@ -499,7 +499,7 @@ static int efm32x_protect(struct flash_bank *bank, int set, int first, int last) return ERROR_OK; } -static int efm32x_write_block(struct flash_bank *bank, uint8_t *buf, +static int efm32x_write_block(struct flash_bank *bank, const uint8_t *buf, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -735,7 +735,7 @@ static int efm32x_write_word(struct flash_bank *bank, uint32_t addr, return ERROR_OK; } -static int efm32x_write(struct flash_bank *bank, uint8_t *buffer, +static int efm32x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; diff --git a/src/flash/nor/em357.c b/src/flash/nor/em357.c index 56f44b38..70a5431a 100644 --- a/src/flash/nor/em357.c +++ b/src/flash/nor/em357.c @@ -455,7 +455,7 @@ static int em357_protect(struct flash_bank *bank, int set, int first, int last) return em357_write_options(bank); } -static int em357_write_block(struct flash_bank *bank, uint8_t *buffer, +static int em357_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -583,7 +583,7 @@ static int em357_write_block(struct flash_bank *bank, uint8_t *buffer, return retval; } -static int em357_write(struct flash_bank *bank, uint8_t *buffer, +static int em357_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; diff --git a/src/flash/nor/faux.c b/src/flash/nor/faux.c index 8e51b8e5..1fd1da21 100644 --- a/src/flash/nor/faux.c +++ b/src/flash/nor/faux.c @@ -93,7 +93,7 @@ static int faux_protect(struct flash_bank *bank, int set, int first, int last) return ERROR_OK; } -static int faux_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int faux_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct faux_flash_bank *info = bank->driver_priv; memcpy(info->memory + offset, buffer, count); diff --git a/src/flash/nor/fm3.c b/src/flash/nor/fm3.c index 18599129..d4bd5b9c 100644 --- a/src/flash/nor/fm3.c +++ b/src/flash/nor/fm3.c @@ -347,7 +347,7 @@ static int fm3_erase(struct flash_bank *bank, int first, int last) return retval; } -static int fm3_write_block(struct flash_bank *bank, uint8_t *buffer, +static int fm3_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct fm3_flash_bank *fm3_info = bank->driver_priv; diff --git a/src/flash/nor/kinetis.c b/src/flash/nor/kinetis.c index dc9208cf..86785905 100644 --- a/src/flash/nor/kinetis.c +++ b/src/flash/nor/kinetis.c @@ -278,7 +278,7 @@ static const uint8_t kinetis_flash_write_code[] = { }; /* Program LongWord Block Write */ -static int kinetis_write_block(struct flash_bank *bank, uint8_t *buffer, +static int kinetis_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t wcount) { struct target *target = bank->target; @@ -586,7 +586,7 @@ static int kinetis_erase(struct flash_bank *bank, int first, int last) return ERROR_OK; } -static int kinetis_write(struct flash_bank *bank, uint8_t *buffer, +static int kinetis_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { unsigned int i, result, fallback = 0; diff --git a/src/flash/nor/lpc2000.c b/src/flash/nor/lpc2000.c index 259b42f1..69c8b034 100644 --- a/src/flash/nor/lpc2000.c +++ b/src/flash/nor/lpc2000.c @@ -711,7 +711,7 @@ static int lpc2000_protect(struct flash_bank *bank, int set, int first, int last return ERROR_OK; } -static int lpc2000_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int lpc2000_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -746,6 +746,7 @@ static int lpc2000_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offs /* check if exception vectors should be flashed */ if ((offset == 0) && (count >= 0x20) && lpc2000_info->calc_checksum) { + assert(lpc2000_info->checksum_vector < 8); uint32_t checksum = 0; for (int i = 0; i < 8; i++) { LOG_DEBUG("Vector 0x%2.2x: 0x%8.8" PRIx32, i * 4, buf_get_u32(buffer + (i * 4), 0, 32)); @@ -763,7 +764,8 @@ static int lpc2000_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offs "checksum."); } - buf_set_u32(buffer + (lpc2000_info->checksum_vector * 4), 0, 32, checksum); + /* FIXME: WARNING! This code is broken because it modifies the callers buffer in place. */ + buf_set_u32((uint8_t *)buffer + (lpc2000_info->checksum_vector * 4), 0, 32, checksum); } struct working_area *iap_working_area; diff --git a/src/flash/nor/lpc288x.c b/src/flash/nor/lpc288x.c index b602619d..89f79e32 100644 --- a/src/flash/nor/lpc288x.c +++ b/src/flash/nor/lpc288x.c @@ -277,7 +277,7 @@ static int lpc288x_erase(struct flash_bank *bank, int first, int last) return ERROR_OK; } -static int lpc288x_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int lpc288x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { uint8_t page_buffer[FLASH_PAGE_SIZE]; uint32_t status, source_offset, dest_offset; diff --git a/src/flash/nor/lpc2900.c b/src/flash/nor/lpc2900.c index 018d94ad..7c3e6758 100644 --- a/src/flash/nor/lpc2900.c +++ b/src/flash/nor/lpc2900.c @@ -1058,7 +1058,7 @@ static int lpc2900_protect(struct flash_bank *bank, int set, int first, int last * @param offset Start address (relative to bank start) * @param count Number of bytes to be programmed */ -static int lpc2900_write(struct flash_bank *bank, uint8_t *buffer, +static int lpc2900_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { uint8_t page[FLASH_PAGE_SIZE]; @@ -1186,7 +1186,7 @@ static int lpc2900_write(struct flash_bank *bank, uint8_t *buffer, /* Write to flash in large blocks */ while (count != 0) { uint32_t this_npages; - uint8_t *this_buffer; + const uint8_t *this_buffer; int start_sector = lpc2900_address2sector(bank, offset); /* First page / last page / rest */ diff --git a/src/flash/nor/lpcspifi.c b/src/flash/nor/lpcspifi.c index 7566c275..2f4c6010 100644 --- a/src/flash/nor/lpcspifi.c +++ b/src/flash/nor/lpcspifi.c @@ -581,7 +581,7 @@ static int lpcspifi_protect(struct flash_bank *bank, int set, return ERROR_OK; } -static int lpcspifi_write(struct flash_bank *bank, uint8_t *buffer, +static int lpcspifi_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; diff --git a/src/flash/nor/mdr.c b/src/flash/nor/mdr.c index 650abfd6..ed76aab0 100644 --- a/src/flash/nor/mdr.c +++ b/src/flash/nor/mdr.c @@ -223,7 +223,7 @@ static int mdr_protect(struct flash_bank *bank, int set, int first, int last) return ERROR_OK; } -static int mdr_write_block(struct flash_bank *bank, uint8_t *buffer, +static int mdr_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -314,7 +314,7 @@ static int mdr_write_block(struct flash_bank *bank, uint8_t *buffer, return retval; } -static int mdr_write(struct flash_bank *bank, uint8_t *buffer, +static int mdr_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -345,7 +345,7 @@ static int mdr_write(struct flash_bank *bank, uint8_t *buffer, LOG_INFO("odd number of bytes to write, padding with 0xff"); buffer = memcpy(new_buffer, buffer, count); while (rem--) - buffer[count++] = 0xff; + new_buffer[count++] = 0xff; } uint32_t flash_cmd, cur_per_clock; diff --git a/src/flash/nor/mini51.c b/src/flash/nor/mini51.c index 19b14448..61aee5d7 100644 --- a/src/flash/nor/mini51.c +++ b/src/flash/nor/mini51.c @@ -312,7 +312,7 @@ static int mini51_protect(struct flash_bank *bank, int set, int first, int last) return ERROR_FLASH_OPERATION_FAILED; } -static int mini51_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int mini51_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { int status; int timeout; diff --git a/src/flash/nor/nrf51.c b/src/flash/nor/nrf51.c index 4b3ab3e0..444db611 100644 --- a/src/flash/nor/nrf51.c +++ b/src/flash/nor/nrf51.c @@ -429,7 +429,7 @@ static int nrf51_erase_page(struct nrf51_info *chip, struct flash_sector *sector return res; } -static int nrf51_write_page(struct flash_bank *bank, uint32_t offset, uint8_t *buffer) +static int nrf51_write_page(struct flash_bank *bank, uint32_t offset, const uint8_t *buffer) { assert(offset % 4 == 0); @@ -484,7 +484,7 @@ static int nrf51_erase(struct flash_bank *bank, int first, int last) return res; } -static int nrf51_write(struct flash_bank *bank, uint8_t *buffer, +static int nrf51_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { int res; @@ -502,7 +502,7 @@ static int nrf51_write(struct flash_bank *bank, uint8_t *buffer, struct { size_t length; - uint8_t *buffer; + const uint8_t *buffer; } start_extra, end_extra; start_extra.length = region.start % chip->code_page_size; diff --git a/src/flash/nor/nuc1x.c b/src/flash/nor/nuc1x.c index 6ca858ec..179302e0 100644 --- a/src/flash/nor/nuc1x.c +++ b/src/flash/nor/nuc1x.c @@ -378,7 +378,7 @@ static int nuc1x_erase(struct flash_bank *bank, int first, int last) } /* The write routine stub. */ -static int nuc1x_write(struct flash_bank *bank, uint8_t *buffer, +static int nuc1x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; diff --git a/src/flash/nor/ocl.c b/src/flash/nor/ocl.c index 6b297b0d..c547d9a1 100644 --- a/src/flash/nor/ocl.c +++ b/src/flash/nor/ocl.c @@ -118,7 +118,7 @@ static int ocl_protect(struct flash_bank *bank, int set, int first, int last) return ERROR_OK; } -static int ocl_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int ocl_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct ocl_priv *ocl = bank->driver_priv; int retval; diff --git a/src/flash/nor/pic32mx.c b/src/flash/nor/pic32mx.c index 2b27ec5b..5e82ba63 100644 --- a/src/flash/nor/pic32mx.c +++ b/src/flash/nor/pic32mx.c @@ -410,7 +410,7 @@ static uint32_t pic32mx_flash_write_code[] = { 0x00000000 /* nop */ }; -static int pic32mx_write_block(struct flash_bank *bank, uint8_t *buffer, +static int pic32mx_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -571,7 +571,7 @@ static int pic32mx_write_word(struct flash_bank *bank, uint32_t address, uint32_ return pic32mx_nvm_exec(bank, NVMCON_OP_WORD_PROG, 5); } -static int pic32mx_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int pic32mx_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { uint32_t words_remaining = (count / 4); uint32_t bytes_remaining = (count & 0x00000003); diff --git a/src/flash/nor/stellaris.c b/src/flash/nor/stellaris.c index 8886c195..7665ab38 100644 --- a/src/flash/nor/stellaris.c +++ b/src/flash/nor/stellaris.c @@ -997,7 +997,7 @@ static const uint8_t stellaris_write_code[] = { 0x01, 0x00, 0x42, 0xA4 /* .word 0xA4420001 */ }; static int stellaris_write_block(struct flash_bank *bank, - uint8_t *buffer, uint32_t offset, uint32_t wcount) + const uint8_t *buffer, uint32_t offset, uint32_t wcount) { struct target *target = bank->target; uint32_t buffer_size = 16384; @@ -1078,7 +1078,7 @@ static int stellaris_write_block(struct flash_bank *bank, return retval; } -static int stellaris_write(struct flash_bank *bank, uint8_t *buffer, +static int stellaris_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct stellaris_flash_bank *stellaris_info = bank->driver_priv; diff --git a/src/flash/nor/stm32f1x.c b/src/flash/nor/stm32f1x.c index 1b67ff03..aacf6dcd 100644 --- a/src/flash/nor/stm32f1x.c +++ b/src/flash/nor/stm32f1x.c @@ -130,7 +130,7 @@ struct stm32x_flash_bank { static int stm32x_mass_erase(struct flash_bank *bank); static int stm32x_get_device_id(struct flash_bank *bank, uint32_t *device_id); -static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer, +static int stm32x_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count); /* flash bank stm32x 0 0 @@ -561,7 +561,7 @@ static int stm32x_protect(struct flash_bank *bank, int set, int first, int last) return stm32x_write_options(bank); } -static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer, +static int stm32x_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct stm32x_flash_bank *stm32x_info = bank->driver_priv; @@ -692,7 +692,7 @@ static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer, return retval; } -static int stm32x_write(struct flash_bank *bank, uint8_t *buffer, +static int stm32x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -720,7 +720,7 @@ static int stm32x_write(struct flash_bank *bank, uint8_t *buffer, } LOG_INFO("odd number of bytes to write, padding with 0xff"); buffer = memcpy(new_buffer, buffer, count); - buffer[count++] = 0xff; + new_buffer[count++] = 0xff; } uint32_t words_remaining = count / 2; diff --git a/src/flash/nor/stm32f2x.c b/src/flash/nor/stm32f2x.c index be96d981..41973e65 100644 --- a/src/flash/nor/stm32f2x.c +++ b/src/flash/nor/stm32f2x.c @@ -481,7 +481,7 @@ static int stm32x_protect(struct flash_bank *bank, int set, int first, int last) return ERROR_OK; } -static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer, +static int stm32x_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -608,7 +608,7 @@ static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer, return retval; } -static int stm32x_write(struct flash_bank *bank, uint8_t *buffer, +static int stm32x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; diff --git a/src/flash/nor/stm32lx.c b/src/flash/nor/stm32lx.c index eb4f96dd..75cecce6 100644 --- a/src/flash/nor/stm32lx.c +++ b/src/flash/nor/stm32lx.c @@ -212,7 +212,7 @@ static int stm32lx_protect(struct flash_bank *bank, int set, int first, return ERROR_OK; } -static int stm32lx_write_half_pages(struct flash_bank *bank, uint8_t *buffer, +static int stm32lx_write_half_pages(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; @@ -403,7 +403,7 @@ static int stm32lx_write_half_pages(struct flash_bank *bank, uint8_t *buffer, return retval; } -static int stm32lx_write(struct flash_bank *bank, uint8_t *buffer, +static int stm32lx_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; diff --git a/src/flash/nor/stmsmi.c b/src/flash/nor/stmsmi.c index eea1d9f4..6f73c368 100644 --- a/src/flash/nor/stmsmi.c +++ b/src/flash/nor/stmsmi.c @@ -372,7 +372,7 @@ static int stmsmi_protect(struct flash_bank *bank, int set, return ERROR_OK; } -static int smi_write_buffer(struct flash_bank *bank, uint8_t *buffer, +static int smi_write_buffer(struct flash_bank *bank, const uint8_t *buffer, uint32_t address, uint32_t len) { struct target *target = bank->target; @@ -397,7 +397,7 @@ static int smi_write_buffer(struct flash_bank *bank, uint8_t *buffer, return ERROR_OK; } -static int stmsmi_write(struct flash_bank *bank, uint8_t *buffer, +static int stmsmi_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; diff --git a/src/flash/nor/str7x.c b/src/flash/nor/str7x.c index 32c8ebd5..515b9751 100644 --- a/src/flash/nor/str7x.c +++ b/src/flash/nor/str7x.c @@ -442,7 +442,7 @@ static int str7x_protect(struct flash_bank *bank, int set, int first, int last) return ERROR_OK; } -static int str7x_write_block(struct flash_bank *bank, uint8_t *buffer, +static int str7x_write_block(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct str7x_flash_bank *str7x_info = bank->driver_priv; @@ -559,7 +559,7 @@ static int str7x_write_block(struct flash_bank *bank, uint8_t *buffer, return retval; } -static int str7x_write(struct flash_bank *bank, uint8_t *buffer, +static int str7x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; diff --git a/src/flash/nor/str9x.c b/src/flash/nor/str9x.c index 2158622a..8b3c1371 100644 --- a/src/flash/nor/str9x.c +++ b/src/flash/nor/str9x.c @@ -347,7 +347,7 @@ static int str9x_protect(struct flash_bank *bank, } static int str9x_write_block(struct flash_bank *bank, - uint8_t *buffer, uint32_t offset, uint32_t count) + const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; uint32_t buffer_size = 32768; @@ -459,7 +459,7 @@ static int str9x_write_block(struct flash_bank *bank, } static int str9x_write(struct flash_bank *bank, - uint8_t *buffer, uint32_t offset, uint32_t count) + const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; uint32_t words_remaining = (count / 2); diff --git a/src/flash/nor/str9xpec.c b/src/flash/nor/str9xpec.c index e08495da..f0af53a4 100644 --- a/src/flash/nor/str9xpec.c +++ b/src/flash/nor/str9xpec.c @@ -565,7 +565,7 @@ static int str9xpec_set_address(struct flash_bank *bank, uint8_t sector) return ERROR_OK; } -static int str9xpec_write(struct flash_bank *bank, uint8_t *buffer, +static int str9xpec_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct str9xpec_flash_controller *str9xpec_info = bank->driver_priv; diff --git a/src/flash/nor/tms470.c b/src/flash/nor/tms470.c index 3851504d..86858a84 100644 --- a/src/flash/nor/tms470.c +++ b/src/flash/nor/tms470.c @@ -890,7 +890,7 @@ static int tms470_protect(struct flash_bank *bank, int set, int first, int last) /* ---------------------------------------------------------------------- */ -static int tms470_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int tms470_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; uint32_t glbctrl, fmbac2, orig_fmregopt, fmbsea, fmbseb, fmmaxpp, fmmstat; diff --git a/src/flash/nor/virtual.c b/src/flash/nor/virtual.c index fab521dd..599a9c09 100644 --- a/src/flash/nor/virtual.c +++ b/src/flash/nor/virtual.c @@ -119,7 +119,7 @@ static int virtual_erase(struct flash_bank *bank, int first, int last) return ERROR_OK; } -static int virtual_write(struct flash_bank *bank, uint8_t *buffer, +static int virtual_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct flash_bank *master_bank = virtual_get_master_bank(bank); diff --git a/src/target/dsp5680xx.c b/src/target/dsp5680xx.c index f72d3363..8a58cab4 100644 --- a/src/target/dsp5680xx.c +++ b/src/target/dsp5680xx.c @@ -1524,7 +1524,7 @@ static int dsp5680xx_checksum_memory(struct target *t, uint32_t a, uint32_t s, * * @return */ -static int perl_crc(uint8_t *buff8, uint32_t word_count) +static int perl_crc(const uint8_t *buff8, uint32_t word_count) { uint16_t checksum = 0xffff; @@ -1983,14 +1983,14 @@ const uint16_t pgm_write_pflash[] = { 0x8A46, 0x0013, 0x807D, 0xE700, const uint32_t pgm_write_pflash_length = 31; -int dsp5680xx_f_wr(struct target *t, uint8_t *b, uint32_t a, uint32_t count, +int dsp5680xx_f_wr(struct target *t, const uint8_t *b, uint32_t a, uint32_t count, int is_flash_lock) { struct target *target = t; uint32_t address = a; - uint8_t *buffer = b; + const uint8_t *buffer = b; int retval = ERROR_OK; diff --git a/src/target/dsp5680xx.h b/src/target/dsp5680xx.h index 1b710090..cb3bf2a4 100644 --- a/src/target/dsp5680xx.h +++ b/src/target/dsp5680xx.h @@ -317,7 +317,7 @@ static inline struct dsp5680xx_common *target_to_dsp5680xx(struct target * * @return */ -int dsp5680xx_f_wr(struct target *target, uint8_t * buffer, uint32_t address, +int dsp5680xx_f_wr(struct target *target, const uint8_t * buffer, uint32_t address, uint32_t count, int is_flash_lock); /** diff --git a/src/target/target.c b/src/target/target.c index 43c897d9..c09dfd86 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -853,7 +853,7 @@ done: */ int target_run_flash_async_algorithm(struct target *target, - uint8_t *buffer, uint32_t count, int block_size, + const uint8_t *buffer, uint32_t count, int block_size, int num_mem_params, struct mem_param *mem_params, int num_reg_params, struct reg_param *reg_params, uint32_t buffer_start, uint32_t buffer_size, diff --git a/src/target/target.h b/src/target/target.h index 3ce164a2..8e1c8f95 100644 --- a/src/target/target.h +++ b/src/target/target.h @@ -474,7 +474,7 @@ int target_wait_algorithm(struct target *target, * */ int target_run_flash_async_algorithm(struct target *target, - uint8_t *buffer, uint32_t count, int block_size, + const uint8_t *buffer, uint32_t count, int block_size, int num_mem_params, struct mem_param *mem_params, int num_reg_params, struct reg_param *reg_params, uint32_t buffer_start, uint32_t buffer_size,