This is an automated email from Gerrit.

"Antonio Borneo <[email protected]>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/6657

-- gerrit

commit a2a77938eb12197b457074f4459ab8c55fd0d5aa
Author: Antonio Borneo <[email protected]>
Date:   Fri Oct 8 12:37:19 2021 +0200

    jtag/hla, jtag/stlink: switch to command 'adapter serial'
    
    The driver hla defines the command 'hla_serial' to specify the
    serial string of the adapter.
    The driver st-link defines the command 'st-link serial' to specify
    the serial string of the adapter.
    
    Remove and deprecate the driver commands and use 'adapter serial'.
    
    Change-Id: I9505c398a77125b1ebf4ba71da7baf4d663b75be
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/doc/openocd.texi b/doc/openocd.texi
index 7ae64dde9..e114e6a57 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -2371,9 +2371,7 @@ 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 considered.
 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
@@ -3047,10 +3045,6 @@ version reported is V2.J21.S4.
 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
@@ -3099,10 +3093,6 @@ ST-LINK server software module}.
 @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
diff --git a/src/jtag/drivers/nulink_usb.c b/src/jtag/drivers/nulink_usb.c
index 3eea9de58..9612e5e83 100644
--- a/src/jtag/drivers/nulink_usb.c
+++ b/src/jtag/drivers/nulink_usb.c
@@ -22,6 +22,7 @@
 
 /* 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>
@@ -1054,8 +1055,9 @@ static int nulink_usb_open(struct hl_interface_param_s 
*param, void **fd)
                goto error_open;
        }
 
-       if (param->serial) {
-               size_t len = mbstowcs(NULL, param->serial, 0);
+       const char *serial = adapter_get_serial();
+       if (serial) {
+               size_t len = mbstowcs(NULL, serial, 0);
 
                target_serial = calloc(len + 1, sizeof(wchar_t));
                if (!target_serial) {
@@ -1063,7 +1065,7 @@ static int nulink_usb_open(struct hl_interface_param_s 
*param, void **fd)
                        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;
diff --git a/src/jtag/drivers/stlink_usb.c b/src/jtag/drivers/stlink_usb.c
index a52370863..0e697f9a0 100644
--- a/src/jtag/drivers/stlink_usb.c
+++ b/src/jtag/drivers/stlink_usb.c
@@ -36,6 +36,7 @@
 #include <helper/binarybuffer.h>
 #include <helper/bits.h>
 #include <helper/system.h>
+#include <jtag/adapter.h>
 #include <jtag/interface.h>
 #include <jtag/hla/hla_layout.h>
 #include <jtag/hla/hla_transport.h>
@@ -3100,7 +3101,7 @@ static int stlink_usb_usb_open(void *handle, struct 
hl_interface_param_s *param)
          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_serial(),
                                &h->usb_backend_priv.fd, 
stlink_usb_get_alternate_serial) != ERROR_OK) {
                        LOG_ERROR("open failed");
                        return ERROR_FAIL;
@@ -3311,7 +3312,8 @@ static int stlink_tcp_open(void *handle, struct 
hl_interface_param_s *param)
        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_serial();
+       bool stlink_serial_matched = !adapter_serial;
 
        for (uint32_t stlink_id = 0; stlink_id < connected_stlinks; 
stlink_id++) {
                /* get the stlink info */
@@ -3341,27 +3343,28 @@ static int stlink_tcp_open(void *handle, struct 
hl_interface_param_s *param)
                        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;
        }
@@ -3430,7 +3433,7 @@ static int stlink_open(struct hl_interface_param_s 
*param, enum stlink_mode mode
        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_serial() ? adapter_get_serial() : "");
        }
 
        if (param->use_stlink_tcp)
@@ -4152,25 +4155,6 @@ static int stlink_dap_trace_read(uint8_t *buf, size_t 
*size)
        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)
 {
@@ -4261,13 +4245,6 @@ COMMAND_HANDLER(stlink_dap_cmd_command)
 
 /** */
 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,
@@ -4348,9 +4325,6 @@ static int stlink_dap_quit(void)
 {
        LOG_DEBUG("stlink_dap_quit()");
 
-       free((void *)stlink_dap_param.serial);
-       stlink_dap_param.serial = NULL;
-
        return stlink_close(stlink_dap_handle);
 }
 
diff --git a/src/jtag/drivers/ti_icdi_usb.c b/src/jtag/drivers/ti_icdi_usb.c
index d911fdacb..1e3bebbbe 100644
--- a/src/jtag/drivers/ti_icdi_usb.c
+++ b/src/jtag/drivers/ti_icdi_usb.c
@@ -23,6 +23,7 @@
 
 /* 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>
@@ -681,11 +682,11 @@ static int icdi_usb_open(struct hl_interface_param_s 
*param, void **fd)
 
        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_serial() ? 
adapter_get_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_serial(), 
&h->usb_dev, NULL);
 
        if (!h->usb_dev) {
                LOG_ERROR("open failed");
diff --git a/src/jtag/hla/hla_interface.c b/src/jtag/hla/hla_interface.c
index fc362c040..074e3c2fb 100644
--- a/src/jtag/hla/hla_interface.c
+++ b/src/jtag/hla/hla_interface.c
@@ -38,7 +38,6 @@
 static struct hl_interface_s hl_if = {
        .param = {
                .device_desc = NULL,
-               .serial = NULL,
                .vid = { 0 },
                .pid = { 0 },
                .transport = HL_TRANSPORT_UNKNOWN,
@@ -136,7 +135,6 @@ static int hl_interface_quit(void)
        jtag_command_queue_reset();
 
        free((void *)hl_if.param.device_desc);
-       free((void *)hl_if.param.serial);
 
        return ERROR_OK;
 }
@@ -238,19 +236,6 @@ COMMAND_HANDLER(hl_interface_handle_device_desc_command)
        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");
@@ -354,13 +339,6 @@ static const struct command_registration 
hl_interface_command_handlers[] = {
         .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,
diff --git a/src/jtag/hla/hla_interface.h b/src/jtag/hla/hla_interface.h
index c882acf48..31d055a3c 100644
--- a/src/jtag/hla/hla_interface.h
+++ b/src/jtag/hla/hla_interface.h
@@ -34,8 +34,6 @@ extern const char *hl_transports[];
 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 */
diff --git a/src/jtag/startup.tcl b/src/jtag/startup.tcl
index 199ca04d6..ee116269e 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 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'"
@@ -777,6 +783,12 @@ proc "presto serial" {args} {
        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'"
diff --git a/tcl/interface/stlink-dap.cfg b/tcl/interface/stlink-dap.cfg
index d912a5560..5a7d2e9ae 100644
--- a/tcl/interface/stlink-dap.cfg
+++ b/tcl/interface/stlink-dap.cfg
@@ -17,4 +17,4 @@ st-link vid_pid 0x0483 0x3744 0x0483 0x3748 0x0483 0x374b 
0x0483 0x374d 0x0483 0
 
 # 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"
diff --git a/tcl/interface/stlink.cfg b/tcl/interface/stlink.cfg
index cb8e00494..8ac9b579f 100644
--- a/tcl/interface/stlink.cfg
+++ b/tcl/interface/stlink.cfg
@@ -13,4 +13,4 @@ hla_vid_pid 0x0483 0x3744 0x0483 0x3748 0x0483 0x374b 0x0483 
0x374d 0x0483 0x374
 # 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"
diff --git a/tcl/interface/ti-icdi.cfg b/tcl/interface/ti-icdi.cfg
index 8561a3182..5cf6e37be 100644
--- a/tcl/interface/ti-icdi.cfg
+++ b/tcl/interface/ti-icdi.cfg
@@ -14,4 +14,4 @@ hla_vid_pid 0x1cbe 0x00fd
 # 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"

-- 

Reply via email to