diff --git a/doc/openocd.texi b/doc/openocd.texi index c76fc076c..78451c71c 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, ft232r, ftdi, kitprog, presto, vsllink. +cmsis_dap, ft232r, ftdi, kitprog, presto, vsllink, xds110. The following adapters have their own command to specify the serial string: -hla, jlink, st-link, xds110. +hla, jlink, st-link. @end deffn @section Interface Drivers @@ -3141,11 +3141,6 @@ LaunchPad evaluation boards. The XDS110 is also available as a stand-alone USB debug probe with the added capability to supply power to the target board. The following commands are supported by the XDS110 driver: -@deffn {Config Command} {xds110 serial} serial_string -Specifies the serial number of which XDS110 probe to use. Otherwise, the first -XDS110 found will be used. -@end deffn - @deffn {Config Command} {xds110 supply} voltage_in_millivolts Available only on the XDS110 stand-alone probe. Sets the voltage level of the XDS110 power supply. A value of 0 leaves the supply off. Otherwise, the supply diff --git a/src/jtag/drivers/xds110.c b/src/jtag/drivers/xds110.c index 243577d7c..c5249b296 100644 --- a/src/jtag/drivers/xds110.c +++ b/src/jtag/drivers/xds110.c @@ -20,15 +20,13 @@ #endif #include +#include #include #include #include #include #include -/* XDS110 USB serial number length */ -#define XDS110_SERIAL_LEN 8 - /* XDS110 stand-alone probe voltage supply limits */ #define XDS110_MIN_VOLTAGE 1800 #define XDS110_MAX_VOLTAGE 3600 @@ -238,8 +236,6 @@ struct xds110_info { /* TCK speed and delay count*/ uint32_t speed; uint32_t delay_count; - /* XDS110 serial number */ - char serial[XDS110_SERIAL_LEN + 1]; /* XDS110 voltage supply setting */ uint32_t voltage; /* XDS110 firmware and hardware version */ @@ -269,7 +265,6 @@ static struct xds110_info xds110 = { .is_ap_dirty = false, .speed = XDS110_DEFAULT_TCK_SPEED, .delay_count = 0, - .serial = {0}, .voltage = 0, .firmware = 0, .hardware = 0, @@ -371,7 +366,7 @@ static bool usb_connect(void) *data = '\0'; /* May be the requested device if serial number matches */ - if (xds110.serial[0] == 0) { + if (!adapter_get_required_serial()) { /* No serial number given; match first XDS110 found */ found = true; break; @@ -380,7 +375,7 @@ static bool usb_connect(void) result = libusb_get_string_descriptor_ascii(dev, desc.iSerialNumber, data, max_data); if (result > 0 && - strcmp((char *)data, (char *)xds110.serial) == 0) { + strcmp((char *)data, adapter_get_required_serial()) == 0) { found = true; break; } @@ -1395,8 +1390,8 @@ static void xds110_show_info(void) (((firmware >> 12) & 0xf) * 10) + ((firmware >> 8) & 0xf), (((firmware >> 4) & 0xf) * 10) + ((firmware >> 0) & 0xf)); LOG_INFO("XDS110: hardware version = 0x%04x", xds110.hardware); - if (xds110.serial[0] != 0) - LOG_INFO("XDS110: serial number = %s", xds110.serial); + if (adapter_get_required_serial()) + LOG_INFO("XDS110: serial number = %s", adapter_get_required_serial()); if (xds110.is_swd_mode) { LOG_INFO("XDS110: connected to target via SWD"); LOG_INFO("XDS110: SWCLK set to %" PRIu32 " kHz", xds110.speed); @@ -2024,34 +2019,6 @@ COMMAND_HANDLER(xds110_handle_info_command) return ERROR_OK; } -COMMAND_HANDLER(xds110_handle_serial_command) -{ - wchar_t serial[XDS110_SERIAL_LEN + 1]; - - xds110.serial[0] = 0; - - if (CMD_ARGC == 1) { - size_t len = mbstowcs(0, CMD_ARGV[0], 0); - if (len > XDS110_SERIAL_LEN) { - LOG_ERROR("XDS110: serial number is limited to %d characters", - XDS110_SERIAL_LEN); - return ERROR_FAIL; - } - if ((size_t)-1 == mbstowcs(serial, CMD_ARGV[0], len + 1)) { - LOG_ERROR("XDS110: unable to convert serial number"); - return ERROR_FAIL; - } - - for (uint32_t i = 0; i < len; i++) - xds110.serial[i] = (char)serial[i]; - - xds110.serial[len] = 0; - } else - return ERROR_COMMAND_SYNTAX_ERROR; - - return ERROR_OK; -} - COMMAND_HANDLER(xds110_handle_supply_voltage_command) { uint32_t voltage = 0; @@ -2082,13 +2049,6 @@ static const struct command_registration xds110_subcommand_handlers[] = { .help = "show XDS110 info", .usage = "", }, - { - .name = "serial", - .handler = &xds110_handle_serial_command, - .mode = COMMAND_CONFIG, - .help = "set the XDS110 probe serial number", - .usage = "serial_string", - }, { .name = "supply", .handler = &xds110_handle_supply_voltage_command, diff --git a/src/jtag/startup.tcl b/src/jtag/startup.tcl index 95fe55ca7..d6c3b85b4 100644 --- a/src/jtag/startup.tcl +++ b/src/jtag/startup.tcl @@ -187,8 +187,8 @@ proc ftdi_location args { lappend _telnet_autocomplete_skip xds110_serial proc xds110_serial args { - echo "DEPRECATED! use 'xds110 serial' not 'xds110_serial'" - eval xds110 serial $args + echo "DEPRECATED! use 'adapter serial' not 'xds110_serial'" + eval adapter serial $args } lappend _telnet_autocomplete_skip xds110_supply_voltage @@ -777,4 +777,10 @@ proc "vsllink usb_serial" {args} { eval adapter serial $args } +lappend _telnet_autocomplete_skip "xds110 serial" +proc "xds110 serial" {args} { + echo "DEPRECATED! use 'adapter serial' not 'xds110 serial'" + eval adapter serial $args +} + # END MIGRATION AIDS diff --git a/tcl/interface/xds110.cfg b/tcl/interface/xds110.cfg index 51f4e28d3..74122c3e6 100644 --- a/tcl/interface/xds110.cfg +++ b/tcl/interface/xds110.cfg @@ -9,4 +9,4 @@ adapter driver xds110 # Use serial number option to use a specific XDS110 # when more than one are connected to the host. -#xds110 serial 00000000 +# adapter serial 00000000