jtag/core: honour SRST timings in SWD mode
authorPaul Fertser <fercerpav@gmail.com>
Mon, 9 Mar 2015 15:55:03 +0000 (18:55 +0300)
committerPaul Fertser <fercerpav@gmail.com>
Tue, 14 Apr 2015 10:41:54 +0000 (11:41 +0100)
Since SWD is currently abusing the JTAG command queue for reset and
sleep handling (and all other operations are performed in a different
way), sleep needs to be forced explicitly to ensure correct timings.

Change-Id: I5b0da6cbb7d0560154e4077b261aa6828cefc892
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2591
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/jtag/core.c

index 1b1106f121ed3741a8af62c9678630e6336246ac..74c2731c2ca3777c7e2434b99d369e81d46a8b7b 100644 (file)
@@ -649,6 +649,12 @@ void swd_add_reset(int req_srst)
                        if (adapter_nsrst_delay)
                                jtag_add_sleep(adapter_nsrst_delay * 1000);
                }
+
+               retval = jtag_execute_queue();
+               if (retval != ERROR_OK) {
+                       LOG_ERROR("SRST timings error");
+                       return;
+               }
        }
 }