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
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
#endif
#include <transport/transport.h>
+#include <jtag/adapter.h>
#include <jtag/swd.h>
#include <jtag/interface.h>
#include <jtag/commands.h>
#include <jtag/tcl.h>
#include <libusb.h>
-/* 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
/* 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 */
.is_ap_dirty = false,
.speed = XDS110_DEFAULT_TCK_SPEED,
.delay_count = 0,
- .serial = {0},
.voltage = 0,
.firmware = 0,
.hardware = 0,
*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;
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;
}
(((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);
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;
.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,
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
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