target/cortex_m: remove dependency from jtag queue
Since the first commit 09883194f8
that introduced cortex_m, the
code has a delay of 50ms after srst has been asserted.
The specific delay is implemented through the JTAG_SLEEP command
sent in the jtag queue.
To remove the dependency from the jtag queue, replace the delay
with a transport independent function.
In case of jtag transport, this change keeps the same behaviour
only if the jtag queue has been flushed before the delay. This
does not happen if the call to dap_dp_init(), few lines above,
fails while calling a dap_queue_dp_{read,write}(); in this case
the jtag queue will be flushed later, after the delay, while in
the original code the delay would follow the flushing of the
commands already queued. Anyway, this different behavior would
only happen in case of DAP already not responsive so anticipating
the delay in such error condition is not supposed to add further
problems.
Change-Id: If15978246764e4266b10e707d86c03e5ed907de7
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/4912
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
parent
e5177a5ad4
commit
02cd1e39cc
|
@ -1198,7 +1198,7 @@ static int cortex_m_assert_reset(struct target *target)
|
||||||
}
|
}
|
||||||
|
|
||||||
target->state = TARGET_RESET;
|
target->state = TARGET_RESET;
|
||||||
jtag_add_sleep(50000);
|
jtag_sleep(50000);
|
||||||
|
|
||||||
register_cache_invalidate(cortex_m->armv7m.arm.core_cache);
|
register_cache_invalidate(cortex_m->armv7m.arm.core_cache);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue