aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/openocd.texi10
-rw-r--r--src/jtag/drivers/jlink.c51
-rw-r--r--src/jtag/startup.tcl6
-rw-r--r--tcl/interface/jlink.cfg2
4 files changed, 26 insertions, 43 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi
index 78451c7..58e533f 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, xds110.
+cmsis_dap, ft232r, ftdi, jlink, kitprog, presto, vsllink, xds110.
The following adapters have their own command to specify the serial string:
-hla, jlink, st-link.
+hla, st-link.
@end deffn
@section Interface Drivers
@@ -2850,12 +2850,6 @@ the serial number instead, if possible.
As a configuration command, it can be used only before 'init'.
@end deffn
-@deffn {Config Command} {jlink serial} <serial number>
-Set the serial number of the interface, in case more than one adapter is
-connected to the host. If not specified, serial numbers are not considered.
-
-As a configuration command, it can be used only before 'init'.
-@end deffn
@end deffn
@deffn {Interface Driver} {kitprog}
diff --git a/src/jtag/drivers/jlink.c b/src/jtag/drivers/jlink.c
index 0414ec7..fdf4ae7 100644
--- a/src/jtag/drivers/jlink.c
+++ b/src/jtag/drivers/jlink.c
@@ -669,6 +669,23 @@ static int jlink_init(void)
return ERROR_JTAG_INIT_FAILED;
}
+ const char *serial = adapter_get_required_serial();
+ if (serial) {
+ ret = jaylink_parse_serial_number(serial, &serial_number);
+ if (ret == JAYLINK_ERR) {
+ LOG_ERROR("Invalid serial number: %s", serial);
+ jaylink_exit(jayctx);
+ return ERROR_JTAG_INIT_FAILED;
+ }
+ if (ret != JAYLINK_OK) {
+ LOG_ERROR("jaylink_parse_serial_number() failed: %s", jaylink_strerror(ret));
+ jaylink_exit(jayctx);
+ return ERROR_JTAG_INIT_FAILED;
+ }
+ use_serial_number = true;
+ use_usb_address = false;
+ }
+
bool found_device;
ret = jlink_open_device(JAYLINK_HIF_USB, &found_device);
if (ret != ERROR_OK)
@@ -979,38 +996,11 @@ COMMAND_HANDLER(jlink_usb_command)
usb_address = tmp;
- use_serial_number = false;
use_usb_address = true;
return ERROR_OK;
}
-COMMAND_HANDLER(jlink_serial_command)
-{
- int ret;
-
- if (CMD_ARGC != 1) {
- command_print(CMD, "Need exactly one argument for jlink serial");
- return ERROR_COMMAND_SYNTAX_ERROR;
- }
-
- ret = jaylink_parse_serial_number(CMD_ARGV[0], &serial_number);
-
- if (ret == JAYLINK_ERR) {
- command_print(CMD, "Invalid serial number: %s", CMD_ARGV[0]);
- return ERROR_FAIL;
- } else if (ret != JAYLINK_OK) {
- command_print(CMD, "jaylink_parse_serial_number() failed: %s",
- jaylink_strerror(ret));
- return ERROR_FAIL;
- }
-
- use_serial_number = true;
- use_usb_address = false;
-
- return ERROR_OK;
-}
-
COMMAND_HANDLER(jlink_handle_hwstatus_command)
{
int ret;
@@ -1933,13 +1923,6 @@ static const struct command_registration jlink_subcommand_handlers[] = {
.usage = "<0-3>"
},
{
- .name = "serial",
- .handler = &jlink_serial_command,
- .mode = COMMAND_CONFIG,
- .help = "set the serial number of the device that should be used",
- .usage = "<serial number>"
- },
- {
.name = "config",
.handler = &jlink_handle_config_command,
.mode = COMMAND_EXEC,
diff --git a/src/jtag/startup.tcl b/src/jtag/startup.tcl
index d6c3b85..199ca04 100644
--- a/src/jtag/startup.tcl
+++ b/src/jtag/startup.tcl
@@ -759,6 +759,12 @@ proc "ftdi serial" {args} {
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 kitprog_serial
proc kitprog_serial args {
echo "DEPRECATED! use 'adapter serial' not 'kitprog_serial'"
diff --git a/tcl/interface/jlink.cfg b/tcl/interface/jlink.cfg
index 51f420b..f9a18b0 100644
--- a/tcl/interface/jlink.cfg
+++ b/tcl/interface/jlink.cfg
@@ -11,4 +11,4 @@ adapter driver jlink
#
# Example: Select J-Link with serial number 123456789
#
-# jlink serial 123456789
+# adapter serial 123456789