jtag/presto: switch to command 'adapter serial'
[openocd.git] / src / jtag / drivers / presto.c
index 6c3a187dbcbc70cbadf959f8775ec7737d1c9ee0..e938a3be3a01d86fec59abeb00e1c7dae2e2d201 100644 (file)
 #include "windows.h"
 #endif
 
+#include <jtag/adapter.h>
 #include <jtag/interface.h>
 #include <helper/time_support.h>
 #include "bitq.h"
 
 /* PRESTO access library includes */
-#include <ftdi.h>
+#include "libftdi_helper.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;
 
@@ -160,8 +161,8 @@ static int presto_open_libftdi(char *req_serial)
                return ERROR_JTAG_DEVICE_ERROR;
        }
 
-       if (ftdi_usb_purge_buffers(&presto->ftdic) < 0) {
-               LOG_ERROR("unable to purge PRESTO buffers");
+       if (ftdi_tcioflush(&presto->ftdic) < 0) {
+               LOG_ERROR("unable to flush PRESTO buffers");
                return ERROR_JTAG_DEVICE_ERROR;
        }
 
@@ -174,7 +175,7 @@ static int presto_open_libftdi(char *req_serial)
        if (presto_read(&presto_data, 1) != ERROR_OK) {
                LOG_DEBUG("no response from PRESTO, retrying");
 
-               if (ftdi_usb_purge_buffers(&presto->ftdic) < 0)
+               if (ftdi_tcioflush(&presto->ftdic) < 0)
                        return ERROR_JTAG_DEVICE_ERROR;
 
                presto_data = 0xD0;
@@ -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,35 +507,13 @@ 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_command_handlers[] = {
-       {
-               .name = "presto_serial",
-               .handler = presto_handle_serial_command,
-               .mode = COMMAND_CONFIG,
-               .help = "Configure USB serial number of Presto device.",
-               .usage = "serial_string",
-       },
-       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 != NULL)
+               if (presto_serial)
                        LOG_ERROR("Cannot open PRESTO, serial number '%s'", presto_serial);
                else
                        LOG_ERROR("Cannot open PRESTO");
@@ -551,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;
 }
 
@@ -565,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,

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)