X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Fstr9x.c;h=98f15e75b4bf7d8d8337b27e70dc7b084fd866e5;hp=09e5a08fe345ea4f595ef6d389b03c7ae1df9611;hb=c4992c6d863d0ead91d84d19bbfe1643d720b205;hpb=46fc1d57ac9462fd788277609707a379c7a406cb diff --git a/src/flash/str9x.c b/src/flash/str9x.c index 09e5a08fe3..98f15e75b4 100644 --- a/src/flash/str9x.c +++ b/src/flash/str9x.c @@ -29,11 +29,12 @@ #include "str9x.h" #include "arm966e.h" +#include "algorithm.h" static uint32_t bank1start = 0x00080000; -static int str9x_build_block_list(struct flash_bank_s *bank) +static int str9x_build_block_list(struct flash_bank *bank) { struct str9x_flash_bank *str9x_info = bank->driver_priv; @@ -120,7 +121,7 @@ FLASH_BANK_COMMAND_HANDLER(str9x_flash_bank_command) { struct str9x_flash_bank *str9x_info; - if (argc < 6) + if (CMD_ARGC < 6) { LOG_WARNING("incomplete flash_bank str9x configuration"); return ERROR_FLASH_BANK_INVALID; @@ -136,11 +137,11 @@ FLASH_BANK_COMMAND_HANDLER(str9x_flash_bank_command) return ERROR_OK; } -static int str9x_protect_check(struct flash_bank_s *bank) +static int str9x_protect_check(struct flash_bank *bank) { int retval; struct str9x_flash_bank *str9x_info = bank->driver_priv; - target_t *target = bank->target; + struct target *target = bank->target; int i; uint32_t adr; @@ -214,9 +215,9 @@ static int str9x_protect_check(struct flash_bank_s *bank) return ERROR_OK; } -static int str9x_erase(struct flash_bank_s *bank, int first, int last) +static int str9x_erase(struct flash_bank *bank, int first, int last) { - target_t *target = bank->target; + struct target *target = bank->target; int i; uint32_t adr; uint8_t status; @@ -306,10 +307,10 @@ static int str9x_erase(struct flash_bank_s *bank, int first, int last) return ERROR_OK; } -static int str9x_protect(struct flash_bank_s *bank, +static int str9x_protect(struct flash_bank *bank, int set, int first, int last) { - target_t *target = bank->target; + struct target *target = bank->target; int i; uint32_t adr; uint8_t status; @@ -345,11 +346,11 @@ static int str9x_protect(struct flash_bank_s *bank, return ERROR_OK; } -static int str9x_write_block(struct flash_bank_s *bank, +static int str9x_write_block(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) { struct str9x_flash_bank *str9x_info = bank->driver_priv; - target_t *target = bank->target; + struct target *target = bank->target; uint32_t buffer_size = 8192; struct working_area *source; uint32_t address = bank->base + offset; @@ -454,10 +455,10 @@ static int str9x_write_block(struct flash_bank_s *bank, return retval; } -static int str9x_write(struct flash_bank_s *bank, +static int str9x_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) { - target_t *target = bank->target; + struct target *target = bank->target; uint32_t words_remaining = (count / 2); uint32_t bytes_remaining = (count & 0x00000001); uint32_t address = bank->base + offset; @@ -612,7 +613,7 @@ static int str9x_write(struct flash_bank_s *bank, return ERROR_OK; } -static int str9x_probe(struct flash_bank_s *bank) +static int str9x_probe(struct flash_bank *bank) { return ERROR_OK; } @@ -624,7 +625,7 @@ COMMAND_HANDLER(str9x_handle_part_id_command) } #endif -static int str9x_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int str9x_info(struct flash_bank *bank, char *buf, int buf_size) { snprintf(buf, buf_size, "str9x flash driver info"); return ERROR_OK; @@ -633,23 +634,23 @@ static int str9x_info(struct flash_bank_s *bank, char *buf, int buf_size) COMMAND_HANDLER(str9x_handle_flash_config_command) { struct str9x_flash_bank *str9x_info; - target_t *target = NULL; + struct target *target = NULL; - if (argc < 5) + if (CMD_ARGC < 5) { return ERROR_COMMAND_SYNTAX_ERROR; } - flash_bank_t *bank; - int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank); + struct flash_bank *bank; + int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank); if (ERROR_OK != retval) return retval; uint32_t bbsr, nbbsr, bbadr, nbbadr; - COMMAND_PARSE_NUMBER(u32, args[1], bbsr); - COMMAND_PARSE_NUMBER(u32, args[2], nbbsr); - COMMAND_PARSE_NUMBER(u32, args[3], bbadr); - COMMAND_PARSE_NUMBER(u32, args[4], nbbadr); + COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], bbsr); + COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], nbbsr); + COMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], bbadr); + COMMAND_PARSE_NUMBER(u32, CMD_ARGV[4], nbbadr); str9x_info = bank->driver_priv; @@ -675,21 +676,29 @@ COMMAND_HANDLER(str9x_handle_flash_config_command) return ERROR_OK; } -static int str9x_register_commands(struct command_context_s *cmd_ctx) -{ - command_t *str9x_cmd = register_command(cmd_ctx, NULL, "str9x", - NULL, COMMAND_ANY, "str9x flash commands"); - - register_command(cmd_ctx, str9x_cmd, "flash_config", - str9x_handle_flash_config_command, COMMAND_EXEC, - "configure str9 flash controller"); - - return ERROR_OK; -} +static const struct command_registration str9x_config_command_handlers[] = { + { + .name = "disable_jtag", + .handler = &str9x_handle_flash_config_command, + .mode = COMMAND_EXEC, + .help = "configure str9x flash controller", + .usage = " ", + }, + COMMAND_REGISTRATION_DONE +}; +static const struct command_registration str9x_command_handlers[] = { + { + .name = "str9x", + .mode = COMMAND_ANY, + .help = "str9x flash command group", + .chain = str9x_config_command_handlers, + }, + COMMAND_REGISTRATION_DONE +}; struct flash_driver str9x_flash = { .name = "str9x", - .register_commands = &str9x_register_commands, + .commands = str9x_command_handlers, .flash_bank_command = &str9x_flash_bank_command, .erase = &str9x_erase, .protect = &str9x_protect,