target->type->assert_reset(target);
target = target->next;
}
- jtag_execute_queue();
+ if ((retval = jtag_execute_queue()) != ERROR_OK)
+ {
+ LOG_WARNING("JTAG communication failed asserting reset.");
+ retval = ERROR_OK;
+ }
/* request target halt if necessary, and schedule further action */
target = targets;
target = target->next;
}
+ if ((retval = jtag_execute_queue()) != ERROR_OK)
+ {
+ LOG_WARNING("JTAG communication failed while reset was asserted. Consider using srst_only for reset_config.");
+ retval = ERROR_OK;
+ }
+
target = targets;
while (target)
{
target->type->deassert_reset(target);
target = target->next;
}
- jtag_execute_queue();
+
+ if ((retval = jtag_execute_queue()) != ERROR_OK)
+ {
+ LOG_WARNING("JTAG communication failed while deasserting reset.");
+ retval = ERROR_OK;
+ }
LOG_DEBUG("Waiting for halted stated as approperiate");
int target_register_commands(struct command_context_s *cmd_ctx)
{
- register_command(cmd_ctx, NULL, "target", handle_target_command, COMMAND_CONFIG, NULL);
+ register_command(cmd_ctx, NULL, "target", handle_target_command, COMMAND_CONFIG, "target <cpu> [reset_init default - DEPRECATED] <chainpos> <endianness> <variant> [cpu type specifc args]");
register_command(cmd_ctx, NULL, "targets", handle_targets_command, COMMAND_EXEC, NULL);
register_command(cmd_ctx, NULL, "daemon_startup", handle_daemon_startup_command, COMMAND_CONFIG, NULL);
register_command(cmd_ctx, NULL, "target_script", handle_target_script_command, COMMAND_CONFIG, NULL);
}
/* what to do on a target reset */
+ (*last_target_p)->reset_mode = RESET_INIT; /* default */
if (strcmp(args[2], "reset_halt") == 0)
(*last_target_p)->reset_mode = RESET_HALT;
else if (strcmp(args[2], "reset_run") == 0)
(*last_target_p)->reset_mode = RESET_RUN_AND_INIT;
else
{
- LOG_ERROR("unknown target startup mode %s", args[2]);
- return ERROR_COMMAND_SYNTAX_ERROR;
+ /* Kludge! we want to make this reset arg optional while remaining compatible! */
+ args--;
+ argc++;
}
(*last_target_p)->run_and_halt_time = 1000; /* default 1s */
if (argc < 1)
{
- command_print(cmd_ctx, "usage: verify_image <file> [offset] [type]");
- return ERROR_OK;
+ return ERROR_COMMAND_SYNTAX_ERROR;
}
if (!target)
{
LOG_ERROR("no target selected");
- return ERROR_OK;
+ return ERROR_FAIL;
}
duration_start_measure(&duration);
image.start_address_set = 0;
- if (image_open(&image, args[0], (argc == 3) ? args[2] : NULL) != ERROR_OK)
+ if ((retval=image_open(&image, args[0], (argc == 3) ? args[2] : NULL)) != ERROR_OK)
{
- return ERROR_OK;
+ return retval;
}
image_size = 0x0;