From 52b94977243b500b2f6c051710dc8d88fdab78a0 Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Thu, 7 Oct 2021 22:25:27 +0200 Subject: [PATCH] jtag/ft232r: switch to command 'adapter serial' The driver ft232r defines the command 'ft232r serial_desc' to specify the serial string of the adapter. Remove and deprecate the driver command, and use 'adapter serial'. Change-Id: I0bd909923a668420604fed3c9f6a260716b044c7 Signed-off-by: Antonio Borneo Reviewed-on: https://review.openocd.org/c/openocd/+/6650 Tested-by: jenkins --- doc/openocd.texi | 10 ++-------- src/jtag/drivers/ft232r.c | 20 ++------------------ src/jtag/startup.tcl | 10 ++++++++-- 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/doc/openocd.texi b/doc/openocd.texi index 4ce6e0426..2891f3519 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -2371,9 +2371,9 @@ This command is only available if your libusb1 is at least version 1.0.16. Specifies the @var{serial_string} of the adapter to use. If this command is not specified, serial strings are not checked. Only the following adapter drivers use the serial string from this command: -cmsis_dap. +cmsis_dap, ft232r. The following adapters have their own command to specify the serial string: -ft232r, ftdi, hla, jlink, kitprog, presto, st-link, vsllink, xds110. +ftdi, hla, jlink, kitprog, presto, st-link, vsllink, xds110. @end deffn @section Interface Drivers @@ -2641,12 +2641,6 @@ The vendor ID and product ID of the adapter. If not specified, default 0x0403:0x6001 is used. @end deffn -@deffn {Config Command} {ft232r serial_desc} @var{serial} -Specifies the @var{serial} of the adapter to use, in case the -vendor provides unique IDs and more than one adapter is connected to -the host. If not specified, serial numbers are not considered. -@end deffn - @deffn {Config Command} {ft232r jtag_nums} @var{tck} @var{tms} @var{tdi} @var{tdo} Set four JTAG GPIO numbers at once. If not specified, default 0 3 1 2 or TXD CTS RXD RTS is used. diff --git a/src/jtag/drivers/ft232r.c b/src/jtag/drivers/ft232r.c index 22c0fe5dd..fc3cdbae2 100644 --- a/src/jtag/drivers/ft232r.c +++ b/src/jtag/drivers/ft232r.c @@ -26,6 +26,7 @@ #endif /* project specific includes */ +#include #include #include #include @@ -68,7 +69,6 @@ #define FT232R_BUF_SIZE_EXTRA 4096 -static char *ft232r_serial_desc; static uint16_t ft232r_vid = 0x0403; /* FTDI */ static uint16_t ft232r_pid = 0x6001; /* FT232R */ static struct libusb_device_handle *adapter; @@ -257,6 +257,7 @@ static int ft232r_init(void) { uint16_t avids[] = {ft232r_vid, 0}; uint16_t apids[] = {ft232r_pid, 0}; + const char *ft232r_serial_desc = adapter_get_required_serial(); if (jtag_libusb_open(avids, apids, ft232r_serial_desc, &adapter, NULL)) { LOG_ERROR("ft232r not found: vid=%04x, pid=%04x, serial=%s\n", ft232r_vid, ft232r_pid, (!ft232r_serial_desc) ? "[any]" : ft232r_serial_desc); @@ -395,16 +396,6 @@ static int ft232r_bit_name_to_number(const char *name) return -1; } -COMMAND_HANDLER(ft232r_handle_serial_desc_command) -{ - if (CMD_ARGC == 1) - ft232r_serial_desc = strdup(CMD_ARGV[0]); - else - LOG_ERROR("require exactly one argument to " - "ft232r_serial_desc "); - return ERROR_OK; -} - COMMAND_HANDLER(ft232r_handle_vid_pid_command) { if (CMD_ARGC > 2) { @@ -561,13 +552,6 @@ COMMAND_HANDLER(ft232r_handle_restore_serial_command) } static const struct command_registration ft232r_subcommand_handlers[] = { - { - .name = "serial_desc", - .handler = ft232r_handle_serial_desc_command, - .mode = COMMAND_CONFIG, - .help = "USB serial descriptor of the adapter", - .usage = "serial string", - }, { .name = "vid_pid", .handler = ft232r_handle_vid_pid_command, diff --git a/src/jtag/startup.tcl b/src/jtag/startup.tcl index 94030dbc5..b5f4a0298 100644 --- a/src/jtag/startup.tcl +++ b/src/jtag/startup.tcl @@ -677,8 +677,8 @@ proc usb_blaster_firmware args { lappend _telnet_autocomplete_skip ft232r_serial_desc proc ft232r_serial_desc args { - echo "DEPRECATED! use 'ft232r serial_desc' not 'ft232r_serial_desc'" - eval ft232r serial_desc $args + echo "DEPRECATED! use 'adapter serial_desc' not 'ft232r_serial_desc'" + eval adapter serial_desc $args } lappend _telnet_autocomplete_skip ft232r_vid_pid @@ -747,4 +747,10 @@ proc cmsis_dap_serial args { eval adapter serial $args } +lappend _telnet_autocomplete_skip "ft232r serial_desc" +proc "ft232r serial_desc" {args} { + echo "DEPRECATED! use 'adapter serial' not 'ft232r serial_desc'" + eval adapter serial $args +} + # END MIGRATION AIDS