summaryrefslogtreecommitdiff
path: root/src/jtag/jtag.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/jtag/jtag.c')
-rw-r--r--src/jtag/jtag.c56
1 files changed, 11 insertions, 45 deletions
diff --git a/src/jtag/jtag.c b/src/jtag/jtag.c
index e413b9f3..11011a16 100644
--- a/src/jtag/jtag.c
+++ b/src/jtag/jtag.c
@@ -728,52 +728,18 @@ int jtag_add_pathmove(int num_states, enum tap_state *path)
return ERROR_JTAG_NOT_IMPLEMENTED;
}
- if (jtag->support_pathmove)
- {
- /* allocate memory for a new list member */
- *last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
- last_comand_pointer = &((*last_cmd)->next);
- (*last_cmd)->next = NULL;
- (*last_cmd)->type = JTAG_PATHMOVE;
+ /* allocate memory for a new list member */
+ *last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
+ last_comand_pointer = &((*last_cmd)->next);
+ (*last_cmd)->next = NULL;
+ (*last_cmd)->type = JTAG_PATHMOVE;
+
+ (*last_cmd)->cmd.pathmove = cmd_queue_alloc(sizeof(pathmove_command_t));
+ (*last_cmd)->cmd.pathmove->num_states = num_states;
+ (*last_cmd)->cmd.pathmove->path = cmd_queue_alloc(sizeof(enum tap_state) * num_states);
- (*last_cmd)->cmd.pathmove = cmd_queue_alloc(sizeof(pathmove_command_t));
- (*last_cmd)->cmd.pathmove->num_states = num_states;
- (*last_cmd)->cmd.pathmove->path = cmd_queue_alloc(sizeof(enum tap_state) * num_states);
-
- for (i = 0; i < num_states; i++)
- (*last_cmd)->cmd.pathmove->path[i] = path[i];
- }
- else
- {
- /* validate the desired path, and see if it fits a default path */
- int begin = 0;
- int end = 0;
- int j;
-
- for (i = 0; i < num_states; i++)
- {
- for (j = i; j < num_states; j++)
- {
- if (tap_move_map[path[j]] != -1)
- {
- end = j;
- break;
- }
- }
-
- if (begin - end <= 7) /* a default path spans no more than 7 states */
- {
- jtag_add_statemove(path[end]);
- }
- else
- {
- ERROR("encountered a TAP path that can't be fulfilled by default paths");
- return ERROR_JTAG_NOT_IMPLEMENTED;
- }
-
- i = end;
- }
- }
+ for (i = 0; i < num_states; i++)
+ (*last_cmd)->cmd.pathmove->path[i] = path[i];
if (cmd_queue_cur_state == TAP_TLR && cmd_queue_end_state != TAP_TLR)
jtag_call_event_callbacks(JTAG_TRST_RELEASED);