target/cortex_m: try to re-examine under reset in cortex_m_assert_reset()
An application often idling in real sleep mode may make a Cortex-M target hard to access as CPU clock are gated and debug requests are responded by WAIT ack. Try to examine the target under reset as the last resort. Change-Id: Ife875a966a838c37dde987bc584ad0a1f4d020d6 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7228 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
parent
b991c416b7
commit
f65d1da013
|
@ -1437,6 +1437,14 @@ static int cortex_m_assert_reset(struct target *target)
|
||||||
srst_asserted = true;
|
srst_asserted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO: replace the hack calling target_examine_one()
|
||||||
|
* as soon as a better reset framework is available */
|
||||||
|
if (!target_was_examined(target) && !target->defer_examine
|
||||||
|
&& srst_asserted && (jtag_reset_config & RESET_SRST_NO_GATING)) {
|
||||||
|
LOG_TARGET_DEBUG(target, "Trying to re-examine under reset");
|
||||||
|
target_examine_one(target);
|
||||||
|
}
|
||||||
|
|
||||||
/* We need at least debug_ap to go further.
|
/* We need at least debug_ap to go further.
|
||||||
* Inform user and bail out if we don't have one. */
|
* Inform user and bail out if we don't have one. */
|
||||||
if (!armv7m->debug_ap) {
|
if (!armv7m->debug_ap) {
|
||||||
|
@ -1578,7 +1586,7 @@ static int cortex_m_deassert_reset(struct target *target)
|
||||||
enum reset_types jtag_reset_config = jtag_get_reset_config();
|
enum reset_types jtag_reset_config = jtag_get_reset_config();
|
||||||
|
|
||||||
if ((jtag_reset_config & RESET_HAS_SRST) &&
|
if ((jtag_reset_config & RESET_HAS_SRST) &&
|
||||||
!(jtag_reset_config & RESET_SRST_NO_GATING) &&
|
!(jtag_reset_config & RESET_SRST_NO_GATING) &&
|
||||||
armv7m->debug_ap) {
|
armv7m->debug_ap) {
|
||||||
|
|
||||||
int retval = dap_dp_init_or_reconnect(armv7m->debug_ap->dap);
|
int retval = dap_dp_init_or_reconnect(armv7m->debug_ap->dap);
|
||||||
|
|
Loading…
Reference in New Issue