jtag/presto: switch to command 'adapter serial'
authorAntonio Borneo <borneo.antonio@gmail.com>
Thu, 7 Oct 2021 20:35:12 +0000 (22:35 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sun, 28 Nov 2021 10:58:48 +0000 (10:58 +0000)
The driver presto defines the command 'presto serial' to specify
the serial string of the adapter.

Remove and deprecate the driver command, and use 'adapter serial'.

Change-Id: I1a69acce7d4910082d2029d5941ae84f9424314c
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/6653
Tested-by: jenkins
doc/openocd.texi
src/jtag/drivers/presto.c
src/jtag/startup.tcl

index c36047f07a2d2234024af78b087ecd4d611332e5..1e2524c7ec9520b163df3706ae0488c19105ae39 100644 (file)
@@ -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.
+cmsis_dap, ft232r, ftdi, kitprog, presto.
 The following adapters have their own command to specify the serial string:
-hla, jlink, presto, st-link, vsllink, xds110.
+hla, jlink, st-link, vsllink, xds110.
 @end deffn
 
 @section Interface Drivers
@@ -3010,9 +3010,6 @@ parport cable wiggler
 
 @deffn {Interface Driver} {presto}
 ASIX PRESTO USB JTAG programmer.
-@deffn {Config Command} {presto serial} serial_string
-Configures the USB serial number of the Presto device to use.
-@end deffn
 @end deffn
 
 @deffn {Interface Driver} {rlink}
index 61de42630aee344bdbdd6edcd3f6fc84ac43a847..e938a3be3a01d86fec59abeb00e1c7dae2e2d201 100644 (file)
@@ -29,6 +29,7 @@
 #include "windows.h"
 #endif
 
+#include <jtag/adapter.h>
 #include <jtag/interface.h>
 #include <helper/time_support.h>
 #include "bitq.h"
@@ -132,7 +133,7 @@ static int presto_read(uint8_t *buf, uint32_t size)
        return ERROR_OK;
 }
 
-static int presto_open_libftdi(char *req_serial)
+static int presto_open_libftdi(const char *req_serial)
 {
        uint8_t presto_data;
 
@@ -195,7 +196,7 @@ static int presto_open_libftdi(char *req_serial)
        return ERROR_OK;
 }
 
-static int presto_open(char *req_serial)
+static int presto_open(const char *req_serial)
 {
        presto->buff_out_pos = 0;
        presto->buff_in_pos = 0;
@@ -506,43 +507,10 @@ static int presto_jtag_speed(int speed)
        return 0;
 }
 
-static char *presto_serial;
-
-COMMAND_HANDLER(presto_handle_serial_command)
-{
-       if (CMD_ARGC == 1) {
-               free(presto_serial);
-               presto_serial = strdup(CMD_ARGV[0]);
-       } else
-               return ERROR_COMMAND_SYNTAX_ERROR;
-
-       return ERROR_OK;
-}
-
-static const struct command_registration presto_subcommand_handlers[] = {
-       {
-               .name = "serial",
-               .handler = presto_handle_serial_command,
-               .mode = COMMAND_CONFIG,
-               .help = "Configure USB serial number of Presto device.",
-               .usage = "serial_string",
-       },
-       COMMAND_REGISTRATION_DONE
-};
-
-static const struct command_registration presto_command_handlers[] = {
-       {
-               .name = "presto",
-               .mode = COMMAND_ANY,
-               .help = "perform presto management",
-               .chain = presto_subcommand_handlers,
-               .usage = "",
-       },
-       COMMAND_REGISTRATION_DONE
-};
-
 static int presto_jtag_init(void)
 {
+       const char *presto_serial = adapter_get_required_serial();
+
        if (presto_open(presto_serial) != ERROR_OK) {
                presto_close();
                if (presto_serial)
@@ -562,10 +530,6 @@ static int presto_jtag_quit(void)
        bitq_cleanup();
        presto_close();
        LOG_INFO("PRESTO closed");
-
-       free(presto_serial);
-       presto_serial = NULL;
-
        return ERROR_OK;
 }
 
@@ -576,7 +540,6 @@ static struct jtag_interface presto_interface = {
 struct adapter_driver presto_adapter_driver = {
        .name = "presto",
        .transports = jtag_only,
-       .commands = presto_command_handlers,
 
        .init = presto_jtag_init,
        .quit = presto_jtag_quit,
index 75b1bfbdf91e26da06b585cd8c21544ef6bec736..b8b866fbe7856a4e135c6f9e94a9ec044b0be7e2 100644 (file)
@@ -765,4 +765,10 @@ proc kitprog_serial args {
        eval adapter serial $args
 }
 
+lappend _telnet_autocomplete_skip "presto serial"
+proc "presto serial" {args} {
+       echo "DEPRECATED! use 'adapter serial' not 'presto serial'"
+       eval adapter serial $args
+}
+
 # END MIGRATION AIDS