Fix unused variables error in amt_jtagaccel
[fw/openocd] / src / jtag / drivers / arm-jtag-ew.c
index 2d6a40046e4474567ee5aa75adc5cc110cdc820d..b0900501b8376c5bd4713c6150e5565712adc0fc 100644 (file)
@@ -27,7 +27,6 @@
 #include <usb.h>
 #include "usb_common.h"
 
-
 #define USB_VID                                                0x15ba
 #define USB_PID                                                0x001e
 
@@ -39,7 +38,6 @@
 #define ARMJTAGEW_IN_BUFFER_SIZE       (4*1024)
 #define ARMJTAGEW_OUT_BUFFER_SIZE      (4*1024)
 
-
 /* USB command request codes. */
 #define CMD_GET_VERSION                                0x00
 #define CMD_SELECT_DPIMPL                      0x10
@@ -93,8 +91,6 @@ static void armjtagew_debug_buffer(uint8_t *buffer, int length);
 
 static struct armjtagew* armjtagew_handle;
 
-
-
 /***************************************************************************/
 /* External interface implementation */
 
@@ -175,42 +171,40 @@ static int armjtagew_execute_queue(void)
        return armjtagew_tap_execute();
 }
 
-
 /* Sets speed in kHz. */
 static int armjtagew_speed(int speed)
 {
-    int result;
-    int speed_real;
+       int result;
+       int speed_real;
 
 
-    usb_out_buffer[0] = CMD_SET_TCK_FREQUENCY;
+       usb_out_buffer[0] = CMD_SET_TCK_FREQUENCY;
        buf_set_u32(usb_out_buffer + 1, 0, 32, speed*1000);
 
-    result = armjtagew_usb_message(armjtagew_handle, 5, 4);
+       result = armjtagew_usb_message(armjtagew_handle, 5, 4);
 
-    if (result < 0)
-    {
-        LOG_ERROR("ARM-JTAG-EW setting speed failed (%d)", result);
-        return ERROR_JTAG_DEVICE_ERROR;
-    }
+       if (result < 0)
+       {
+               LOG_ERROR("ARM-JTAG-EW setting speed failed (%d)", result);
+               return ERROR_JTAG_DEVICE_ERROR;
+       }
 
        usb_out_buffer[0] = CMD_GET_TCK_FREQUENCY;
-    result = armjtagew_usb_message(armjtagew_handle, 1, 4);
-       speed_real = (int)buf_get_u32(usb_in_buffer,0,32) / 1000;
+       result = armjtagew_usb_message(armjtagew_handle, 1, 4);
+       speed_real = (int)buf_get_u32(usb_in_buffer, 0, 32) / 1000;
        if (result < 0)
        {
-        LOG_ERROR("ARM-JTAG-EW getting speed failed (%d)", result);
-        return ERROR_JTAG_DEVICE_ERROR;
+               LOG_ERROR("ARM-JTAG-EW getting speed failed (%d)", result);
+               return ERROR_JTAG_DEVICE_ERROR;
        }
        else
        {
-       LOG_INFO("Requested speed %dkHz, emulator reported %dkHz.", speed, speed_real);
+               LOG_INFO("Requested speed %dkHz, emulator reported %dkHz.", speed, speed_real);
        }
 
-    return ERROR_OK;
+       return ERROR_OK;
 }
 
-
 static int armjtagew_khz(int khz, int *jtag_speed)
 {
        *jtag_speed = khz;
@@ -225,7 +219,6 @@ static int armjtagew_speed_div(int speed, int* khz)
        return ERROR_OK;
 }
 
-
 static int armjtagew_init(void)
 {
        int check_cnt;
@@ -256,6 +249,9 @@ static int armjtagew_init(void)
                LOG_INFO("ARM-JTAG-EW initial read failed, don't worry");
        }
 
+       /* Initial JTAG speed (for reset and initialization): 32 kHz */
+       armjtagew_speed(32);
+
        LOG_INFO("ARM-JTAG-EW JTAG Interface ready");
 
        armjtagew_reset(0, 0);
@@ -437,7 +433,6 @@ static void armjtagew_reset(int trst, int srst)
        }
 }
 
-
 static int armjtagew_get_status(void)
 {
        int result;
@@ -496,6 +491,11 @@ static int armjtagew_get_version_info(void)
                        usb_in_buffer[1], usb_in_buffer[0], \
                        isgraph(usb_in_buffer[2]) ? usb_in_buffer[2] : 'X', \
                        sn, auxinfo);
+
+       if (1 != usb_in_buffer[1] || 6 != usb_in_buffer[0])
+       {
+               LOG_WARNING("ARM-JTAG-EW firmware version %d.%d is untested with this version of OpenOCD. You might experience unexpected behavior.", usb_in_buffer[1], usb_in_buffer[0]);
+       }
        return ERROR_OK;
 }
 
@@ -523,7 +523,7 @@ static const struct command_registration armjtagew_command_handlers[] = {
 struct jtag_interface armjtagew_interface = {
        .name = "arm-jtag-ew",
        .commands = armjtagew_command_handlers,
-
+       .transports = jtag_only,
        .execute_queue = armjtagew_execute_queue,
        .speed = armjtagew_speed,
        .speed_div = armjtagew_speed_div,
@@ -818,7 +818,6 @@ static int armjtagew_usb_read(struct armjtagew *armjtagew, int exp_in_length)
        return result;
 }
 
-
 #ifdef _DEBUG_USB_COMMS_
 #define BYTES_PER_LINE  16
 
@@ -838,7 +837,9 @@ static void armjtagew_debug_buffer(uint8_t *buffer, int length)
                        strcat(line, s);
                }
                LOG_DEBUG("%s", line);
+
+               // Prevent GDB timeout (writing to log might take some time)
+               keep_alive();
        }
 }
 #endif
-