- added patch to display device information as INFO too
- added patch which fixes a crash upon flash write error - added patch which will improve the reset handling when SRST is tied to TRST (thanks to Oyvind Harboe for these patches) git-svn-id: svn://svn.berlios.de/openocd/trunk@218 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
00bbf24c16
commit
9e6cec0dd3
|
@ -570,10 +570,19 @@ int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cm
|
||||||
|
|
||||||
failed = malloc(sizeof(int) * image.num_sections);
|
failed = malloc(sizeof(int) * image.num_sections);
|
||||||
|
|
||||||
if ((retval = flash_write(target, &image, &written, &error_str, failed, auto_erase)) != ERROR_OK)
|
error_str=NULL;
|
||||||
|
retval = flash_write(target, &image, &written, &error_str, failed, auto_erase);
|
||||||
|
|
||||||
|
if (retval != ERROR_OK)
|
||||||
{
|
{
|
||||||
command_print(cmd_ctx, "failed writing image %s: %s", args[0], error_str);
|
if (error_str)
|
||||||
free(error_str);
|
{
|
||||||
|
command_print(cmd_ctx, "failed writing image %s: %s", args[0], error_str);
|
||||||
|
free(error_str);
|
||||||
|
}
|
||||||
|
image_close(&image);
|
||||||
|
free(failed);
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < image.num_sections; i++)
|
for (i = 0; i < image.num_sections; i++)
|
||||||
|
@ -938,3 +947,4 @@ int handle_flash_auto_erase_command(struct command_context_s *cmd_ctx, char *cmd
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1287,7 +1287,7 @@ int jtag_examine_chain()
|
||||||
part = (idcode & 0xffff000) >> 12;
|
part = (idcode & 0xffff000) >> 12;
|
||||||
version = (idcode & 0xf0000000) >> 28;
|
version = (idcode & 0xf0000000) >> 28;
|
||||||
|
|
||||||
DEBUG("JTAG device found: 0x%8.8x (Manufacturer: 0x%3.3x, Part: 0x%4.4x, Version: 0x%1.1x",
|
INFO("JTAG device found: 0x%8.8x (Manufacturer: 0x%3.3x, Part: 0x%4.4x, Version: 0x%1.1x)",
|
||||||
idcode, manufacturer, part, version);
|
idcode, manufacturer, part, version);
|
||||||
|
|
||||||
bit_count += 32;
|
bit_count += 32;
|
||||||
|
|
|
@ -313,6 +313,23 @@ int target_process_reset(struct command_context_s *cmd_ctx)
|
||||||
while (target)
|
while (target)
|
||||||
{
|
{
|
||||||
target->type->deassert_reset(target);
|
target->type->deassert_reset(target);
|
||||||
|
|
||||||
|
switch (target->reset_mode)
|
||||||
|
{
|
||||||
|
case RESET_INIT:
|
||||||
|
case RESET_HALT:
|
||||||
|
// If we're already halted, then this is harmless(reducing # of execution paths here)
|
||||||
|
// If nSRST & nTRST are tied together then the halt during reset failed(logged) and
|
||||||
|
// we use this as fallback(there is no other output to tell the user that reset halt
|
||||||
|
// didn't work).
|
||||||
|
target->type->poll(target);
|
||||||
|
target->type->halt(target);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
target = target->next;
|
target = target->next;
|
||||||
}
|
}
|
||||||
jtag_execute_queue();
|
jtag_execute_queue();
|
||||||
|
@ -1188,8 +1205,7 @@ int handle_target(void *priv)
|
||||||
if (target_continous_poll)
|
if (target_continous_poll)
|
||||||
if ((retval = target->type->poll(target)) < 0)
|
if ((retval = target->type->poll(target)) < 0)
|
||||||
{
|
{
|
||||||
ERROR("couldn't poll target, exiting");
|
ERROR("couldn't poll target. It's due for a reset.");
|
||||||
exit(-1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1860,7 +1876,7 @@ int handle_verify_image_command(struct command_context_s *cmd_ctx, char *cmd, ch
|
||||||
if (!target)
|
if (!target)
|
||||||
{
|
{
|
||||||
ERROR("no target selected");
|
ERROR("no target selected");
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
duration_start_measure(&duration);
|
duration_start_measure(&duration);
|
||||||
|
@ -2085,3 +2101,4 @@ int handle_rwp_command(struct command_context_s *cmd_ctx, char *cmd, char **args
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue