From dc6cad855d1557e01437ba777b55ad023ddd04ef Mon Sep 17 00:00:00 2001 From: Tomas Vanek Date: Wed, 28 Sep 2022 23:19:00 +0200 Subject: [PATCH] target: re-examine before arp_waitstate in ocd_process_reset_inner arp_waitstate will not work on not-examined state Change-Id: I56c3e1c7e63af108e4ed1dbacebb567f9bf46264 Signed-off-by: Tomas Vanek Reviewed-on: https://review.openocd.org/c/openocd/+/7230 Tested-by: jenkins Reviewed-by: Erwan Gouriou Reviewed-by: Antonio Borneo --- src/target/startup.tcl | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/target/startup.tcl b/src/target/startup.tcl index 290e79d1e..35492a6d9 100644 --- a/src/target/startup.tcl +++ b/src/target/startup.tcl @@ -114,10 +114,21 @@ proc ocd_process_reset_inner { MODE } { continue } - # don't wait for targets where examination is deferred - # they can not be halted anyway at this point - if { ![$t was_examined] && [$t examine_deferred] } { - continue + if { ![$t was_examined] } { + # don't wait for targets where examination is deferred + # they can not be halted anyway at this point + if { [$t examine_deferred] } { + continue + } + # try to re-examine or target state will be unknown + $t invoke-event examine-start + set err [catch "$t arp_examine allow-defer"] + if { $err } { + $t invoke-event examine-fail + return -code error [format "TARGET: %s - Not examined" $t] + } else { + $t invoke-event examine-end + } } # Wait up to 1 second for target to halt. Why 1sec? Cause