aboutsummaryrefslogtreecommitdiff
path: root/src/jtag/adapter.c
diff options
context:
space:
mode:
authorOleksij Rempel <o.rempel@pengutronix.de>2018-06-27 14:54:21 +0200
committerMatthias Welwarsky <matthias@welwarsky.de>2019-02-07 07:51:30 +0000
commita1b308abd4b867e9d3127dee5b9c5906bdf24f99 (patch)
treeef12b3cda33e623e1e8e7271176f0ac463d2b3f2 /src/jtag/adapter.c
parentdeaf3d264123391d8fe5c4cccbf8fb8852e1be23 (diff)
downloadriscv-openocd-a1b308abd4b867e9d3127dee5b9c5906bdf24f99.zip
riscv-openocd-a1b308abd4b867e9d3127dee5b9c5906bdf24f99.tar.gz
riscv-openocd-a1b308abd4b867e9d3127dee5b9c5906bdf24f99.tar.bz2
jtag: drivers: provide initial support for usb path filtering
With this patch drivers will be able to use usb path filtering. The path format is identical to the format provided by linux kernel: bus-port.port.... With this format it should be easier just to copy and paste path found in dmesg. Change-Id: I8bafa6fcb7a66ff68cc961a376f97f4f3dee35aa Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-on: http://openocd.zylin.com/4580 Tested-by: jenkins Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
Diffstat (limited to 'src/jtag/adapter.c')
-rw-r--r--src/jtag/adapter.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/jtag/adapter.c b/src/jtag/adapter.c
index 2035788..3fb52a7 100644
--- a/src/jtag/adapter.c
+++ b/src/jtag/adapter.c
@@ -35,6 +35,7 @@
#include "interface.h"
#include "interfaces.h"
#include <transport/transport.h>
+#include <jtag/drivers/jtag_usb_common.h>
#ifdef HAVE_STRINGS_H
#include <strings.h>
@@ -456,8 +457,55 @@ COMMAND_HANDLER(handle_adapter_khz_command)
return retval;
}
+#ifndef HAVE_JTAG_MINIDRIVER_H
+#ifdef HAVE_LIBUSB_GET_PORT_NUMBERS
+COMMAND_HANDLER(handle_usb_location_command)
+{
+ if (CMD_ARGC == 1)
+ jtag_usb_set_location(CMD_ARGV[0]);
+
+ command_print(CMD_CTX, "adapter usb location: %s", jtag_usb_get_location());
+
+ return ERROR_OK;
+}
+#endif /* HAVE_LIBUSB_GET_PORT_NUMBERS */
+
+static const struct command_registration adapter_usb_command_handlers[] = {
+#ifdef HAVE_LIBUSB_GET_PORT_NUMBERS
+ {
+ .name = "location",
+ .handler = &handle_usb_location_command,
+ .mode = COMMAND_CONFIG,
+ .help = "set the USB bus location of the USB device",
+ .usage = "<bus>-port[.port]...",
+ },
+#endif /* HAVE_LIBUSB_GET_PORT_NUMBERS */
+ COMMAND_REGISTRATION_DONE
+};
+#endif /* MINIDRIVER */
+
+static const struct command_registration adapter_command_handlers[] = {
+#ifndef HAVE_JTAG_MINIDRIVER_H
+ {
+ .name = "usb",
+ .mode = COMMAND_ANY,
+ .help = "usb adapter command group",
+ .usage = "",
+ .chain = adapter_usb_command_handlers,
+ },
+#endif /* MINIDRIVER */
+ COMMAND_REGISTRATION_DONE
+};
+
static const struct command_registration interface_command_handlers[] = {
{
+ .name = "adapter",
+ .mode = COMMAND_ANY,
+ .help = "adapter command group",
+ .usage = "",
+ .chain = adapter_command_handlers,
+ },
+ {
.name = "adapter_khz",
.handler = handle_adapter_khz_command,
.mode = COMMAND_ANY,