- added "init" command. "init" and "reset" at end of startup script is equivalent
[openocd.git] / src / jtag / jtag.h
index 2c186e9cbc3b028a4543a41ae9a2d49d8a15f2d0..b7ce094d6aeec0f17d6e9ffa639fc70dfa408eed 100644 (file)
@@ -241,8 +241,12 @@ enum reset_types
 
 extern enum reset_types jtag_reset_config;
 
-/* JTAG subsystem */
+/* initialize JTAG chain using only a TLR reset. If init fails,
+ * try reset + init.
+ */
 extern int jtag_init(struct command_context_s *cmd_ctx);
+/* reset, then initialize JTAG chain */
+extern int jtag_init_reset(struct command_context_s *cmd_ctx);
 extern int jtag_register_commands(struct command_context_s *cmd_ctx);
 
 /* JTAG interface, can be implemented with a software or hardware fifo
@@ -268,8 +272,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 +312,36 @@ 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.
+ * 
+ * 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. 
+ *
+ * only req_tlr_or_trst and srst can have a transition for a
+ * call as the effects of transitioning both at the "same time" 
+ * are undefined, but when srst_pulls_trst or vice versa,
+ * then trst & srst *must* be asserted together.
+ */
+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.
  * 
- * trst & srst must be 0 or 1. There is no way to 
- * read the current reset state.
+ * 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)