summaryrefslogtreecommitdiff
path: root/src/target/cortex_swjdp.c
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-04-16 07:34:22 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-04-16 07:34:22 +0000
commit3aa95240ece4c99fdb1b5d33e4153d96d3f278ee (patch)
tree7a53e91a8555d3367982b358e22a4cc017ddb9e2 /src/target/cortex_swjdp.c
parent5295bb3121e535d25a4bdef0bd41a5675cb2f47d (diff)
downloadopenocd+libswd-3aa95240ece4c99fdb1b5d33e4153d96d3f278ee.tar.gz
openocd+libswd-3aa95240ece4c99fdb1b5d33e4153d96d3f278ee.tar.bz2
openocd+libswd-3aa95240ece4c99fdb1b5d33e4153d96d3f278ee.tar.xz
openocd+libswd-3aa95240ece4c99fdb1b5d33e4153d96d3f278ee.zip
fix SEGFAULT regression in cortex after TRST fixes
git-svn-id: svn://svn.berlios.de/openocd/trunk@583 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target/cortex_swjdp.c')
-rw-r--r--src/target/cortex_swjdp.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/target/cortex_swjdp.c b/src/target/cortex_swjdp.c
index d1983ec5..dc50fea1 100644
--- a/src/target/cortex_swjdp.c
+++ b/src/target/cortex_swjdp.c
@@ -941,6 +941,7 @@ int ahbap_debugport_init(swjdp_common_t *swjdp)
u32 idreg, romaddr, dummy;
u32 ctrlstat;
int cnt = 0;
+ int retval;
LOG_DEBUG(" ");
@@ -955,14 +956,16 @@ int ahbap_debugport_init(swjdp_common_t *swjdp)
swjdp_write_dpacc(swjdp, swjdp->dp_ctrl_stat, DP_CTRL_STAT);
swjdp_read_dpacc(swjdp, &ctrlstat, DP_CTRL_STAT);
- jtag_execute_queue();
+ if ((retval=jtag_execute_queue())!=ERROR_OK)
+ return retval;
/* Check that we have debug power domains activated */
while (!(ctrlstat & CDBGPWRUPACK) && (cnt++ < 10))
{
LOG_DEBUG("swjdp: wait CDBGPWRUPACK");
swjdp_read_dpacc(swjdp, &ctrlstat, DP_CTRL_STAT);
- jtag_execute_queue();
+ if ((retval=jtag_execute_queue())!=ERROR_OK)
+ return retval;
usleep(10000);
}
@@ -970,7 +973,8 @@ int ahbap_debugport_init(swjdp_common_t *swjdp)
{
LOG_DEBUG("swjdp: wait CSYSPWRUPACK");
swjdp_read_dpacc(swjdp, &ctrlstat, DP_CTRL_STAT);
- jtag_execute_queue();
+ if ((retval=jtag_execute_queue())!=ERROR_OK)
+ return retval;
usleep(10000);
}