Skip to content
Snippets Groups Projects
Commit 111b7a6a authored by Zachary T Welch's avatar Zachary T Welch
Browse files

Improve str7x config command argument parsing.

parent aa9351ba
No related branches found
No related tags found
No related merge requests found
...@@ -640,12 +640,10 @@ static int str7x_info(struct flash_bank_s *bank, char *buf, int buf_size) ...@@ -640,12 +640,10 @@ static int str7x_info(struct flash_bank_s *bank, char *buf, int buf_size)
static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank;
target_t *target = NULL; target_t *target = NULL;
str7x_flash_bank_t *str7x_info = NULL; str7x_flash_bank_t *str7x_info = NULL;
uint32_t flash_cmd; uint32_t flash_cmd;
uint32_t retval;
uint16_t ProtectionLevel = 0; uint16_t ProtectionLevel = 0;
uint16_t ProtectionRegs; uint16_t ProtectionRegs;
...@@ -655,12 +653,10 @@ static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, ...@@ -655,12 +653,10 @@ static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx,
return ERROR_OK; return ERROR_OK;
} }
bank = get_flash_bank_by_num(strtoul(args[0], NULL, 0)); flash_bank_t *bank;
if (!bank) int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
{ if (ERROR_OK != retval)
command_print(cmd_ctx, "str7x disable_jtag <bank> ok"); return retval;
return ERROR_OK;
}
str7x_info = bank->driver_priv; str7x_info = bank->driver_priv;
...@@ -673,15 +669,16 @@ static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, ...@@ -673,15 +669,16 @@ static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx,
} }
/* first we get protection status */ /* first we get protection status */
target_read_u32(target, str7x_get_flash_adr(bank, FLASH_NVAPR0), &retval); uint32_t reg;
target_read_u32(target, str7x_get_flash_adr(bank, FLASH_NVAPR0), &reg);
if (!(retval & str7x_info->disable_bit)) if (!(reg & str7x_info->disable_bit))
{ {
ProtectionLevel = 1; ProtectionLevel = 1;
} }
target_read_u32(target, str7x_get_flash_adr(bank, FLASH_NVAPR1), &retval); target_read_u32(target, str7x_get_flash_adr(bank, FLASH_NVAPR1), &reg);
ProtectionRegs = ~(retval >> 16); ProtectionRegs = ~(reg >> 16);
while (((ProtectionRegs) != 0) && (ProtectionLevel < 16)) while (((ProtectionRegs) != 0) && (ProtectionLevel < 16))
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment