Pavel pointed out that jtag_add_tlr() is better than jtag_add_tms().
[openocd.git] / src / jtag / jtag.h
index 2c186e9cbc3b028a4543a41ae9a2d49d8a15f2d0..19329447735806bfc481d76a1e616d871344f102 100644 (file)
@@ -268,8 +268,8 @@ extern int interface_jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields
 /* run a TAP_TLR reset. End state is TAP_TLR, regardless
  * of start state.
  */
-extern void jtag_add_tms();
-extern int interface_jtag_add_tms();
+extern void jtag_add_tlr();
+extern int interface_jtag_add_tlr();
 /* Do not use jtag_add_pathmove() unless you need to, but do use it
  * if you have to. 
  *
@@ -308,13 +308,32 @@ extern int interface_jtag_add_pathmove(int num_states, enum tap_state *path);
  */
 extern void jtag_add_runtest(int num_cycles, enum tap_state endstate);
 extern int interface_jtag_add_runtest(int num_cycles, enum tap_state endstate);
-/* Invoking jtag_add_reset() with unsupported combinations is
- * not allowed and constitutes a bug in the calling code.
+/* A reset of the TAP state machine can be requested.
  * 
- * trst & srst must be 0 or 1. There is no way to 
- * read the current reset state.
+ * Whether tms or trst reset is used depends on the capabilities of 
+ * the target and jtag interface(reset_config  command configures this).
+ * 
+ * srst can driver a reset of the TAP state machine and vice
+ * versa
+ * 
+ * Application code may need to examine value of jtag_reset_config
+ * to determine the proper codepath
+ * 
+ * DANGER! Even though srst drives trst, trst might not be connected to
+ * the interface, and it might actually be *harmful* to assert trst in this case.
+ * 
+ * This is why combinations such as "reset_config srst_only srst_pulls_trst"
+ * are supported. 
+ *
+ */
+extern void jtag_add_reset(int req_tlr_or_trst, int srst);
+/* this drives the actual srst and trst pins. srst will always be 0
+ * if jtag_reset_config & RESET_SRST_PULLS_TRST != 0 and ditto for
+ * trst.
+ * 
+ * the higher level jtag_add_reset will invoke jtag_add_tlr() if 
+ * approperiate
  */
-extern void jtag_add_reset(int trst, int srst);
 extern int interface_jtag_add_reset(int trst, int srst);
 extern void jtag_add_end_state(enum tap_state endstate);
 extern int interface_jtag_add_end_state(enum tap_state endstate);

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)