Skip to content

Commit

Permalink
jtag/presto: switch to command 'adapter serial'
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-on: https://review.openocd.org/c/openocd/+/6653
Tested-by: jenkins
  • Loading branch information
borneoa committed Nov 28, 2021
1 parent d7b2313 commit c41d9f6
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 47 deletions.
7 changes: 2 additions & 5 deletions doc/openocd.texi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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}
Expand Down
47 changes: 5 additions & 42 deletions src/jtag/drivers/presto.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "windows.h"
#endif

#include <jtag/adapter.h>
#include <jtag/interface.h>
#include <helper/time_support.h>
#include "bitq.h"
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand All @@ -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;
}

Expand All @@ -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,
Expand Down
6 changes: 6 additions & 0 deletions src/jtag/startup.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit c41d9f6

Please sign in to comment.