]> www.infradead.org Git - users/borneoa/openocd-next.git/commitdiff
target: re-examine before arp_waitstate in ocd_process_reset_inner
authorTomas Vanek <vanekt@fbl.cz>
Wed, 28 Sep 2022 21:19:00 +0000 (23:19 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 8 Oct 2022 08:53:51 +0000 (08:53 +0000)
arp_waitstate will not work on not-examined state

Change-Id: I56c3e1c7e63af108e4ed1dbacebb567f9bf46264
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/7230
Tested-by: jenkins
Reviewed-by: Erwan Gouriou
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/target/startup.tcl

index 290e79d1eee3ab13a1f193f887114c813b313dd1..35492a6d913d07abab05081d311a74009639a736 100644 (file)
@@ -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