From 651cb917e71379c574a2806c5f15d4f376af1428 Mon Sep 17 00:00:00 2001 From: oharboe Date: Thu, 14 May 2009 18:45:19 +0000 Subject: fix broken ir/drscan -endstate option. The statemachine now actually ends up in said state. git-svn-id: svn://svn.berlios.de/openocd/trunk@1784 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/jtag/jtag.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/jtag/jtag.c b/src/jtag/jtag.c index 32211ba1..c58cde6f 100644 --- a/src/jtag/jtag.c +++ b/src/jtag/jtag.c @@ -2875,7 +2875,7 @@ static int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, c /* "statename" */ /* at the end of the arguments. */ /* assume none. */ - endstate = TAP_INVALID; + endstate = cmd_queue_end_state; if( argc >= 4 ){ /* have at least one pair of numbers. */ /* is last pair the magic text? */ @@ -2918,19 +2918,17 @@ static int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, c fields[i].in_value = NULL; } - jtag_add_ir_scan(num_fields, fields, TAP_INVALID); /* did we have an endstate? */ - if (endstate != TAP_INVALID) - jtag_add_end_state(endstate); + jtag_add_ir_scan(num_fields, fields, endstate); - jtag_execute_queue(); + int retval=jtag_execute_queue(); for (i = 0; i < num_fields; i++) free(fields[i].out_value); free (fields); - return ERROR_OK; + return retval; } static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args) @@ -2959,7 +2957,7 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args } /* assume no endstate */ - endstate = TAP_INVALID; + endstate = cmd_queue_end_state; /* validate arguments as numbers */ e = JIM_OK; for (i = 2; i < argc; i+=2) @@ -3031,10 +3029,7 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args field_count++; } - jtag_add_dr_scan(num_fields, fields, TAP_INVALID); - /* did we get an end state? */ - if (endstate != TAP_INVALID) - jtag_add_end_state(endstate); + jtag_add_dr_scan(num_fields, fields, endstate); retval = jtag_execute_queue(); if (retval != ERROR_OK) -- cgit v1.2.3