]> git.sur5r.net Git - openocd/commitdiff
mips: Forced to running state to enable (subsequent) target halt.
authorDrasko DRASKOVIC <drasko.draskovic@gmail.com>
Mon, 12 Mar 2012 21:10:24 +0000 (22:10 +0100)
committerSpencer Oliver <spen@spen-soft.co.uk>
Wed, 14 Mar 2012 20:31:04 +0000 (20:31 +0000)
Change-Id: I9aff8fb3ac703b50194088dd4e68cec8f9bb2ada
Signed-off-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
Reviewed-on: http://openocd.zylin.com/513
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/target/mips_m4k.c

index 623d55e0d8360e9dcabc25cf010324f8f34ae1a4..c64d5cf6093c35d67416714c3f225dee755dcc73 100644 (file)
@@ -143,6 +143,17 @@ static int mips_m4k_poll(struct target *target)
 
        /* check for processor halted */
        if (ejtag_ctrl & EJTAG_CTRL_BRKST) {
+               if (target->state == TARGET_UNKNOWN) {
+                       LOG_DEBUG("EJTAG_CTRL_BRKST already set during server startup.");
+
+                       /* OpenOCD was was probably started on the board with EJTAG_CTRL_BRKST already set
+                        * (maybe put on by HALT-ing the board in the previous session).
+                        *
+                        * Force target to RUNNING state to enable debug entry for this session.
+                        */
+                       target->state = TARGET_RUNNING;
+               }
+
                if ((target->state == TARGET_RUNNING) || (target->state == TARGET_RESET)) {
                        mips_ejtag_set_instr(ejtag_info, EJTAG_INST_NORMALBOOT);