aboutsummaryrefslogtreecommitdiff
path: root/src/xsvf
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2011-11-07 07:24:42 +0100
committerSpencer Oliver <spen@spen-soft.co.uk>2011-11-07 20:35:42 +0000
commit3bab8990635af47de01e86c32a8ee9fe87789190 (patch)
tree3edc41520948d383abff4b43a31a6b038e0b5dd5 /src/xsvf
parent0552c05ee8f30d204b6dd481ba7f054034363b70 (diff)
downloadriscv-openocd-3bab8990635af47de01e86c32a8ee9fe87789190.zip
riscv-openocd-3bab8990635af47de01e86c32a8ee9fe87789190.tar.gz
riscv-openocd-3bab8990635af47de01e86c32a8ee9fe87789190.tar.bz2
xsvf: add missing error propagation
Change-Id: Ibc70deb980d6d18ceb376b72d9104e6180b16acf Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Reviewed-on: http://openocd.zylin.com/176 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/xsvf')
-rw-r--r--src/xsvf/xsvf.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/xsvf/xsvf.c b/src/xsvf/xsvf.c
index 31c3949..14b9e28 100644
--- a/src/xsvf/xsvf.c
+++ b/src/xsvf/xsvf.c
@@ -510,14 +510,19 @@ COMMAND_HANDLER(handle_xsvf_command)
if (xruntest)
{
result = svf_add_statemove(TAP_IDLE);
+ if (result != ERROR_OK)
+ return result;
if (runtest_requires_tck)
jtag_add_clocks(xruntest);
else
jtag_add_sleep(xruntest);
- }
- else if (xendir != TAP_DRPAUSE) /* we are already in TAP_DRPAUSE */
+ } else if (xendir != TAP_DRPAUSE) {
+ /* we are already in TAP_DRPAUSE */
result = svf_add_statemove(xenddr);
+ if (result != ERROR_OK)
+ return result;
+ }
}
break;
@@ -790,8 +795,12 @@ COMMAND_HANDLER(handle_xsvf_command)
{
/* FIXME handle statemove errors ... */
result = svf_add_statemove(wait_state);
+ if (result != ERROR_OK)
+ return result;
jtag_add_sleep(delay);
result = svf_add_statemove(end_state);
+ if (result != ERROR_OK)
+ return result;
}
}
break;
@@ -846,12 +855,16 @@ COMMAND_HANDLER(handle_xsvf_command)
/* FIXME handle statemove errors ... */
result = svf_add_statemove(wait_state);
+ if (result != ERROR_OK)
+ return result;
jtag_add_clocks(clock_count);
jtag_add_sleep(usecs);
result = svf_add_statemove(end_state);
+ if (result != ERROR_OK)
+ return result;
}
break;
@@ -925,6 +938,8 @@ COMMAND_HANDLER(handle_xsvf_command)
struct scan_field field;
result = svf_add_statemove(loop_state);
+ if (result != ERROR_OK)
+ return result;
jtag_add_clocks(loop_clocks);
jtag_add_sleep(loop_usecs);
@@ -1003,7 +1018,11 @@ COMMAND_HANDLER(handle_xsvf_command)
/* upon error, return the TAPs to a reasonable state */
result = svf_add_statemove(TAP_IDLE);
+ if (result != ERROR_OK)
+ return result;
result = jtag_execute_queue();
+ if (result != ERROR_OK)
+ return result;
break;
}
}