summaryrefslogtreecommitdiff
path: root/src/flash/str7x.c
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-10-23 01:32:20 -0700
committerZachary T Welch <zw@superlucidity.net>2009-11-05 18:19:19 -0800
commit111b7a6a9dbd68c906b8a8dff6e6c34d780297db (patch)
tree06d56d61720e0d4bbda552c4de87a89728f45786 /src/flash/str7x.c
parentaa9351ba46d0959555a4b293627ea14b5b42344f (diff)
downloadopenocd+libswd-111b7a6a9dbd68c906b8a8dff6e6c34d780297db.tar.gz
openocd+libswd-111b7a6a9dbd68c906b8a8dff6e6c34d780297db.tar.bz2
openocd+libswd-111b7a6a9dbd68c906b8a8dff6e6c34d780297db.tar.xz
openocd+libswd-111b7a6a9dbd68c906b8a8dff6e6c34d780297db.zip
Improve str7x config command argument parsing.
Diffstat (limited to 'src/flash/str7x.c')
-rw-r--r--src/flash/str7x.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/flash/str7x.c b/src/flash/str7x.c
index 4d35748e..650c0bc3 100644
--- a/src/flash/str7x.c
+++ b/src/flash/str7x.c
@@ -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)
{
- flash_bank_t *bank;
target_t *target = NULL;
str7x_flash_bank_t *str7x_info = NULL;
uint32_t flash_cmd;
- uint32_t retval;
uint16_t ProtectionLevel = 0;
uint16_t ProtectionRegs;
@@ -655,12 +653,10 @@ static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx,
return ERROR_OK;
}
- bank = get_flash_bank_by_num(strtoul(args[0], NULL, 0));
- if (!bank)
- {
- command_print(cmd_ctx, "str7x disable_jtag <bank> ok");
- return ERROR_OK;
- }
+ flash_bank_t *bank;
+ int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ if (ERROR_OK != retval)
+ return retval;
str7x_info = bank->driver_priv;
@@ -673,15 +669,16 @@ static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx,
}
/* 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;
}
- target_read_u32(target, str7x_get_flash_adr(bank, FLASH_NVAPR1), &retval);
- ProtectionRegs = ~(retval >> 16);
+ target_read_u32(target, str7x_get_flash_adr(bank, FLASH_NVAPR1), &reg);
+ ProtectionRegs = ~(reg >> 16);
while (((ProtectionRegs) != 0) && (ProtectionLevel < 16))
{