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, jlink, kitprog, presto, vsllink, xds110.
-The following adapters have their own command to specify the serial string:
-hla, st-link.
+cmsis_dap, ft232r, ftdi, hla, jlink, kitprog, presto, st-link, vsllink, xds110.
@end deffn
@section Interface Drivers
Currently Not Supported.
@end deffn
-@deffn {Config Command} {hla_serial} serial
-Specifies the serial number of the adapter.
-@end deffn
-
@deffn {Config Command} {hla_layout} (@option{stlink}|@option{icdi}|@option{nulink})
Specifies the adapter layout to use.
@end deffn
@emph{Note:} ST-Link TCP server does not support the SWIM transport.
@end deffn
-@deffn {Config Command} {st-link serial} serial
-Specifies the serial number of the adapter.
-@end deffn
-
@deffn {Config Command} {st-link vid_pid} [vid pid]+
Pairs of vendor IDs and product IDs of the device.
@end deffn
/* project specific includes */
#include <helper/binarybuffer.h>
+#include <jtag/adapter.h>
#include <jtag/interface.h>
#include <jtag/hla/hla_layout.h>
#include <jtag/hla/hla_transport.h>
goto error_open;
}
- if (param->serial) {
- size_t len = mbstowcs(NULL, param->serial, 0);
+ const char *serial = adapter_get_required_serial();
+ if (serial) {
+ size_t len = mbstowcs(NULL, serial, 0);
target_serial = calloc(len + 1, sizeof(wchar_t));
if (!target_serial) {
goto error_open;
}
- if (mbstowcs(target_serial, param->serial, len + 1) == (size_t)(-1)) {
+ if (mbstowcs(target_serial, serial, len + 1) == (size_t)(-1)) {
LOG_WARNING("unable to convert serial");
free(target_serial);
target_serial = NULL;
#include <helper/bits.h>
#include <helper/system.h>
#include <helper/time_support.h>
+#include <jtag/adapter.h>
#include <jtag/interface.h>
#include <jtag/hla/hla_layout.h>
#include <jtag/hla/hla_transport.h>
in order to become operational.
*/
do {
- if (jtag_libusb_open(param->vid, param->pid, param->serial,
+ if (jtag_libusb_open(param->vid, param->pid, adapter_get_required_serial(),
&h->usb_backend_priv.fd, stlink_usb_get_alternate_serial) != ERROR_OK) {
LOG_ERROR("open failed");
return ERROR_FAIL;
char serial[STLINK_TCP_SERIAL_SIZE + 1] = {0};
uint8_t stlink_used;
bool stlink_id_matched = false;
- bool stlink_serial_matched = (!param->serial);
+ const char *adapter_serial = adapter_get_required_serial();
+ bool stlink_serial_matched = !adapter_serial;
for (uint32_t stlink_id = 0; stlink_id < connected_stlinks; stlink_id++) {
/* get the stlink info */
continue;
/* check the serial if specified */
- if (param->serial) {
+ if (adapter_serial) {
/* ST-Link server fixes the buggy serial returned by old ST-Link DFU
* for further details refer to stlink_usb_get_alternate_serial
* so if the user passes the buggy serial, we need to fix it before
* comparing with the serial returned by ST-Link server */
- if (strlen(param->serial) == STLINK_SERIAL_LEN / 2) {
+ if (strlen(adapter_serial) == STLINK_SERIAL_LEN / 2) {
char fixed_serial[STLINK_SERIAL_LEN + 1];
for (unsigned int i = 0; i < STLINK_SERIAL_LEN; i += 2)
- sprintf(fixed_serial + i, "%02X", param->serial[i / 2]);
+ sprintf(fixed_serial + i, "%02X", adapter_serial[i / 2]);
fixed_serial[STLINK_SERIAL_LEN] = '\0';
stlink_serial_matched = strcmp(fixed_serial, serial) == 0;
- } else
- stlink_serial_matched = strcmp(param->serial, serial) == 0;
+ } else {
+ stlink_serial_matched = strcmp(adapter_serial, serial) == 0;
+ }
}
if (!stlink_serial_matched)
LOG_DEBUG("Device serial number '%s' doesn't match requested serial '%s'",
- serial, param->serial);
+ serial, adapter_serial);
else /* exit the search loop if there is match */
break;
}
for (unsigned i = 0; param->vid[i]; i++) {
LOG_DEBUG("transport: %d vid: 0x%04x pid: 0x%04x serial: %s",
h->st_mode, param->vid[i], param->pid[i],
- param->serial ? param->serial : "");
+ adapter_get_required_serial() ? adapter_get_required_serial() : "");
}
if (param->use_stlink_tcp)
return stlink_usb_trace_read(stlink_dap_handle, buf, size);
}
-/** */
-COMMAND_HANDLER(stlink_dap_serial_command)
-{
- LOG_DEBUG("stlink_dap_serial_command");
-
- if (CMD_ARGC != 1) {
- LOG_ERROR("Expected exactly one argument for \"st-link serial <serial-number>\".");
- return ERROR_COMMAND_SYNTAX_ERROR;
- }
-
- if (stlink_dap_param.serial) {
- LOG_WARNING("Command \"st-link serial\" already used. Replacing previous value");
- free((void *)stlink_dap_param.serial);
- }
-
- stlink_dap_param.serial = strdup(CMD_ARGV[0]);
- return ERROR_OK;
-}
-
/** */
COMMAND_HANDLER(stlink_dap_vid_pid)
{
/** */
static const struct command_registration stlink_dap_subcommand_handlers[] = {
- {
- .name = "serial",
- .handler = stlink_dap_serial_command,
- .mode = COMMAND_CONFIG,
- .help = "set the serial number of the adapter",
- .usage = "<serial_number>",
- },
{
.name = "vid_pid",
.handler = stlink_dap_vid_pid,
{
LOG_DEBUG("stlink_dap_quit()");
- free((void *)stlink_dap_param.serial);
- stlink_dap_param.serial = NULL;
-
return stlink_close(stlink_dap_handle);
}
/* project specific includes */
#include <helper/binarybuffer.h>
+#include <jtag/adapter.h>
#include <jtag/interface.h>
#include <jtag/hla/hla_layout.h>
#include <jtag/hla/hla_transport.h>
for (uint8_t i = 0; param->vid[i] && param->pid[i]; ++i)
LOG_DEBUG("transport: %d vid: 0x%04x pid: 0x%04x serial: %s", param->transport,
- param->vid[i], param->pid[i], param->serial ? param->serial : "");
+ param->vid[i], param->pid[i], adapter_get_required_serial() ? adapter_get_required_serial() : "");
/* TI (Stellaris) ICDI provides its serial number in the USB descriptor;
no need to provide a callback here. */
- jtag_libusb_open(param->vid, param->pid, param->serial, &h->usb_dev, NULL);
+ jtag_libusb_open(param->vid, param->pid, adapter_get_required_serial(), &h->usb_dev, NULL);
if (!h->usb_dev) {
LOG_ERROR("open failed");
static struct hl_interface_s hl_if = {
.param = {
.device_desc = NULL,
- .serial = NULL,
.vid = { 0 },
.pid = { 0 },
.transport = HL_TRANSPORT_UNKNOWN,
jtag_command_queue_reset();
free((void *)hl_if.param.device_desc);
- free((void *)hl_if.param.serial);
return ERROR_OK;
}
return ERROR_OK;
}
-COMMAND_HANDLER(hl_interface_handle_serial_command)
-{
- LOG_DEBUG("hl_interface_handle_serial_command");
-
- if (CMD_ARGC == 1) {
- hl_if.param.serial = strdup(CMD_ARGV[0]);
- } else {
- LOG_ERROR("expected exactly one argument to hl_serial <serial-number>");
- }
-
- return ERROR_OK;
-}
-
COMMAND_HANDLER(hl_interface_handle_layout_command)
{
LOG_DEBUG("hl_interface_handle_layout_command");
.help = "set the device description of the adapter",
.usage = "description_string",
},
- {
- .name = "hla_serial",
- .handler = &hl_interface_handle_serial_command,
- .mode = COMMAND_CONFIG,
- .help = "set the serial number of the adapter",
- .usage = "serial_string",
- },
{
.name = "hla_layout",
.handler = &hl_interface_handle_layout_command,
struct hl_interface_param_s {
/** */
const char *device_desc;
- /** */
- const char *serial;
/** List of recognised VIDs */
uint16_t vid[HLA_MAX_USB_IDS + 1];
/** List of recognised PIDs */
eval adapter serial $args
}
+lappend _telnet_autocomplete_skip hla_serial
+proc hla_serial args {
+ echo "DEPRECATED! use 'adapter serial' not 'hla_serial'"
+ eval adapter serial $args
+}
+
lappend _telnet_autocomplete_skip "jlink serial"
proc "jlink serial" {args} {
echo "DEPRECATED! use 'adapter serial' not 'jlink serial'"
eval adapter serial $args
}
+lappend _telnet_autocomplete_skip "st-link serial"
+proc "st-link serial" {args} {
+ echo "DEPRECATED! use 'adapter serial' not 'st-link serial'"
+ eval adapter serial $args
+}
+
lappend _telnet_autocomplete_skip "vsllink usb_serial"
proc "vsllink usb_serial" {args} {
echo "DEPRECATED! use 'adapter serial' not 'vsllink usb_serial'"
# Optionally specify the serial number of usb device
# e.g.
-# st-link serial "\xaa\xbc\x6e\x06\x50\x75\xff\x55\x17\x42\x19\x3f"
+# adapter serial "\xaa\xbc\x6e\x06\x50\x75\xff\x55\x17\x42\x19\x3f"
# firmware version >= V2.J21.S4 recommended to avoid issues with adapter serial
# number reset issues.
# eg.
-#hla_serial "\xaa\xbc\x6e\x06\x50\x75\xff\x55\x17\x42\x19\x3f"
+# adapter serial "\xaa\xbc\x6e\x06\x50\x75\xff\x55\x17\x42\x19\x3f"
# Optionally specify the serial number of TI-ICDI devices, for when using
# multiple devices. Serial numbers can be obtained using lsusb -v
# Ex.
-#hla_serial "0F003065"
+# adapter serial "0F003065"