summaryrefslogtreecommitdiff
path: root/src/jtag/core.c
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2010-09-01 23:36:31 +0200
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-09-03 22:13:50 +0200
commit35af12d3e729e053b2e83cd0322f9347af652ef3 (patch)
tree4a7dda611d7d4b6254871c2b8394eed59ea6a2e1 /src/jtag/core.c
parentae80c3564a5693a5326ceac750ec6779efe3f523 (diff)
downloadopenocd+libswd-35af12d3e729e053b2e83cd0322f9347af652ef3.tar.gz
openocd+libswd-35af12d3e729e053b2e83cd0322f9347af652ef3.tar.bz2
openocd+libswd-35af12d3e729e053b2e83cd0322f9347af652ef3.tar.xz
openocd+libswd-35af12d3e729e053b2e83cd0322f9347af652ef3.zip
jtag: fix regression with dummy driver and when starting OpenOCD with target powered down
Do not fail startup if communication with target is not possible. OpenOCD supports launching without a target connected or the target powered down. The user will typically power up the target and issue a "reset init" + load his application after OpenOCD is started then. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/jtag/core.c')
-rw-r--r--src/jtag/core.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/jtag/core.c b/src/jtag/core.c
index 10686819..6f9d92a5 100644
--- a/src/jtag/core.c
+++ b/src/jtag/core.c
@@ -1445,17 +1445,19 @@ int jtag_init_inner(struct command_context *cmd_ctx)
case ERROR_OK:
/* complete success */
break;
- case ERROR_JTAG_INIT_SOFT_FAIL:
+ default:
/* For backward compatibility reasons, try coping with
* configuration errors involving only ID mismatches.
* We might be able to talk to the devices.
+ *
+ * Also the device might be powered down during startup.
+ *
+ * After OpenOCD starts, we can try to power on the device
+ * and run a reset.
*/
LOG_ERROR("Trying to use configured scan chain anyway...");
issue_setup = false;
break;
- default:
- /* some hard error; already issued diagnostics */
- return retval;
}
/* Now look at IR values. Problems here will prevent real
@@ -1466,7 +1468,13 @@ int jtag_init_inner(struct command_context *cmd_ctx)
*/
retval = jtag_validate_ircapture();
if (retval != ERROR_OK)
- return retval;
+ {
+ /* The target might be powered down. The user
+ * can power it up and reset it after firing
+ * up OpenOCD.
+ */
+ issue_setup = false;
+ }
if (issue_setup)
jtag_notify_event(JTAG_TAP_EVENT_SETUP);