wait up to 1 second for halted state upon reset init/halt.
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 31 Jul 2008 15:52:01 +0000 (15:52 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 31 Jul 2008 15:52:01 +0000 (15:52 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@884 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/target/target.c

index c2fce59d61c986a1e03855eae112adc44f721020..02016e774c0aa503884614dd2768b7436e57b75b 100644 (file)
@@ -335,11 +335,15 @@ int target_process_reset(struct command_context_s *cmd_ctx, enum target_reset_mo
        {
                target->type->deassert_reset(target);
                /* We can fail to bring the target into the halted state  */
-               target_poll(target);
-               if (target->reset_halt&&((target->state != TARGET_HALTED)))
+               if (target->reset_halt)
                {
-                       LOG_WARNING("Failed to reset target into halted mode - issuing halt");
-                       target->type->halt(target);
+                       /* wait up to 1 second for halt. */
+                       target_wait_state(target, TARGET_HALTED, 1000);
+                       if (target->state != TARGET_HALTED)
+                       {
+                               LOG_WARNING("Failed to reset target into halted mode - issuing halt");
+                               target->type->halt(target);
+                       }
                }
 
                target = target->next;