print out an error if srst_pulls_trst is not specified for

e.g. at91fr40008. Could possibly show bogus false positives in log without any other side effects.

git-svn-id: svn://svn.berlios.de/openocd/trunk@666 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
oharboe 2008-05-19 18:58:47 +00:00
parent b723e78d70
commit a76c3433e1
1 changed files with 18 additions and 7 deletions

View File

@ -225,6 +225,16 @@ int target_init_handler(struct target_s *target, enum target_event event, void *
if ((event == TARGET_EVENT_HALTED) && (target->reset_script)) if ((event == TARGET_EVENT_HALTED) && (target->reset_script))
{ {
if ((jtag_reset_config & RESET_SRST_PULLS_TRST)==0)
{
reg_t *reg = register_get_by_name(target->reg_cache, "pc", 1);
u32 t=*((u32 *)reg->value);
if (t!=0)
{
LOG_ERROR("PC was not 0. Does this target does target need srst_pulls_trst?");
}
}
target_unregister_event_callback(target_init_handler, priv); target_unregister_event_callback(target_init_handler, priv);
script = open_file_from_path(target->reset_script, "r"); script = open_file_from_path(target->reset_script, "r");
@ -394,6 +404,12 @@ int target_process_reset(struct command_context_s *cmd_ctx)
target = target->next; target = target->next;
} }
if ((retval = jtag_execute_queue()) != ERROR_OK)
{
LOG_WARNING("JTAG communication failed while deasserting reset.");
retval = ERROR_OK;
}
if (jtag_reset_config & RESET_SRST_PULLS_TRST) if (jtag_reset_config & RESET_SRST_PULLS_TRST)
{ {
/* If TRST was asserted we need to set up registers again */ /* If TRST was asserted we need to set up registers again */
@ -401,11 +417,6 @@ int target_process_reset(struct command_context_s *cmd_ctx)
return retval; return retval;
} }
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"); LOG_DEBUG("Waiting for halted stated as approperiate");