jtag/aice: switch to command 'adapter serial'
[fw/openocd] / src / jtag / aice / aice_interface.c
index c83b8c298c74db882c01a048c28b62249ae3b2f8..cb126c6b179dba6f6a293c52af9b1883ec4b4eb3 100644 (file)
 #include "config.h"
 #endif
 
+#include <jtag/adapter.h>
 #include <jtag/interface.h>
 #include <jtag/commands.h>
 #include <transport/transport.h>
 #include <target/target.h>
 #include <jtag/aice/aice_transport.h>
-#include <jtag/drivers/libusb_common.h>
 #include "aice_usb.h"
 
 #define AICE_KHZ_TO_SPEED_MAP_SIZE     16
@@ -122,7 +122,7 @@ int aice_init_targets(void)
  */
 static int aice_init(void)
 {
-       if (ERROR_OK != aice_port->api->open(&param)) {
+       if (aice_port->api->open(&param) != ERROR_OK) {
                LOG_ERROR("Cannot find AICE Interface! Please check "
                                "connection and permissions.");
                return ERROR_JTAG_INIT_FAILED;
@@ -218,7 +218,7 @@ static int aice_khz(int khz, int *jtag_speed)
        int i;
        for (i = 0 ; i < AICE_KHZ_TO_SPEED_MAP_SIZE ; i++) {
                if (khz == aice_khz_to_speed_map[i]) {
-                       if (8 <= i)
+                       if (i >= 8)
                                *jtag_speed = i | AICE_TCK_CONTROL_TCK3048;
                        else
                                *jtag_speed = i;
@@ -253,8 +253,8 @@ int aice_scan_jtag_chain(void)
                return res;
        }
 
-       for (uint32_t i = 0; i < num_of_idcode; i++)
-               LOG_DEBUG("id_codes[%d] = 0x%x", i, aice_target_id_codes[i]);
+       for (unsigned int i = 0; i < num_of_idcode; i++)
+               LOG_DEBUG("id_codes[%u] = 0x%" PRIx32, i, aice_target_id_codes[i]);
 
        /* Update tap idcode */
        for (target = all_targets; target; target = target->next)
@@ -270,7 +270,7 @@ COMMAND_HANDLER(aice_handle_aice_info_command)
        LOG_DEBUG("aice_handle_aice_info_command");
 
        command_print(CMD, "Description: %s", param.device_desc);
-       command_print(CMD, "Serial number: %s", param.serial);
+       command_print(CMD, "Serial number: %s", adapter_get_required_serial());
        if (strncmp(aice_port->name, "aice_pipe", 9) == 0)
                command_print(CMD, "Adapter: %s", param.adapter_name);
 
@@ -309,18 +309,6 @@ COMMAND_HANDLER(aice_handle_aice_desc_command)
        return ERROR_OK;
 }
 
-COMMAND_HANDLER(aice_handle_aice_serial_command)
-{
-       LOG_DEBUG("aice_handle_aice_serial_command");
-
-       if (CMD_ARGC == 1)
-               param.serial = strdup(CMD_ARGV[0]);
-       else
-               LOG_ERROR("expected exactly one argument to aice serial <serial-number>");
-
-       return ERROR_OK;
-}
-
 COMMAND_HANDLER(aice_handle_aice_vid_pid_command)
 {
        LOG_DEBUG("aice_handle_aice_vid_pid_command");
@@ -423,83 +411,76 @@ static const struct command_registration aice_subcommand_handlers[] = {
                .handler = &aice_handle_aice_info_command,
                .mode = COMMAND_EXEC,
                .help = "show aice info",
-               .usage = "aice info",
+               .usage = "",
        },
        {
                .name = "port",
                .handler = &aice_handle_aice_port_command,
                .mode = COMMAND_CONFIG,
                .help = "set the port of the AICE",
-               .usage = "aice port ['aice_pipe'|'aice_usb']",
+               .usage = "['aice_pipe'|'aice_usb']",
        },
        {
                .name = "desc",
                .handler = &aice_handle_aice_desc_command,
                .mode = COMMAND_CONFIG,
                .help = "set the aice device description",
-               .usage = "aice desc [desciption string]",
-       },
-       {
-               .name = "serial",
-               .handler = &aice_handle_aice_serial_command,
-               .mode = COMMAND_CONFIG,
-               .help = "set the serial number of the AICE device",
-               .usage = "aice serial [serial string]",
+               .usage = "[description string]",
        },
        {
                .name = "vid_pid",
                .handler = &aice_handle_aice_vid_pid_command,
                .mode = COMMAND_CONFIG,
                .help = "the vendor and product ID of the AICE device",
-               .usage = "aice vid_pid (vid pid)*",
+               .usage = "(vid pid)*",
        },
        {
                .name = "adapter",
                .handler = &aice_handle_aice_adapter_command,
                .mode = COMMAND_CONFIG,
                .help = "set the file name of adapter",
-               .usage = "aice adapter [adapter name]",
+               .usage = "[adapter name]",
        },
        {
                .name = "retry_times",
                .handler = &aice_handle_aice_retry_times_command,
                .mode = COMMAND_CONFIG,
                .help = "set retry times as AICE timeout",
-               .usage = "aice retry_times num_of_retry",
+               .usage = "num_of_retry",
        },
        {
                .name = "count_to_check_dbger",
                .handler = &aice_handle_aice_count_to_check_dbger_command,
                .mode = COMMAND_CONFIG,
                .help = "set retry times as checking $DBGER status",
-               .usage = "aice count_to_check_dbger count_of_checking",
+               .usage = "count_of_checking",
        },
        {
                .name = "custom_srst_script",
                .handler = &aice_handle_aice_custom_srst_script_command,
                .mode = COMMAND_CONFIG,
-               .usage = "custom_srst_script script_file_name",
+               .usage = "script_file_name",
                .help = "set custom srst script",
        },
        {
                .name = "custom_trst_script",
                .handler = &aice_handle_aice_custom_trst_script_command,
                .mode = COMMAND_CONFIG,
-               .usage = "custom_trst_script script_file_name",
+               .usage = "script_file_name",
                .help = "set custom trst script",
        },
        {
                .name = "custom_restart_script",
                .handler = &aice_handle_aice_custom_restart_script_command,
                .mode = COMMAND_CONFIG,
-               .usage = "custom_restart_script script_file_name",
+               .usage = "script_file_name",
                .help = "set custom restart script",
        },
        {
                .name = "reset",
                .handler = &aice_handle_aice_reset_command,
                .mode = COMMAND_EXEC,
-               .usage = "aice reset",
+               .usage = "",
                .help = "reset AICE",
        },
        COMMAND_REGISTRATION_DONE
@@ -510,7 +491,7 @@ static const struct command_registration aice_command_handlers[] = {
                .name = "aice",
                .mode = COMMAND_ANY,
                .help = "perform aice management",
-               .usage = "aice [subcommand]",
+               .usage = "[subcommand]",
                .chain = aice_subcommand_handlers,
        },
        COMMAND_REGISTRATION_DONE
@@ -518,14 +499,20 @@ static const struct command_registration aice_command_handlers[] = {
 /***************************************************************************/
 /* End of Command handlers */
 
-struct jtag_interface aice_interface = {
+static struct jtag_interface aice_interface = {
+       .execute_queue = aice_execute_queue,
+};
+
+struct adapter_driver aice_adapter_driver = {
        .name = "aice",
-       .commands = aice_command_handlers,
        .transports = aice_transports,
+       .commands = aice_command_handlers,
+
        .init = aice_init,
        .quit = aice_quit,
-       .execute_queue = aice_execute_queue,
        .speed = aice_speed,            /* set interface speed */
-       .speed_div = aice_speed_div,    /* return readable value */
        .khz = aice_khz,                /* convert khz to interface speed value */
+       .speed_div = aice_speed_div,    /* return readable value */
+
+       .jtag_ops = &aice_interface,
 };