if (CMD_ARGC < 1)
{
- command_print(cmd_ctx, "pic32mx lock <bank>");
+ command_print(CMD_CTX, "pic32mx lock <bank>");
return ERROR_OK;
}
struct flash_bank *bank;
- int retval = CALL_COMMAND_HANDLER(flash_command_get_bank_by_num, 0, &bank);
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
if (pic32mx_erase_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "pic32mx failed to erase options");
+ command_print(CMD_CTX, "pic32mx failed to erase options");
return ERROR_OK;
}
if (pic32mx_write_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "pic32mx failed to lock device");
+ command_print(CMD_CTX, "pic32mx failed to lock device");
return ERROR_OK;
}
- command_print(cmd_ctx, "pic32mx locked");
+ command_print(CMD_CTX, "pic32mx locked");
return ERROR_OK;
}
if (CMD_ARGC < 1)
{
- command_print(cmd_ctx, "pic32mx unlock <bank>");
+ command_print(CMD_CTX, "pic32mx unlock <bank>");
return ERROR_OK;
}
struct flash_bank *bank;
- int retval = CALL_COMMAND_HANDLER(flash_command_get_bank_by_num, 0, &bank);
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
if (pic32mx_erase_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "pic32mx failed to unlock device");
+ command_print(CMD_CTX, "pic32mx failed to unlock device");
return ERROR_OK;
}
if (pic32mx_write_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "pic32mx failed to lock device");
+ command_print(CMD_CTX, "pic32mx failed to lock device");
return ERROR_OK;
}
- command_print(cmd_ctx, "pic32mx unlocked");
+ command_print(CMD_CTX, "pic32mx unlocked");
return ERROR_OK;
}
if (CMD_ARGC != 0)
{
- command_print(cmd_ctx, "pic32mx chip_erase");
+ command_print(CMD_CTX, "pic32mx chip_erase");
return ERROR_OK;
}
struct flash_bank *bank;
- int retval = CALL_COMMAND_HANDLER(flash_command_get_bank_by_num, 0, &bank);
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
bank->sectors[i].is_erased = 1;
}
- command_print(cmd_ctx, "pic32mx chip erase complete");
+ command_print(CMD_CTX, "pic32mx chip erase complete");
}
else
{
- command_print(cmd_ctx, "pic32mx chip erase failed");
+ command_print(CMD_CTX, "pic32mx chip erase failed");
}
#endif
if (CMD_ARGC != 3)
{
- command_print(cmd_ctx, "pic32mx pgm_word <addr> <value> <bank>");
+ command_print(CMD_CTX, "pic32mx pgm_word <addr> <value> <bank>");
return ERROR_OK;
}
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], value);
struct flash_bank *bank;
- int retval = CALL_COMMAND_HANDLER(flash_command_get_bank_by_num, 2, &bank);
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 2, &bank);
if (ERROR_OK != retval)
return retval;
if (address < bank->base || address >= (bank->base + bank->size))
{
- command_print(cmd_ctx, "flash address '%s' is out of bounds", CMD_ARGV[0]);
+ command_print(CMD_CTX, "flash address '%s' is out of bounds", CMD_ARGV[0]);
return ERROR_OK;
}
res = ERROR_FLASH_OPERATION_FAILED;
if (res == ERROR_OK)
- command_print(cmd_ctx, "pic32mx pgm word complete");
+ command_print(CMD_CTX, "pic32mx pgm word complete");
else
- command_print(cmd_ctx, "pic32mx pgm word failed (status = 0x%x)", status);
+ command_print(CMD_CTX, "pic32mx pgm word failed (status = 0x%x)", status);
return ERROR_OK;
}
+static const struct command_registration pic32mx_exec_command_handlers[] = {
+ {
+ .name = "chip_erase",
+ .handler = &pic32mx_handle_chip_erase_command,
+ .mode = COMMAND_EXEC,
+ .help = "erase device",
+ },
+ {
+ .name = "pgm_word",
+ .handler = &pic32mx_handle_pgm_word_command,
+ .mode = COMMAND_EXEC,
+ .help = "program a word",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration pic32mx_command_handlers[] = {
+ {
+ .name = "pic32mx",
+ .mode = COMMAND_ANY,
+ .help = "pic32mx flash command group",
+ .chain = pic32mx_exec_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE
+};
static int pic32mx_register_commands(struct command_context *cmd_ctx)
{
- struct command *pic32mx_cmd = register_command(cmd_ctx, NULL, "pic32mx",
- NULL, COMMAND_ANY, "pic32mx flash specific commands");
-#if 0
- register_command(cmd_ctx, pic32mx_cmd, "lock",
- pic32mx_handle_lock_command, COMMAND_EXEC,
- "lock device");
- register_command(cmd_ctx, pic32mx_cmd, "unlock",
- pic32mx_handle_unlock_command, COMMAND_EXEC,
- "unlock protected device");
-#endif
- register_command(cmd_ctx, pic32mx_cmd, "chip_erase",
- pic32mx_handle_chip_erase_command, COMMAND_EXEC,
- "erase device");
- register_command(cmd_ctx, pic32mx_cmd, "pgm_word",
- pic32mx_handle_pgm_word_command, COMMAND_EXEC,
- "program a word");
- return ERROR_OK;
+ return register_commands(cmd_ctx, NULL, pic32mx_command_handlers);
}
struct flash_driver pic32mx_flash = {