Merge pull request #665 from riscv/examined
Don't reexamine targets until it's time.
This commit is contained in:
commit
cb4876d80c
|
@ -770,6 +770,12 @@ static int jtag_enable_callback(enum jtag_event event, void *priv)
|
||||||
return target_examine_one(target);
|
return target_examine_one(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* When this is true, it's OK to call examine() again in the hopes that this time
|
||||||
|
* it will work. Earlier than that there is probably other initialization that
|
||||||
|
* needs to happen (like scanning the JTAG chain) before examine should be
|
||||||
|
* called. */
|
||||||
|
static bool examine_attempted;
|
||||||
|
|
||||||
/* Targets that correctly implement init + examine, i.e.
|
/* Targets that correctly implement init + examine, i.e.
|
||||||
* no communication with target during init:
|
* no communication with target during init:
|
||||||
*
|
*
|
||||||
|
@ -780,6 +786,8 @@ int target_examine(void)
|
||||||
int retval = ERROR_OK;
|
int retval = ERROR_OK;
|
||||||
struct target *target;
|
struct target *target;
|
||||||
|
|
||||||
|
examine_attempted = true;
|
||||||
|
|
||||||
for (target = all_targets; target; target = target->next) {
|
for (target = all_targets; target; target = target->next) {
|
||||||
/* defer examination, but don't skip it */
|
/* defer examination, but don't skip it */
|
||||||
if (!target->tap->enabled) {
|
if (!target->tap->enabled) {
|
||||||
|
@ -3047,7 +3055,7 @@ static int handle_target(void *priv)
|
||||||
*/
|
*/
|
||||||
target_call_event_callbacks(target, TARGET_EVENT_GDB_HALT);
|
target_call_event_callbacks(target, TARGET_EVENT_GDB_HALT);
|
||||||
}
|
}
|
||||||
if (target->backoff.times > 0) {
|
if (target->backoff.times > 0 && examine_attempted) {
|
||||||
LOG_DEBUG("[%s] Polling failed, trying to reexamine", target_name(target));
|
LOG_DEBUG("[%s] Polling failed, trying to reexamine", target_name(target));
|
||||||
target_reset_examined(target);
|
target_reset_examined(target);
|
||||||
retval = target_examine_one(target);
|
retval = target_examine_one(target);
|
||||||
|
|
Loading…
Reference in New Issue