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
@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}
#include "windows.h"
#endif
+#include <jtag/adapter.h>
#include <jtag/interface.h>
#include <helper/time_support.h>
#include "bitq.h"
return ERROR_OK;
}
-static int presto_open_libftdi(char *req_serial)
+static int presto_open_libftdi(const char *req_serial)
{
uint8_t presto_data;
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;
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)
bitq_cleanup();
presto_close();
LOG_INFO("PRESTO closed");
-
- free(presto_serial);
- presto_serial = NULL;
-
return ERROR_OK;
}
struct adapter_driver presto_adapter_driver = {
.name = "presto",
.transports = jtag_only,
- .commands = presto_command_handlers,
.init = presto_jtag_init,
.quit = presto_jtag_quit,