summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jtag/jtag.h43
1 files changed, 30 insertions, 13 deletions
diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h
index 4f348062..f33e0501 100644
--- a/src/jtag/jtag.h
+++ b/src/jtag/jtag.h
@@ -41,20 +41,37 @@
#endif
-/* 16 Tap States, from page 21 of ASSET InterTech, Inc.'s svf.pdf
+/*
+ * Tap states from ARM7TDMI-S Technical reference manual.
+ * Also, validated against several other ARM core technical manuals.
+ *
+ * N.B. tap_get_tms_path() was changed to reflect this corrected
+ * numbering and ordering of the TAP states.
*/
-enum tap_state {
- TAP_RESET = 0, TAP_IDLE = 8,
- TAP_DRSELECT = 1, TAP_DRCAPTURE = 2, TAP_DRSHIFT = 3, TAP_DREXIT1 = 4,
- TAP_DRPAUSE = 5, TAP_DREXIT2 = 6, TAP_DRUPDATE = 7,
- TAP_IRSELECT = 9, TAP_IRCAPTURE = 10, TAP_IRSHIFT = 11, TAP_IREXIT1 = 12,
- TAP_IRPAUSE = 13, TAP_IREXIT2 = 14, TAP_IRUPDATE = 15,
-
- TAP_NUM_STATES = 16, TAP_INVALID = -1,
-};
-
-typedef enum tap_state tap_state_t;
-
+typedef enum tap_state
+{
+ TAP_DREXIT2 = 0x0,
+ TAP_DREXIT1 = 0x1,
+ TAP_DRSHIFT = 0x2,
+ TAP_DRPAUSE = 0x3,
+ TAP_IRSELECT = 0x4,
+ TAP_DRUPDATE = 0x5,
+ TAP_DRCAPTURE = 0x6,
+ TAP_DRSELECT = 0x7,
+ TAP_IREXIT2 = 0x8,
+ TAP_IREXIT1 = 0x9,
+ TAP_IRSHIFT = 0xa,
+ TAP_IRPAUSE = 0xb,
+ TAP_IDLE = 0xc,
+ TAP_IRUPDATE = 0xd,
+ TAP_IRCAPTURE = 0xe,
+ TAP_RESET = 0x0f,
+
+ TAP_NUM_STATES = 0x10,
+
+ TAP_INVALID = -1,
+} tap_state_t;
+
typedef struct tap_transition_s
{
tap_state_t high;