summaryrefslogtreecommitdiff
path: root/src/jtag/transport.c
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2010-07-09 18:34:31 -0400
committerDavid Brownell <db@helium.(none)>2010-07-09 18:34:31 -0400
commite8445c9c9f02e82ea417776fa27fbe793ae22f83 (patch)
treeacf0e39eafd022f3d86168db1a355cd3ee5c8951 /src/jtag/transport.c
parentac5ad4ad8d0312259974d4aeb947a43fa815c3a8 (diff)
downloadopenocd+libswd-e8445c9c9f02e82ea417776fa27fbe793ae22f83.tar.gz
openocd+libswd-e8445c9c9f02e82ea417776fa27fbe793ae22f83.tar.bz2
openocd+libswd-e8445c9c9f02e82ea417776fa27fbe793ae22f83.tar.xz
openocd+libswd-e8445c9c9f02e82ea417776fa27fbe793ae22f83.zip
transport selection tweaks
* Bugfix and simplify legacy jtag-only defaulting * Make "dummy" declare its jtag-only nature * likewise update ft2232 * warn if selection is _required_ (multi-transport adapters), fixes the "only ft2232 works" bug for at least dummy, with other drivers going the "legacy" path (submit patches). Signed-off-by: David Brownell <db@helium.(none)>
Diffstat (limited to 'src/jtag/transport.c')
-rw-r--r--src/jtag/transport.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/jtag/transport.c b/src/jtag/transport.c
index cce45fb7..d290bd2c 100644
--- a/src/jtag/transport.c
+++ b/src/jtag/transport.c
@@ -101,6 +101,10 @@ int allow_transports(struct command_context *ctx, const char **vector)
*
* REVISIT should we validate that? and insist there's
* at least one non-NULL element in that list?
+ *
+ * ... allow removals, e.g. external strapping prevents use
+ * of one transport; C code should be definitive about what
+ * can be used when all goes well.
*/
if (allowed_transports != NULL || session) {
LOG_ERROR("Can't modify the set of allowed transports.");
@@ -116,6 +120,8 @@ int allow_transports(struct command_context *ctx, const char **vector)
vector[0]);
return transport_select(ctx, vector [0]);
} else {
+ /* guard against user config errors */
+ LOG_WARNING("must select a transport.");
while (*vector)
LOG_DEBUG("allow transport '%s'", *vector++);
return ERROR_OK;
@@ -304,13 +310,14 @@ COMMAND_HANDLER(handle_transport_select)
/* Is this transport supported by our debug adapter?
* Example, "JTAG-only" means SWD is not supported.
*
- * NOTE: requires adapter to have been set up, including
- * declaring transport via C code or Tcl script.
+ * NOTE: requires adapter to have been set up, with
+ * transports declared via C.
*/
if (!allowed_transports) {
LOG_ERROR("Debug adapter doesn't support any transports?");
return ERROR_FAIL;
}
+
for (unsigned i = 0; allowed_transports[i]; i++) {
if (strcmp(allowed_transports[i], CMD_ARGV[0]) == 0)