X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Fnor%2Fstr9x.c;h=85cbe6a4fe4cbbd215bcf89b2130f5aab26a491e;hp=7d93b187dffa95360bb78c15266921a3fe5ce0a4;hb=2caa3455ada686baea01a50d092e4244c461e101;hpb=cbf4760e15d217c0a83e65f13bddfcbfad7d2fec diff --git a/src/flash/nor/str9x.c b/src/flash/nor/str9x.c index 7d93b187df..85cbe6a4fe 100644 --- a/src/flash/nor/str9x.c +++ b/src/flash/nor/str9x.c @@ -19,9 +19,7 @@ * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * + * along with this program. If not, see . * ***************************************************************************/ #ifdef HAVE_CONFIG_H @@ -347,7 +345,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; @@ -390,11 +388,12 @@ static int str9x_write_block(struct flash_bank *bank, &write_algorithm) != ERROR_OK) { LOG_WARNING("no working area available, can't do block memory writes"); return ERROR_TARGET_RESOURCE_NOT_AVAILABLE; - }; + } - target_write_buffer(target, write_algorithm->address, - sizeof(str9x_flash_write_code), - (uint8_t *)str9x_flash_write_code); + uint8_t code[sizeof(str9x_flash_write_code)]; + target_buffer_set_u32_array(target, code, ARRAY_SIZE(str9x_flash_write_code), + str9x_flash_write_code); + target_write_buffer(target, write_algorithm->address, sizeof(code), code); /* memory buffer */ while (target_alloc_working_area_try(target, buffer_size, &source) != ERROR_OK) { @@ -458,7 +457,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); @@ -668,7 +667,7 @@ static const struct command_registration str9x_command_handlers[] = { COMMAND_REGISTRATION_DONE }; -struct flash_driver str9x_flash = { +const struct flash_driver str9x_flash = { .name = "str9x", .commands = str9x_command_handlers, .flash_bank_command = str9x_flash_bank_command, @@ -680,4 +679,5 @@ struct flash_driver str9x_flash = { .auto_probe = str9x_probe, .erase_check = default_flash_blank_check, .protect_check = str9x_protect_check, + .free_driver_priv = default_flash_free_driver_priv, };