summaryrefslogtreecommitdiff
path: root/src/jtag/jtag.h
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2009-10-08 11:14:00 -0700
committerDavid Brownell <dbrownell@users.sourceforge.net>2009-10-08 11:14:00 -0700
commita8234af06c16500426a421910886d26a46e6fa53 (patch)
tree557a5d04fb74e34980be1ac433217812ae1ade93 /src/jtag/jtag.h
parent40c9668b703389890d30ab5a410e39f6f1e5251e (diff)
downloadopenocd_libswd-a8234af06c16500426a421910886d26a46e6fa53.tar.gz
openocd_libswd-a8234af06c16500426a421910886d26a46e6fa53.tar.bz2
openocd_libswd-a8234af06c16500426a421910886d26a46e6fa53.tar.xz
openocd_libswd-a8234af06c16500426a421910886d26a46e6fa53.zip
prevent abort via polling during jtag_reset
Observed: openocd: core.c:318: jtag_checks: Assertion `jtag_trst == 0' failed. The issue was that nothing disabled background polling during calls from the TCL shell to "jtag_reset 1 1". Fix by moving the existing poll-disable mechanism to the JTAG layer where it belongs, and then augmenting it to always pay attention to TRST and SRST. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'src/jtag/jtag.h')
-rw-r--r--src/jtag/jtag.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h
index 0126b331..5085445f 100644
--- a/src/jtag/jtag.h
+++ b/src/jtag/jtag.h
@@ -737,4 +737,21 @@ int jtag_get_error(void);
*/
int jtag_error_clear(void);
+/**
+ * Return true if it's safe for a background polling task to access the
+ * JTAG scan chain. Polling may be explicitly disallowed, and is also
+ * unsafe while nTRST is active or the JTAG clock is gated off.,
+ */
+bool is_jtag_poll_safe(void);
+
+/**
+ * Return flag reporting whether JTAG polling is disallowed.
+ */
+bool jtag_poll_get_enabled(void);
+
+/**
+ * Assign flag reporting whether JTAG polling is disallowed.
+ */
+void jtag_poll_set_enabled(bool value);
+
#endif /* JTAG_H */