summaryrefslogtreecommitdiff
path: root/src/target/adi_v5_jtag.c
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2010-07-19 14:42:54 +0200
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-07-19 22:13:49 +0200
commit441ea95f693316052f04486b927abb2b152ca547 (patch)
tree3c00ba1683324e79e25253ba611bbea4ac7057ce /src/target/adi_v5_jtag.c
parent4333840ee3d6d79299bf90b719a3c1628c688690 (diff)
downloadopenocd+libswd-441ea95f693316052f04486b927abb2b152ca547.tar.gz
openocd+libswd-441ea95f693316052f04486b927abb2b152ca547.tar.bz2
openocd+libswd-441ea95f693316052f04486b927abb2b152ca547.tar.xz
openocd+libswd-441ea95f693316052f04486b927abb2b152ca547.zip
adi_jtag_ error propagation
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/target/adi_v5_jtag.c')
-rw-r--r--src/target/adi_v5_jtag.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/target/adi_v5_jtag.c b/src/target/adi_v5_jtag.c
index 185bd543..8731a1a0 100644
--- a/src/target/adi_v5_jtag.c
+++ b/src/target/adi_v5_jtag.c
@@ -211,8 +211,10 @@ static int jtagdp_transaction_endcheck(struct adiv5_dap *dap)
/* Post CTRL/STAT read; discard any previous posted read value
* but collect its ACK status.
*/
- adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
+ retval = adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
DP_CTRL_STAT, DPAP_READ, 0, &ctrlstat);
+ if (retval != ERROR_OK)
+ return retval;
if ((retval = jtag_execute_queue()) != ERROR_OK)
return retval;
@@ -246,8 +248,10 @@ static int jtagdp_transaction_endcheck(struct adiv5_dap *dap)
return ERROR_JTAG_DEVICE_ERROR;
}
- adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
+ retval = adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
DP_CTRL_STAT, DPAP_READ, 0, &ctrlstat);
+ if (retval != ERROR_OK)
+ return retval;
if ((retval = dap_run(dap)) != ERROR_OK)
return retval;
dap->ack = dap->ack & 0x7;
@@ -292,12 +296,16 @@ static int jtagdp_transaction_endcheck(struct adiv5_dap *dap)
LOG_ERROR("JTAG-DP STICKY ERROR");
/* Clear Sticky Error Bits */
- adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
+ retval = adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
DP_CTRL_STAT, DPAP_WRITE,
dap->dp_ctrl_stat | SSTICKYORUN
| SSTICKYERR, NULL);
- adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
+ if (retval != ERROR_OK)
+ return retval;
+ retval = adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
DP_CTRL_STAT, DPAP_READ, 0, &ctrlstat);
+ if (retval != ERROR_OK)
+ return retval;
if ((retval = dap_run(dap)) != ERROR_OK)
return retval;