]> git.sur5r.net Git - openocd/commitdiff
- concretize JTAG state transition rules (previously implied behaviour is now documented)
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 24 Feb 2008 18:24:04 +0000 (18:24 +0000)
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 24 Feb 2008 18:24:04 +0000 (18:24 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@329 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/jtag.h

index f70c1ead8d31243d535810c145d1d321ae0f0eec..e5df6619bf67808152c1be17bff5b72f3d0be6e8 100644 (file)
@@ -248,11 +248,24 @@ extern int jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state
 extern int jtag_add_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate, void *dummy_anachronism);
 extern int jtag_add_plain_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate, void *dummy_anachronism);
 extern int jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate, void *dummy_anachronism);
-/* execute a state transition within the JTAG standard, but nothing is defined
- * w.r.t. the path that is taken. Many implementations use precisely
+/* execute a state transition within the JTAG standard, but the exact path
+ * path that is taken is undefined. Many implementations use precisely
  * 7 clocks to perform a transition, but it could be more or less
  * than that.
- */\r
+ *
+ * The following assertions are made about certain common state moves:
+ *
+ * - A state move from Pause-[ID]R to Pause-[ID]R should always go through 
+ *   Update-[ID]R and Capture-[ID]R before returning to Pause-[ID]R, otherwise 
+ *   there's no way force a register update, if you can't go to Run-Test/Idle for 
+ *   some reason.
+ *
+ *   - A state move from Pause-[ID]R to Shift-[ID]R must not go through 
+ *   Update-[ID]R.
+ *
+ *   - Run-Test/Idle must not be entered unless requested, because R-T/I may have 
+ *   side effects.
+ */
 extern int jtag_add_statemove(enum tap_state endstate);
 /* A list of unambigious single clock state transitions, not
  * all drivers can support this, but it is required for e.g.