build: cleanup src/jtag directory
authorSpencer Oliver <spen@spen-soft.co.uk>
Thu, 2 Feb 2012 15:13:13 +0000 (15:13 +0000)
committerSpencer Oliver <spen@spen-soft.co.uk>
Mon, 6 Feb 2012 10:57:27 +0000 (10:57 +0000)
Change-Id: I7caf57ca3d9dfbe152504472a6bb26c2a28b92e8
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/423
Tested-by: jenkins
14 files changed:
src/jtag/adapter.c
src/jtag/commands.c
src/jtag/commands.h
src/jtag/core.c
src/jtag/driver.h
src/jtag/interface.c
src/jtag/interface.h
src/jtag/interfaces.c
src/jtag/interfaces.h
src/jtag/jtag.h
src/jtag/minidriver.h
src/jtag/swd.h
src/jtag/tcl.c
src/jtag/tcl.h

index acd434c440f58c79816f0d5c79b5de6096edff79..e87090c0b43a9a72144d460848695b311071aa5d 100644 (file)
@@ -27,6 +27,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -49,8 +50,7 @@
 extern struct jtag_interface *jtag_interface;
 const char *jtag_only[] = { "jtag", NULL };
 
-static int
-jim_adapter_name(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
+static int jim_adapter_name(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
 {
        Jim_GetOptInfo goi;
        Jim_GetOpt_Setup(&goi, interp, argc-1, argv + 1);
@@ -67,7 +67,6 @@ jim_adapter_name(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
        return JIM_OK;
 }
 
-
 static int default_khz(int khz, int *jtag_speed)
 {
        LOG_ERROR("Translation from khz to jtag_speed not implemented");
@@ -98,9 +97,8 @@ COMMAND_HANDLER(interface_transport_command)
        int retval;
 
        retval = CALL_COMMAND_HANDLER(transport_list_parse, &transports);
-       if (retval != ERROR_OK) {
+       if (retval != ERROR_OK)
                return retval;
-       }
 
        retval = allow_transports(CMD_CTX, (const char **)transports);
 
@@ -118,8 +116,7 @@ COMMAND_HANDLER(handle_interface_list_command)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
        command_print(CMD_CTX, "The following debug interfaces are available:");
-       for (unsigned i = 0; NULL != jtag_interfaces[i]; i++)
-       {
+       for (unsigned i = 0; NULL != jtag_interfaces[i]; i++) {
                const char *name = jtag_interfaces[i]->name;
                command_print(CMD_CTX, "%u: %s", i + 1, name);
        }
@@ -132,8 +129,7 @@ COMMAND_HANDLER(handle_interface_command)
        int retval;
 
        /* check whether the interface is already configured */
-       if (jtag_interface)
-       {
+       if (jtag_interface) {
                LOG_WARNING("Interface already configured, ignoring");
                return ERROR_OK;
        }
@@ -142,13 +138,11 @@ COMMAND_HANDLER(handle_interface_command)
        if (CMD_ARGC != 1 || CMD_ARGV[0][0] == '\0')
                return ERROR_COMMAND_SYNTAX_ERROR;
 
-       for (unsigned i = 0; NULL != jtag_interfaces[i]; i++)
-       {
+       for (unsigned i = 0; NULL != jtag_interfaces[i]; i++) {
                if (strcmp(CMD_ARGV[0], jtag_interfaces[i]->name) != 0)
                        continue;
 
-               if (NULL != jtag_interfaces[i]->commands)
-               {
+               if (NULL != jtag_interfaces[i]->commands) {
                        retval = register_commands(CMD_CTX, NULL,
                                        jtag_interfaces[i]->commands);
                        if (ERROR_OK != retval)
@@ -325,34 +319,34 @@ next:
 
        /* minimal JTAG has neither SRST nor TRST (so that's the default) */
        switch (new_cfg & (RESET_HAS_TRST | RESET_HAS_SRST)) {
-       case RESET_HAS_SRST:
-               modes[0] = "srst_only";
-               break;
-       case RESET_HAS_TRST:
-               modes[0] = "trst_only";
-               break;
-       case RESET_TRST_AND_SRST:
-               modes[0] = "trst_and_srst";
-               break;
-       default:
-               modes[0] = "none";
-               break;
+               case RESET_HAS_SRST:
+                       modes[0] = "srst_only";
+                       break;
+               case RESET_HAS_TRST:
+                       modes[0] = "trst_only";
+                       break;
+               case RESET_TRST_AND_SRST:
+                       modes[0] = "trst_and_srst";
+                       break;
+               default:
+                       modes[0] = "none";
+                       break;
        }
 
        /* normally SRST and TRST are decoupled; but bugs happen ... */
        switch (new_cfg & (RESET_SRST_PULLS_TRST | RESET_TRST_PULLS_SRST)) {
-       case RESET_SRST_PULLS_TRST:
-               modes[1] = "srst_pulls_trst";
-               break;
-       case RESET_TRST_PULLS_SRST:
-               modes[1] = "trst_pulls_srst";
-               break;
-       case RESET_SRST_PULLS_TRST | RESET_TRST_PULLS_SRST:
-               modes[1] = "combined";
-               break;
-       default:
-               modes[1] = "separate";
-               break;
+               case RESET_SRST_PULLS_TRST:
+                       modes[1] = "srst_pulls_trst";
+                       break;
+               case RESET_TRST_PULLS_SRST:
+                       modes[1] = "trst_pulls_srst";
+                       break;
+               case RESET_SRST_PULLS_TRST | RESET_TRST_PULLS_SRST:
+                       modes[1] = "combined";
+                       break;
+               default:
+                       modes[1] = "separate";
+                       break;
        }
 
        /* TRST-less connectors include Altera, Xilinx, and minimal JTAG */
@@ -391,8 +385,7 @@ COMMAND_HANDLER(handle_adapter_nsrst_delay_command)
 {
        if (CMD_ARGC > 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                unsigned delay;
                COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], delay);
 
@@ -406,8 +399,7 @@ COMMAND_HANDLER(handle_adapter_nsrst_assert_width_command)
 {
        if (CMD_ARGC > 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                unsigned width;
                COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], width);
 
@@ -425,8 +417,7 @@ COMMAND_HANDLER(handle_adapter_khz_command)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
        int retval = ERROR_OK;
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                unsigned khz = 0;
                COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], khz);
 
index d236fe997a2f24a55c6e5e9323ba7a9cf7e5841f..546b12f8bfef0d935018b806895f3c0e9c34c8bc 100644 (file)
@@ -27,6 +27,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -41,14 +42,14 @@ struct cmd_queue_page {
 };
 
 #define CMD_QUEUE_PAGE_SIZE (1024 * 1024)
-static struct cmd_queue_page *cmd_queue_pages = NULL;
+static struct cmd_queue_page *cmd_queue_pages;
 
-struct jtag_command *jtag_command_queue = NULL;
+struct jtag_command *jtag_command_queue;
 static struct jtag_command **next_command_pointer = &jtag_command_queue;
 
-void jtag_queue_command(struct jtag_command * cmd)
+void jtag_queue_command(struct jtag_command *cmd)
 {
-       // this command goes on the end, so ensure the queue terminates
+       /* this command goes on the end, so ensure the queue terminates */
        cmd->next = NULL;
 
        struct jtag_command **last_cmd = next_command_pointer;
@@ -56,11 +57,11 @@ void jtag_queue_command(struct jtag_command * cmd)
        assert(NULL == *last_cmd);
        *last_cmd = cmd;
 
-       // store location where the next command pointer will be stored
+       /* store location where the next command pointer will be stored */
        next_command_pointer = &cmd->next;
 }
 
-voidcmd_queue_alloc(size_t size)
+void *cmd_queue_alloc(size_t size)
 {
        struct cmd_queue_page **p_page = &cmd_queue_pages;
        int offset;
@@ -95,19 +96,17 @@ void* cmd_queue_alloc(size_t size)
 #define ALIGN_SIZE  (sizeof(union worse_case_align))
 
        /* The alignment process. */
-       size = (size + ALIGN_SIZE -1) & (~(ALIGN_SIZE-1));
+       size = (size + ALIGN_SIZE - 1) & (~(ALIGN_SIZE - 1));
        /* Done... */
 
-       if (*p_page)
-       {
+       if (*p_page) {
                while ((*p_page)->next)
                        p_page = &((*p_page)->next);
                if (CMD_QUEUE_PAGE_SIZE - (*p_page)->used < size)
                        p_page = &((*p_page)->next);
        }
 
-       if (!*p_page)
-       {
+       if (!*p_page) {
                *p_page = malloc(sizeof(struct cmd_queue_page));
                (*p_page)->used = 0;
                (*p_page)->address = malloc(CMD_QUEUE_PAGE_SIZE);
@@ -125,8 +124,7 @@ static void cmd_queue_free(void)
 {
        struct cmd_queue_page *page = cmd_queue_pages;
 
-       while (page)
-       {
+       while (page) {
                struct cmd_queue_page *last = page;
                free(page->address);
                page = page->next;
@@ -149,8 +147,7 @@ enum scan_type jtag_scan_type(const struct scan_command *cmd)
        int i;
        int type = 0;
 
-       for (i = 0; i < cmd->num_fields; i++)
-       {
+       for (i = 0; i < cmd->num_fields; i++) {
                if (cmd->fields[i].in_value)
                        type |= SCAN_IN;
                if (cmd->fields[i].out_value)
@@ -167,9 +164,7 @@ int jtag_scan_size(const struct scan_command *cmd)
 
        /* count bits in scan command */
        for (i = 0; i < cmd->num_fields; i++)
-       {
                bit_count += cmd->fields[i].num_bits;
-       }
 
        return bit_count;
 }
@@ -180,7 +175,7 @@ int jtag_build_buffer(const struct scan_command *cmd, uint8_t **buffer)
        int i;
 
        bit_count = jtag_scan_size(cmd);
-       *buffer = calloc(1,DIV_ROUND_UP(bit_count, 8));
+       *buffer = calloc(1, DIV_ROUND_UP(bit_count, 8));
 
        bit_count = 0;
 
@@ -188,10 +183,8 @@ int jtag_build_buffer(const struct scan_command *cmd, uint8_t **buffer)
                        cmd->ir_scan ? "IRSCAN" : "DRSCAN",
                        cmd->num_fields);
 
-       for (i = 0; i < cmd->num_fields; i++)
-       {
-               if (cmd->fields[i].out_value)
-               {
+       for (i = 0; i < cmd->num_fields; i++) {
+               if (cmd->fields[i].out_value) {
 #ifdef _DEBUG_JTAG_IO_
                        char *char_buf = buf_to_str(cmd->fields[i].out_value,
                                (cmd->fields[i].num_bits > DEBUG_JTAG_IOZ)
@@ -204,9 +197,7 @@ int jtag_build_buffer(const struct scan_command *cmd, uint8_t **buffer)
 #endif
                        buf_set_buf(cmd->fields[i].out_value, 0, *buffer,
                                        bit_count, cmd->fields[i].num_bits);
-               }
-               else
-               {
+               } else {
                        DEBUG_JTAG_IO("fields[%i].out_value[%i]: NULL",
                                        i, cmd->fields[i].num_bits);
                }
@@ -214,7 +205,7 @@ int jtag_build_buffer(const struct scan_command *cmd, uint8_t **buffer)
                bit_count += cmd->fields[i].num_bits;
        }
 
-       //DEBUG_JTAG_IO("bit_count totalling: %i",  bit_count);
+       /*DEBUG_JTAG_IO("bit_count totalling: %i",  bit_count); */
 
        return bit_count;
 }
@@ -228,15 +219,14 @@ int jtag_read_buffer(uint8_t *buffer, const struct scan_command *cmd)
        /* we return ERROR_OK, unless a check fails, or a handler reports a problem */
        retval = ERROR_OK;
 
-       for (i = 0; i < cmd->num_fields; i++)
-       {
+       for (i = 0; i < cmd->num_fields; i++) {
                /* if neither in_value nor in_handler
                 * are specified we don't have to examine this field
                 */
-               if (cmd->fields[i].in_value)
-               {
+               if (cmd->fields[i].in_value) {
                        int num_bits = cmd->fields[i].num_bits;
-                       uint8_t *captured = buf_set_buf(buffer, bit_count, malloc(DIV_ROUND_UP(num_bits, 8)), 0, num_bits);
+                       uint8_t *captured = buf_set_buf(buffer, bit_count,
+                                       malloc(DIV_ROUND_UP(num_bits, 8)), 0, num_bits);
 
 #ifdef _DEBUG_JTAG_IO_
                        char *char_buf = buf_to_str(captured,
@@ -250,9 +240,7 @@ int jtag_read_buffer(uint8_t *buffer, const struct scan_command *cmd)
 #endif
 
                        if (cmd->fields[i].in_value)
-                       {
                                buf_cpy(captured, cmd->fields[i].in_value, num_bits);
-                       }
 
                        free(captured);
                }
@@ -261,5 +249,3 @@ int jtag_read_buffer(uint8_t *buffer, const struct scan_command *cmd)
 
        return retval;
 }
-
-
index d591814f54f8d9320c936c83208ca1e3e922c7a4..da563e908b56c04501492dc913c5d3c341fa4825 100644 (file)
@@ -23,6 +23,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifndef JTAG_COMMANDS_H
 #define JTAG_COMMANDS_H
 
  * to the device, or both.
  */
 enum scan_type {
-       /// From device to host,
+       /** From device to host, */
        SCAN_IN = 1,
-       /// From host to device,
+       /** From host to device, */
        SCAN_OUT = 2,
-       /// Full-duplex scan.
+       /** Full-duplex scan. */
        SCAN_IO = 3
 };
 
@@ -45,56 +46,56 @@ enum scan_type {
  * structures that should be scanned in/out to the device.
  */
 struct scan_command {
-       /// instruction/not data scan
+       /** instruction/not data scan */
        bool ir_scan;
-       /// number of fields in *fields array
+       /** number of fields in *fields array */
        int num_fields;
-       /// pointer to an array of data scan fields
-       struct scan_fieldfields;
-       /// state in which JTAG commands should finish
+       /** pointer to an array of data scan fields */
+       struct scan_field *fields;
+       /** state in which JTAG commands should finish */
        tap_state_t end_state;
 };
 
 struct statemove_command {
-       /// state in which JTAG commands should finish
+       /** state in which JTAG commands should finish */
        tap_state_t end_state;
 };
 
 struct pathmove_command {
-       /// number of states in *path
+       /** number of states in *path */
        int num_states;
-       /// states that have to be passed
-       tap_state_tpath;
+       /** states that have to be passed */
+       tap_state_t *path;
 };
 
 struct runtest_command {
-       /// number of cycles to spend in Run-Test/Idle state
+       /** number of cycles to spend in Run-Test/Idle state */
        int num_cycles;
-       /// state in which JTAG commands should finish
+       /** state in which JTAG commands should finish */
        tap_state_t end_state;
 };
 
 
 struct stableclocks_command {
-       /// number of clock cycles that should be sent
+       /** number of clock cycles that should be sent */
        int num_cycles;
 };
 
 
 struct reset_command {
-       /// Set TRST output: 0 = deassert, 1 = assert, -1 = no change
+       /** Set TRST output: 0 = deassert, 1 = assert, -1 = no change */
        int trst;
-       /// Set SRST output: 0 = deassert, 1 = assert, -1 = no change
+       /** Set SRST output: 0 = deassert, 1 = assert, -1 = no change */
        int srst;
 };
 
 struct end_state_command {
-       /// state in which JTAG commands should finish
+       /** state in which JTAG commands should finish */
        tap_state_t end_state;
 };
 
 struct sleep_command {
-       /// number of microseconds to sleep
+       /** number of microseconds to sleep */
        uint32_t us;
 };
 
@@ -112,9 +113,9 @@ struct sleep_command {
  */
 struct tms_command {
        /** How many bits should be clocked out. */
-       unsigned        num_bits;
-       /** The bits to clock out; the LSB is bit 0 of bits[0].  */
-       const uint8_t           *bits;
+       unsigned num_bits;
+       /** The bits to clock out; the LSB is bit 0 of bits[0]. */
+       const uint8_t *bits;
 };
 
 /**
@@ -122,15 +123,15 @@ struct tms_command {
  * structure of any defined type.
  */
 union jtag_command_container {
-       struct scan_command             *scan;
-       struct statemove_command        *statemove;
-       struct pathmove_command         *pathmove;
-       struct runtest_command          *runtest;
-       struct stableclocks_command     *stableclocks;
-       struct reset_command            *reset;
-       struct end_state_command        *end_state;
-       struct sleep_command            *sleep;
-       struct tms_command              *tms;
+       struct scan_command *scan;
+       struct statemove_command *statemove;
+       struct pathmove_command *pathmove;
+       struct runtest_command *runtest;
+       struct stableclocks_command *stableclocks;
+       struct reset_command *reset;
+       struct end_state_command *end_state;
+       struct sleep_command *sleep;
+       struct tms_command *tms;
 };
 
 /**
@@ -157,21 +158,21 @@ enum jtag_command_type {
 
 struct jtag_command {
        union jtag_command_container cmd;
-       enum jtag_command_type   type;
+       enum jtag_command_type type;
        struct jtag_command *next;
 };
 
-/// The current queue of jtag_command_s structures.
-extern struct jtag_commandjtag_command_queue;
+/** The current queue of jtag_command_s structures. */
+extern struct jtag_command *jtag_command_queue;
 
-voidcmd_queue_alloc(size_t size);
+void *cmd_queue_alloc(size_t size);
 
 void jtag_queue_command(struct jtag_command *cmd);
 void jtag_command_queue_reset(void);
 
-enum scan_type jtag_scan_type(const struct scan_commandcmd);
-int jtag_scan_size(const struct scan_commandcmd);
-int jtag_read_buffer(uint8_t* buffer, const struct scan_command* cmd);
-int jtag_build_buffer(const struct scan_command* cmd, uint8_t** buffer);
+enum scan_type jtag_scan_type(const struct scan_command *cmd);
+int jtag_scan_size(const struct scan_command *cmd);
+int jtag_read_buffer(uint8_t *buffer, const struct scan_command *cmd);
+int jtag_build_buffer(const struct scan_command *cmd, uint8_t **buffer);
 
-#endif // JTAG_COMMANDS_H
+#endif /* JTAG_COMMANDS_H */
index a0feed1dc0cdf1cc98a0fea0b1c4665c5dc12012..f87a66a559af4177a12219af6b4cbd21fc9481da 100644 (file)
@@ -27,6 +27,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 #include "svf/svf.h"
 #include "xsvf/xsvf.h"
 
-/// The number of JTAG queue flushes (for profiling and debugging purposes).
+/** The number of JTAG queue flushes (for profiling and debugging purposes). */
 static int jtag_flush_queue_count;
 
-// Sleep this # of ms after flushing the queue
-static int jtag_flush_queue_sleep = 0;
+/* Sleep this # of ms after flushing the queue */
+static int jtag_flush_queue_sleep;
 
 static void jtag_add_scan_check(struct jtag_tap *active,
-               void (*jtag_add_scan)(struct jtag_tap *active, int in_num_fields, const struct scan_field *in_fields, tap_state_t state),
+               void (*jtag_add_scan)(struct jtag_tap *active,
+               int in_num_fields,
+               const struct scan_field *in_fields,
+               tap_state_t state),
                int in_num_fields, struct scan_field *in_fields, tap_state_t state);
 
 /**
@@ -65,8 +69,7 @@ static void jtag_add_scan_check(struct jtag_tap *active,
  */
 static int jtag_error = ERROR_OK;
 
-static const char *jtag_event_strings[] =
-{
+static const char *jtag_event_strings[] = {
        [JTAG_TRST_ASSERTED] = "TAP reset",
        [JTAG_TAP_EVENT_SETUP] = "TAP setup",
        [JTAG_TAP_EVENT_ENABLE] = "TAP enabled",
@@ -85,12 +88,12 @@ static int jtag_srst = -1;
 /**
  * List all TAPs that have been created.
  */
-static struct jtag_tap *__jtag_all_taps = NULL;
+static struct jtag_tap *__jtag_all_taps;
 /**
  * The number of TAPs in the __jtag_all_taps list, used to track the
  * assigned chain position to new TAPs
  */
-static unsigned jtag_num_taps = 0;
+static unsigned jtag_num_taps;
 
 static enum reset_types jtag_reset_config = RESET_NONE;
 tap_state_t cmd_queue_cur_state = TAP_RESET;
@@ -98,42 +101,42 @@ tap_state_t cmd_queue_cur_state = TAP_RESET;
 static bool jtag_verify_capture_ir = true;
 static int jtag_verify = 1;
 
-/* how long the OpenOCD should wait before attempting JTAG communication after reset lines deasserted (in ms) */
-static int adapter_nsrst_delay = 0; /* default to no nSRST delay */
-static int jtag_ntrst_delay = 0; /* default to no nTRST delay */
-static int adapter_nsrst_assert_width = 0; /* width of assertion */
-static int jtag_ntrst_assert_width = 0; /* width of assertion */
+/* how long the OpenOCD should wait before attempting JTAG communication after reset lines
+ *deasserted (in ms) */
+static int adapter_nsrst_delay;        /* default to no nSRST delay */
+static int jtag_ntrst_delay;/* default to no nTRST delay */
+static int adapter_nsrst_assert_width; /* width of assertion */
+static int jtag_ntrst_assert_width;    /* width of assertion */
 
 /**
  * Contains a single callback along with a pointer that will be passed
  * when an event occurs.
  */
 struct jtag_event_callback {
-       /// a event callback
+       /* / a event callback */
        jtag_event_handler_t callback;
-       /// the private data to pass to the callback
-       voidpriv;
-       /// the next callback
-       struct jtag_event_callbacknext;
+       /* / the private data to pass to the callback */
+       void *priv;
+       /* / the next callback */
+       struct jtag_event_callback *next;
 };
 
 /* callbacks to inform high-level handlers about JTAG state changes */
 static struct jtag_event_callback *jtag_event_callbacks;
 
 /* speed in kHz*/
-static int speed_khz = 0;
+static int speed_khz;
 /* speed to fallback to when RCLK is requested but not supported */
-static int rclk_fallback_speed_khz = 0;
+static int rclk_fallback_speed_khz;
 static enum {CLOCK_MODE_UNSELECTED, CLOCK_MODE_KHZ, CLOCK_MODE_RCLK} clock_mode;
-static int jtag_speed = 0;
+static int jtag_speed;
 
-static struct jtag_interface *jtag = NULL;
+static struct jtag_interface *jtag;
 
-
-const struct swd_driver *swd = NULL;
+const struct swd_driver *swd;
 
 /* configuration */
-struct jtag_interface *jtag_interface = NULL;
+struct jtag_interface *jtag_interface;
 
 void jtag_set_flush_queue_sleep(int ms)
 {
@@ -195,8 +198,7 @@ unsigned jtag_tap_count_enabled(void)
 {
        struct jtag_tap *t = jtag_all_taps();
        unsigned n = 0;
-       while (t)
-       {
+       while (t) {
                if (t->enabled)
                        n++;
                t = t->next_tap;
@@ -204,7 +206,7 @@ unsigned jtag_tap_count_enabled(void)
        return n;
 }
 
-/// Append a new TAP to the chain of all taps.
+/* / Append a new TAP to the chain of all taps. */
 void jtag_tap_add(struct jtag_tap *t)
 {
        t->abs_chain_position = jtag_num_taps++;
@@ -231,8 +233,7 @@ struct jtag_tap *jtag_tap_by_string(const char *s)
        /* try by name first */
        struct jtag_tap *t = jtag_all_taps();
 
-       while (t)
-       {
+       while (t) {
                if (0 == strcmp(t->dotted_name, s))
                        return t;
                t = t->next_tap;
@@ -255,11 +256,10 @@ struct jtag_tap *jtag_tap_by_string(const char *s)
        return t;
 }
 
-struct jtag_tap* jtag_tap_next_enabled(struct jtag_tap* p)
+struct jtag_tap *jtag_tap_next_enabled(struct jtag_tap *p)
 {
        p = p ? p->next_tap : jtag_all_taps();
-       while (p)
-       {
+       while (p) {
                if (p->enabled)
                        return p;
                p = p->next_tap;
@@ -278,12 +278,9 @@ int jtag_register_event_callback(jtag_event_handler_t callback, void *priv)
        struct jtag_event_callback **callbacks_p = &jtag_event_callbacks;
 
        if (callback == NULL)
-       {
                return ERROR_COMMAND_SYNTAX_ERROR;
-       }
 
-       if (*callbacks_p)
-       {
+       if (*callbacks_p) {
                while ((*callbacks_p)->next)
                        callbacks_p = &((*callbacks_p)->next);
                callbacks_p = &((*callbacks_p)->next);
@@ -302,14 +299,10 @@ int jtag_unregister_event_callback(jtag_event_handler_t callback, void *priv)
        struct jtag_event_callback **p = &jtag_event_callbacks, *temp;
 
        if (callback == NULL)
-       {
                return ERROR_COMMAND_SYNTAX_ERROR;
-       }
 
-       while (*p)
-       {
-               if (((*p)->priv != priv) || ((*p)->callback != callback))
-               {
+       while (*p) {
+               if (((*p)->priv != priv) || ((*p)->callback != callback)) {
                        p = &(*p)->next;
                        continue;
                }
@@ -328,8 +321,7 @@ int jtag_call_event_callbacks(enum jtag_event event)
 
        LOG_DEBUG("jtag event: %s", jtag_event_strings[event]);
 
-       while (callback)
-       {
+       while (callback) {
                struct jtag_event_callback *next;
 
                /* callback may remove itself */
@@ -356,7 +348,7 @@ static void jtag_prelude(tap_state_t state)
 }
 
 void jtag_add_ir_scan_noverify(struct jtag_tap *active, const struct scan_field *in_fields,
-               tap_state_t state)
+       tap_state_t state)
 {
        jtag_prelude(state);
 
@@ -364,8 +356,10 @@ void jtag_add_ir_scan_noverify(struct jtag_tap *active, const struct scan_field
        jtag_set_error(retval);
 }
 
-static void jtag_add_ir_scan_noverify_callback(struct jtag_tap *active, int dummy, const struct scan_field *in_fields,
-               tap_state_t state)
+static void jtag_add_ir_scan_noverify_callback(struct jtag_tap *active,
+       int dummy,
+       const struct scan_field *in_fields,
+       tap_state_t state)
 {
        jtag_add_ir_scan_noverify(active, in_fields, state);
 }
@@ -375,8 +369,7 @@ void jtag_add_ir_scan(struct jtag_tap *active, struct scan_field *in_fields, tap
 {
        assert(state != TAP_RESET);
 
-       if (jtag_verify && jtag_verify_capture_ir)
-       {
+       if (jtag_verify && jtag_verify_capture_ir) {
                /* 8 x 32 bit id's is enough for all invocations */
 
                /* if we are to run a verification of the ir scan, we need to get the input back.
@@ -384,15 +377,14 @@ void jtag_add_ir_scan(struct jtag_tap *active, struct scan_field *in_fields, tap
                 */
                in_fields->check_value = active->expected;
                in_fields->check_mask = active->expected_mask;
-               jtag_add_scan_check(active, jtag_add_ir_scan_noverify_callback, 1, in_fields, state);
+               jtag_add_scan_check(active, jtag_add_ir_scan_noverify_callback, 1, in_fields,
+                       state);
        } else
-       {
                jtag_add_ir_scan_noverify(active, in_fields, state);
-       }
 }
 
 void jtag_add_plain_ir_scan(int num_bits, const uint8_t *out_bits, uint8_t *in_bits,
-               tap_state_t state)
+       tap_state_t state)
 {
        assert(out_bits != NULL);
        assert(state != TAP_RESET);
@@ -405,24 +397,33 @@ void jtag_add_plain_ir_scan(int num_bits, const uint8_t *out_bits, uint8_t *in_b
 }
 
 static int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value,
-               uint8_t *in_check_mask, int num_bits);
+                                 uint8_t *in_check_mask, int num_bits);
 
-static int jtag_check_value_mask_callback(jtag_callback_data_t data0, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3)
+static int jtag_check_value_mask_callback(jtag_callback_data_t data0,
+       jtag_callback_data_t data1,
+       jtag_callback_data_t data2,
+       jtag_callback_data_t data3)
 {
-       return jtag_check_value_inner((uint8_t *)data0, (uint8_t *)data1, (uint8_t *)data2, (int)data3);
+       return jtag_check_value_inner((uint8_t *)data0,
+               (uint8_t *)data1,
+               (uint8_t *)data2,
+               (int)data3);
 }
 
-static void jtag_add_scan_check(struct jtag_tap *active, void (*jtag_add_scan)(struct jtag_tap *active, int in_num_fields, const struct scan_field *in_fields, tap_state_t state),
-               int in_num_fields, struct scan_field *in_fields, tap_state_t state)
+static void jtag_add_scan_check(struct jtag_tap *active, void (*jtag_add_scan)(
+               struct jtag_tap *active,
+               int in_num_fields,
+               const struct scan_field *in_fields,
+               tap_state_t state),
+       int in_num_fields, struct scan_field *in_fields, tap_state_t state)
 {
        jtag_add_scan(active, in_num_fields, in_fields, state);
 
-       for (int i = 0; i < in_num_fields; i++)
-       {
-               if ((in_fields[i].check_value != NULL) && (in_fields[i].in_value != NULL))
-               {
+       for (int i = 0; i < in_num_fields; i++) {
+               if ((in_fields[i].check_value != NULL) && (in_fields[i].in_value != NULL)) {
                        /* this is synchronous for a minidriver */
-                       jtag_add_callback4(jtag_check_value_mask_callback, (jtag_callback_data_t)in_fields[i].in_value,
+                       jtag_add_callback4(jtag_check_value_mask_callback,
+                               (jtag_callback_data_t)in_fields[i].in_value,
                                (jtag_callback_data_t)in_fields[i].check_value,
                                (jtag_callback_data_t)in_fields[i].check_mask,
                                (jtag_callback_data_t)in_fields[i].num_bits);
@@ -430,20 +431,22 @@ static void jtag_add_scan_check(struct jtag_tap *active, void (*jtag_add_scan)(s
        }
 }
 
-void jtag_add_dr_scan_check(struct jtag_tap *active, int in_num_fields, struct scan_field *in_fields, tap_state_t state)
+void jtag_add_dr_scan_check(struct jtag_tap *active,
+       int in_num_fields,
+       struct scan_field *in_fields,
+       tap_state_t state)
 {
        if (jtag_verify)
-       {
                jtag_add_scan_check(active, jtag_add_dr_scan, in_num_fields, in_fields, state);
-       } else
-       {
+       else
                jtag_add_dr_scan(active, in_num_fields, in_fields, state);
-       }
 }
 
 
-void jtag_add_dr_scan(struct jtag_tap *active, int in_num_fields, const struct scan_field *in_fields,
-               tap_state_t state)
+void jtag_add_dr_scan(struct jtag_tap *active,
+       int in_num_fields,
+       const struct scan_field *in_fields,
+       tap_state_t state)
 {
        assert(state != TAP_RESET);
 
@@ -455,7 +458,7 @@ void jtag_add_dr_scan(struct jtag_tap *active, int in_num_fields, const struct s
 }
 
 void jtag_add_plain_dr_scan(int num_bits, const uint8_t *out_bits, uint8_t *in_bits,
-               tap_state_t state)
+       tap_state_t state)
 {
        assert(out_bits != NULL);
        assert(state != TAP_RESET);
@@ -511,27 +514,23 @@ void jtag_add_pathmove(int num_states, const tap_state_t *path)
        tap_state_t cur_state = cmd_queue_cur_state;
 
        /* the last state has to be a stable state */
-       if (!tap_is_state_stable(path[num_states - 1]))
-       {
+       if (!tap_is_state_stable(path[num_states - 1])) {
                LOG_ERROR("BUG: TAP path doesn't finish in a stable state");
                jtag_set_error(ERROR_JTAG_NOT_STABLE_STATE);
                return;
        }
 
-       for (int i = 0; i < num_states; i++)
-       {
-               if (path[i] == TAP_RESET)
-               {
+       for (int i = 0; i < num_states; i++) {
+               if (path[i] == TAP_RESET) {
                        LOG_ERROR("BUG: TAP_RESET is not a valid state for pathmove sequences");
                        jtag_set_error(ERROR_JTAG_STATE_INVALID);
                        return;
                }
 
-               if (tap_state_transition(cur_state, true)  != path[i]
-                 && tap_state_transition(cur_state, false) != path[i])
-               {
+               if (tap_state_transition(cur_state, true) != path[i] &&
+                               tap_state_transition(cur_state, false) != path[i]) {
                        LOG_ERROR("BUG: %s -> %s isn't a valid TAP transition",
-                                       tap_state_name(cur_state), tap_state_name(path[i]));
+                               tap_state_name(cur_state), tap_state_name(path[i]));
                        jtag_set_error(ERROR_JTAG_TRANSITION_INVALID);
                        return;
                }
@@ -548,8 +547,7 @@ int jtag_add_statemove(tap_state_t goal_state)
 {
        tap_state_t cur_state = cmd_queue_cur_state;
 
-       if (goal_state != cur_state)
-       {
+       if (goal_state != cur_state) {
                LOG_DEBUG("cur_state=%s goal_state=%s",
                        tap_state_name(cur_state),
                        tap_state_name(goal_state));
@@ -561,17 +559,15 @@ int jtag_add_statemove(tap_state_t goal_state)
        if (goal_state == TAP_RESET)
                jtag_add_tlr();
        else if (goal_state == cur_state)
-               /* nothing to do */ ;
+               /* nothing to do */;
 
-       else if (tap_is_state_stable(cur_state) && tap_is_state_stable(goal_state))
-       {
+       else if (tap_is_state_stable(cur_state) && tap_is_state_stable(goal_state)) {
                unsigned tms_bits  = tap_get_tms_path(cur_state, goal_state);
                unsigned tms_count = tap_get_tms_path_len(cur_state, goal_state);
                tap_state_t moves[8];
                assert(tms_count < ARRAY_SIZE(moves));
 
-               for (unsigned i = 0; i < tms_count; i++, tms_bits >>= 1)
-               {
+               for (unsigned i = 0; i < tms_count; i++, tms_bits >>= 1) {
                        bool bit = tms_bits & 1;
 
                        cur_state = tap_state_transition(cur_state, bit);
@@ -579,13 +575,9 @@ int jtag_add_statemove(tap_state_t goal_state)
                }
 
                jtag_add_pathmove(tms_count, moves);
-       }
-       else if (tap_state_transition(cur_state, true)  == goal_state
-               ||   tap_state_transition(cur_state, false) == goal_state)
-       {
+       } else if (tap_state_transition(cur_state, true)  == goal_state
+                       || tap_state_transition(cur_state, false) == goal_state)
                jtag_add_pathmove(1, &goal_state);
-       }
-
        else
                return ERROR_FAIL;
 
@@ -601,16 +593,14 @@ void jtag_add_runtest(int num_cycles, tap_state_t state)
 
 void jtag_add_clocks(int num_cycles)
 {
-       if (!tap_is_state_stable(cmd_queue_cur_state))
-       {
-                LOG_ERROR("jtag_add_clocks() called with TAP in unstable state \"%s\"",
-                                tap_state_name(cmd_queue_cur_state));
-                jtag_set_error(ERROR_JTAG_NOT_STABLE_STATE);
-                return;
+       if (!tap_is_state_stable(cmd_queue_cur_state)) {
+               LOG_ERROR("jtag_add_clocks() called with TAP in unstable state \"%s\"",
+                       tap_state_name(cmd_queue_cur_state));
+               jtag_set_error(ERROR_JTAG_NOT_STABLE_STATE);
+               return;
        }
 
-       if (num_cycles > 0)
-       {
+       if (num_cycles > 0) {
                jtag_checks();
                jtag_set_error(interface_jtag_add_clocks(num_cycles));
        }
@@ -655,7 +645,7 @@ void jtag_add_reset(int req_tlr_or_trst, int req_srst)
                if (!(jtag_reset_config & RESET_HAS_TRST))
                        trst_with_tlr = 1;
                else if ((jtag_reset_config & RESET_TRST_PULLS_SRST) != 0
-                               && !req_srst)
+                        && !req_srst)
                        trst_with_tlr = 1;
                else
                        new_trst = 1;
@@ -680,13 +670,11 @@ void jtag_add_reset(int req_tlr_or_trst, int req_srst)
        /* SRST resets everything hooked up to that signal */
        if (jtag_srst != new_srst) {
                jtag_srst = new_srst;
-               if (jtag_srst)
-               {
+               if (jtag_srst) {
                        LOG_DEBUG("SRST line asserted");
                        if (adapter_nsrst_assert_width)
                                jtag_add_sleep(adapter_nsrst_assert_width * 1000);
-               }
-               else {
+               } else {
                        LOG_DEBUG("SRST line released");
                        if (adapter_nsrst_delay)
                                jtag_add_sleep(adapter_nsrst_delay * 1000);
@@ -728,13 +716,13 @@ void jtag_add_reset(int req_tlr_or_trst, int req_srst)
 
 void jtag_add_sleep(uint32_t us)
 {
-       /// @todo Here, keep_alive() appears to be a layering violation!!!
+       /* / @todo Here, keep_alive() appears to be a layering violation!!! */
        keep_alive();
        jtag_set_error(interface_jtag_add_sleep(us));
 }
 
 static int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value,
-               uint8_t *in_check_mask, int num_bits)
+       uint8_t *in_check_mask, int num_bits)
 {
        int retval = ERROR_OK;
        int compare_failed;
@@ -746,9 +734,7 @@ static int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value,
 
        if (compare_failed) {
                char *captured_str, *in_check_value_str;
-               int bits = (num_bits > DEBUG_JTAG_IOZ)
-                               ? DEBUG_JTAG_IOZ
-                               : num_bits;
+               int bits = (num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits;
 
                /* NOTE:  we've lost diagnostic context here -- 'which tap' */
 
@@ -756,7 +742,7 @@ static int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value,
                in_check_value_str = buf_to_str(in_check_value, bits, 16);
 
                LOG_WARNING("Bad value '%s' captured during DR or IR scan:",
-                               captured_str);
+                       captured_str);
                LOG_WARNING(" check_value: 0x%s", in_check_value_str);
 
                free(captured_str);
@@ -779,8 +765,7 @@ void jtag_check_value_mask(struct scan_field *field, uint8_t *value, uint8_t *ma
 {
        assert(field->in_value != NULL);
 
-       if (value == NULL)
-       {
+       if (value == NULL) {
                /* no checking to do */
                return;
        }
@@ -791,12 +776,9 @@ void jtag_check_value_mask(struct scan_field *field, uint8_t *value, uint8_t *ma
        jtag_set_error(retval);
 }
 
-
-
 int default_interface_jtag_execute_queue(void)
 {
-       if (NULL == jtag)
-       {
+       if (NULL == jtag) {
                LOG_ERROR("No JTAG interface configured yet.  "
                        "Issue 'init' command in startup scripts "
                        "before communicating with targets.");
@@ -811,8 +793,7 @@ void jtag_execute_queue_noclear(void)
        jtag_flush_queue_count++;
        jtag_set_error(interface_jtag_execute_queue());
 
-       if (jtag_flush_queue_sleep > 0)
-       {
+       if (jtag_flush_queue_sleep > 0) {
                /* For debug purposes it can be useful to test performance
                 * or behavior when delaying after flushing the queue,
                 * e.g. to simulate long roundtrip times.
@@ -836,8 +817,7 @@ static int jtag_reset_callback(enum jtag_event event, void *priv)
 {
        struct jtag_tap *tap = priv;
 
-       if (event == JTAG_TRST_ASSERTED)
-       {
+       if (event == JTAG_TRST_ASSERTED) {
                tap->enabled = !tap->disabled_after_reset;
 
                /* current instruction is either BYPASS or IDCODE */
@@ -873,20 +853,20 @@ void jtag_sleep(uint32_t us)
 /* A reserved manufacturer ID is used in END_OF_CHAIN_FLAG, so we
  * know that no valid TAP will have it as an IDCODE value.
  */
-#define END_OF_CHAIN_FLAG      0x000000ff
+#define END_OF_CHAIN_FLAG       0x000000ff
 
 /* a larger IR length than we ever expect to autoprobe */
-#define JTAG_IRLEN_MAX         60
+#define JTAG_IRLEN_MAX          60
 
 static int jtag_examine_chain_execute(uint8_t *idcode_buffer, unsigned num_idcode)
 {
        struct scan_field field = {
-                       .num_bits = num_idcode * 32,
-                       .out_value = idcode_buffer,
-                       .in_value = idcode_buffer,
-               };
+               .num_bits = num_idcode * 32,
+               .out_value = idcode_buffer,
+               .in_value = idcode_buffer,
+       };
 
-       // initialize to the end of chain ID value
+       /* initialize to the end of chain ID value */
        for (unsigned i = 0; i < JTAG_MAX_CHAIN_SIZE; i++)
                buf_set_u32(idcode_buffer, i * 32, 32, END_OF_CHAIN_FLAG);
 
@@ -900,8 +880,7 @@ static bool jtag_examine_chain_check(uint8_t *idcodes, unsigned count)
        uint8_t zero_check = 0x0;
        uint8_t one_check = 0xff;
 
-       for (unsigned i = 0; i < count * 4; i++)
-       {
+       for (unsigned i = 0; i < count * 4; i++) {
                zero_check |= idcodes[i];
                one_check &= idcodes[i];
        }
@@ -916,10 +895,9 @@ static bool jtag_examine_chain_check(uint8_t *idcodes, unsigned count)
         *     + there are several hundreds of TAPs in bypass, or
         *     + at least a few dozen TAPs all have an all-ones IDCODE
         */
-       if (zero_check == 0x00 || one_check == 0xff)
-       {
+       if (zero_check == 0x00 || one_check == 0xff) {
                LOG_ERROR("JTAG scan chain interrogation failed: all %s",
-                               (zero_check == 0x00) ? "zeroes" : "ones");
+                       (zero_check == 0x00) ? "zeroes" : "ones");
                LOG_ERROR("Check JTAG interface, timings, target power, etc.");
                return false;
        }
@@ -927,16 +905,16 @@ static bool jtag_examine_chain_check(uint8_t *idcodes, unsigned count)
 }
 
 static void jtag_examine_chain_display(enum log_levels level, const char *msg,
-               const char *name, uint32_t idcode)
+       const char *name, uint32_t idcode)
 {
-       log_printf_lf(level, __FILE__, __LINE__, __FUNCTION__,
-                                 "JTAG tap: %s %16.16s: 0x%08x "
-                                 "(mfg: 0x%3.3x, part: 0x%4.4x, ver: 0x%1.1x)",
-                                 name, msg,
-                                 (unsigned int)idcode,
-                                 (unsigned int)EXTRACT_MFG(idcode),
-                                 (unsigned int)EXTRACT_PART(idcode),
-                                 (unsigned int)EXTRACT_VER(idcode));
+       log_printf_lf(level, __FILE__, __LINE__, __func__,
+               "JTAG tap: %s %16.16s: 0x%08x "
+               "(mfg: 0x%3.3x, part: 0x%4.4x, ver: 0x%1.1x)",
+               name, msg,
+               (unsigned int)idcode,
+               (unsigned int)EXTRACT_MFG(idcode),
+               (unsigned int)EXTRACT_PART(idcode),
+               (unsigned int)EXTRACT_VER(idcode));
 }
 
 static bool jtag_idcode_is_final(uint32_t idcode)
@@ -959,15 +937,14 @@ static bool jtag_idcode_is_final(uint32_t idcode)
 static bool jtag_examine_chain_end(uint8_t *idcodes, unsigned count, unsigned max)
 {
        bool triggered = false;
-       for (; count < max - 31; count += 32)
-       {
+       for (; count < max - 31; count += 32) {
                uint32_t idcode = buf_get_u32(idcodes, count, 32);
 
                /* do not trigger the warning if the data looks good */
                if (jtag_idcode_is_final(idcode))
                        continue;
                LOG_WARNING("Unexpected idcode after end of chain: %d 0x%08x",
-                                       count, (unsigned int)idcode);
+                       count, (unsigned int)idcode);
                triggered = true;
        }
        return triggered;
@@ -989,8 +966,7 @@ static bool jtag_examine_chain_match_tap(const struct jtag_tap *tap)
        /* Loop over the expected identification codes and test for a match */
        unsigned ii, limit = tap->expected_ids_cnt;
 
-       for (ii = 0; ii < limit; ii++)
-       {
+       for (ii = 0; ii < limit; ii++) {
                uint32_t expected = tap->expected_ids[ii] & mask;
 
                if (idcode == expected)
@@ -1003,14 +979,13 @@ static bool jtag_examine_chain_match_tap(const struct jtag_tap *tap)
 
        /* If none of the expected ids matched, warn */
        jtag_examine_chain_display(LOG_LVL_WARNING, "UNEXPECTED",
-                       tap->dotted_name, tap->idcode);
-       for (ii = 0; ii < limit; ii++)
-       {
+               tap->dotted_name, tap->idcode);
+       for (ii = 0; ii < limit; ii++) {
                char msg[32];
 
                snprintf(msg, sizeof(msg), "expected %u of %u", ii + 1, limit);
                jtag_examine_chain_display(LOG_LVL_ERROR, msg,
-                               tap->dotted_name, tap->expected_ids[ii]);
+                       tap->dotted_name, tap->expected_ids[ii]);
        }
        return false;
 }
@@ -1043,28 +1018,24 @@ static int jtag_examine_chain(void)
                autoprobe = true;
 
        for (bit_count = 0;
-                       tap && bit_count < (JTAG_MAX_CHAIN_SIZE * 32) - 31;
-                       tap = jtag_tap_next_enabled(tap))
-       {
+            tap && bit_count < (JTAG_MAX_CHAIN_SIZE * 32) - 31;
+            tap = jtag_tap_next_enabled(tap)) {
                uint32_t idcode = buf_get_u32(idcode_buffer, bit_count, 32);
 
-               if ((idcode & 1) == 0)
-               {
+               if ((idcode & 1) == 0) {
                        /* Zero for LSB indicates a device in bypass */
                        LOG_INFO("TAP %s does not have IDCODE",
-                                       tap->dotted_name);
+                               tap->dotted_name);
                        idcode = 0;
                        tap->hasidcode = false;
 
                        bit_count += 1;
-               }
-               else
-               {
+               } else {
                        /* Friendly devices support IDCODE */
                        tap->hasidcode = true;
                        jtag_examine_chain_display(LOG_LVL_INFO,
-                                       "tap/device found",
-                                       tap->dotted_name, idcode);
+                               "tap/device found",
+                               tap->dotted_name, idcode);
 
                        bit_count += 32;
                }
@@ -1078,7 +1049,7 @@ static int jtag_examine_chain(void)
        /* Fail if too many TAPs were enabled for us to verify them all. */
        if (tap) {
                LOG_ERROR("Too many TAPs enabled; '%s' ignored.",
-                               tap->dotted_name);
+                       tap->dotted_name);
                return ERROR_JTAG_INIT_FAILED;
        }
 
@@ -1128,9 +1099,9 @@ static int jtag_examine_chain(void)
                }
 
                LOG_WARNING("AUTO %s - use \"jtag newtap "
-                               "%s %s -expected-id 0x%8.8" PRIx32 " ...\"",
-                               tap->dotted_name, tap->chip, tap->tapname,
-                               tap->idcode);
+                       "%s %s -expected-id 0x%8.8" PRIx32 " ...\"",
+                       tap->dotted_name, tap->chip, tap->tapname,
+                       tap->idcode);
 
                jtag_tap_init(tap);
        }
@@ -1139,9 +1110,9 @@ static int jtag_examine_chain(void)
         * only the data we fed into the scan chain.
         */
        if (jtag_examine_chain_end(idcode_buffer, bit_count,
-                       8 * sizeof(idcode_buffer))) {
+                   8 * sizeof(idcode_buffer))) {
                LOG_ERROR("double-check your JTAG setup (interface, "
-                               "speed, missing TAPs, ...)");
+                       "speed, missing TAPs, ...)");
                return ERROR_JTAG_INIT_FAILED;
        }
 
@@ -1201,11 +1172,10 @@ static int jtag_validate_ircapture(void)
        tap = NULL;
        chain_pos = 0;
 
-       for (;;) {
+       for (;; ) {
                tap = jtag_tap_next_enabled(tap);
-               if (tap == NULL) {
+               if (tap == NULL)
                        break;
-               }
 
                /* If we're autoprobing, guess IR lengths.  They must be at
                 * least two bits.  Guessing will fail if (a) any TAP does
@@ -1225,13 +1195,12 @@ static int jtag_validate_ircapture(void)
                 */
                if (tap->ir_length == 0) {
                        tap->ir_length = 2;
-                       while ((val = buf_get_u32(ir_test, chain_pos,
-                                               tap->ir_length + 1)) == 1
+                       while ((val = buf_get_u32(ir_test, chain_pos, tap->ir_length + 1)) == 1
                                        && tap->ir_length <= 32) {
                                tap->ir_length++;
                        }
                        LOG_WARNING("AUTO %s - use \"... -irlen %d\"",
-                                       jtag_tap_name(tap), tap->ir_length);
+                               jtag_tap_name(tap), tap->ir_length);
                }
 
                /* Validate the two LSBs, which must be 01 per JTAG spec.
@@ -1244,28 +1213,27 @@ static int jtag_validate_ircapture(void)
                val = buf_get_u32(ir_test, chain_pos, tap->ir_length);
                if ((val & tap->ir_capture_mask) != tap->ir_capture_value) {
                        LOG_ERROR("%s: IR capture error; saw 0x%0*x not 0x%0*x",
-                                       jtag_tap_name(tap),
-                                       (tap->ir_length + 7) / tap->ir_length,
-                                       val,
-                                       (tap->ir_length + 7) / tap->ir_length,
-                                       (unsigned) tap->ir_capture_value);
+                               jtag_tap_name(tap),
+                               (tap->ir_length + 7) / tap->ir_length,
+                               val,
+                               (tap->ir_length + 7) / tap->ir_length,
+                               (unsigned) tap->ir_capture_value);
 
                        retval = ERROR_JTAG_INIT_FAILED;
                        goto done;
                }
                LOG_DEBUG("%s: IR capture 0x%0*x", jtag_tap_name(tap),
-                               (tap->ir_length + 7) / tap->ir_length, val);
+                       (tap->ir_length + 7) / tap->ir_length, val);
                chain_pos += tap->ir_length;
        }
 
        /* verify the '11' sentinel we wrote is returned at the end */
        val = buf_get_u32(ir_test, chain_pos, 2);
-       if (val != 0x3)
-       {
+       if (val != 0x3) {
                char *cbuf = buf_to_str(ir_test, total_ir_length, 16);
 
                LOG_ERROR("IR capture error at bit %d, saw 0x%s not 0x...3",
-                               chain_pos, cbuf);
+                       chain_pos, cbuf);
                free(cbuf);
                retval = ERROR_JTAG_INIT_FAILED;
        }
@@ -1279,7 +1247,6 @@ done:
        return retval;
 }
 
-
 void jtag_tap_init(struct jtag_tap *tap)
 {
        unsigned ir_len_bits;
@@ -1293,25 +1260,25 @@ void jtag_tap_init(struct jtag_tap *tap)
        tap->expected_mask = calloc(1, ir_len_bytes);
        tap->cur_instr = malloc(ir_len_bytes);
 
-       /// @todo cope better with ir_length bigger than 32 bits
+       /* / @todo cope better with ir_length bigger than 32 bits */
        if (ir_len_bits > 32)
                ir_len_bits = 32;
 
        buf_set_u32(tap->expected, 0, ir_len_bits, tap->ir_capture_value);
        buf_set_u32(tap->expected_mask, 0, ir_len_bits, tap->ir_capture_mask);
 
-       // TAP will be in bypass mode after jtag_validate_ircapture()
+       /* TAP will be in bypass mode after jtag_validate_ircapture() */
        tap->bypass = 1;
        buf_set_ones(tap->cur_instr, tap->ir_length);
 
-       // register the reset callback for the TAP
+       /* register the reset callback for the TAP */
        jtag_register_event_callback(&jtag_reset_callback, tap);
 
        LOG_DEBUG("Created Tap: %s @ abs position %d, "
-                       "irlen %d, capture: 0x%x mask: 0x%x", tap->dotted_name,
-                               tap->abs_chain_position, tap->ir_length,
-                               (unsigned) tap->ir_capture_value,
-                               (unsigned) tap->ir_capture_mask);
+               "irlen %d, capture: 0x%x mask: 0x%x", tap->dotted_name,
+               tap->abs_chain_position, tap->ir_length,
+               (unsigned) tap->ir_capture_value,
+               (unsigned) tap->ir_capture_mask);
        jtag_tap_add(tap);
 }
 
@@ -1319,7 +1286,7 @@ void jtag_tap_free(struct jtag_tap *tap)
 {
        jtag_unregister_event_callback(&jtag_reset_callback, tap);
 
-       /// @todo is anything missing? no memory leaks please
+       /* / @todo is anything missing? no memory leaks please */
        free((void *)tap->expected);
        free((void *)tap->expected_ids);
        free((void *)tap->chip);
@@ -1337,8 +1304,7 @@ int adapter_init(struct command_context *cmd_ctx)
        if (jtag)
                return ERROR_OK;
 
-       if (!jtag_interface)
-       {
+       if (!jtag_interface) {
                /* nothing was previously specified by "interface" command */
                LOG_ERROR("Debug Adapter has to be specified, "
                        "see \"interface\" command");
@@ -1348,9 +1314,7 @@ int adapter_init(struct command_context *cmd_ctx)
        int retval;
        retval = jtag_interface->init();
        if (retval != ERROR_OK)
-       {
                return retval;
-       }
        jtag = jtag_interface;
 
        /* LEGACY SUPPORT ... adapter drivers  must declare what
@@ -1366,8 +1330,7 @@ int adapter_init(struct command_context *cmd_ctx)
                        return retval;
        }
 
-       if (CLOCK_MODE_UNSELECTED == clock_mode)
-       {
+       if (CLOCK_MODE_UNSELECTED == clock_mode) {
                LOG_ERROR("An adapter speed is not selected in the init script."
                        " Insert a call to adapter_khz or jtag_rclk to proceed.");
                return ERROR_JTAG_INIT_FAILED;
@@ -1385,19 +1348,15 @@ int adapter_init(struct command_context *cmd_ctx)
        retval = jtag_get_speed_readable(&actual_khz);
        if (ERROR_OK != retval)
                LOG_INFO("adapter-specific clock speed value %d", jtag_speed_var);
-       else if (actual_khz)
-       {
+       else if (actual_khz) {
                /* Adaptive clocking -- JTAG-specific */
                if ((CLOCK_MODE_RCLK == clock_mode)
-                       || ((CLOCK_MODE_KHZ == clock_mode) && !requested_khz))
-               {
+                               || ((CLOCK_MODE_KHZ == clock_mode) && !requested_khz)) {
                        LOG_INFO("RCLK (adaptive clock speed) not supported - fallback to %d kHz"
-                               , actual_khz);
-               }
-               else
+                       , actual_khz);
+               } else
                        LOG_INFO("clock speed %d kHz", actual_khz);
-       }
-       else
+       } else
                LOG_INFO("RCLK (adaptive clock speed)");
 
        return ERROR_OK;
@@ -1425,13 +1384,14 @@ int jtag_init_inner(struct command_context *cmd_ctx)
                 * the TAP's IDCODE values.
                 */
                LOG_WARNING("There are no enabled taps.  "
-                               "AUTO PROBING MIGHT NOT WORK!!");
+                       "AUTO PROBING MIGHT NOT WORK!!");
 
                /* REVISIT default clock will often be too fast ... */
        }
 
        jtag_add_tlr();
-       if ((retval = jtag_execute_queue()) != ERROR_OK)
+       retval = jtag_execute_queue();
+       if (retval != ERROR_OK)
                return retval;
 
        /* Examine DR values first.  This discovers problems which will
@@ -1440,22 +1400,22 @@ int jtag_init_inner(struct command_context *cmd_ctx)
         */
        retval = jtag_examine_chain();
        switch (retval) {
-       case ERROR_OK:
-               /* complete success */
-               break;
-       default:
-               /* For backward compatibility reasons, try coping with
-                * configuration errors involving only ID mismatches.
-                * We might be able to talk to the devices.
-                *
-                * Also the device might be powered down during startup.
-                *
-                * After OpenOCD starts, we can try to power on the device
-                * and run a reset.
-                */
-               LOG_ERROR("Trying to use configured scan chain anyway...");
-               issue_setup = false;
-               break;
+               case ERROR_OK:
+                       /* complete success */
+                       break;
+               default:
+                       /* For backward compatibility reasons, try coping with
+                        * configuration errors involving only ID mismatches.
+                        * We might be able to talk to the devices.
+                        *
+                        * Also the device might be powered down during startup.
+                        *
+                        * After OpenOCD starts, we can try to power on the device
+                        * and run a reset.
+                        */
+                       LOG_ERROR("Trying to use configured scan chain anyway...");
+                       issue_setup = false;
+                       break;
        }
 
        /* Now look at IR values.  Problems here will prevent real
@@ -1465,8 +1425,7 @@ int jtag_init_inner(struct command_context *cmd_ctx)
         * ircapture/irmask values during TAP setup.)
         */
        retval = jtag_validate_ircapture();
-       if (retval != ERROR_OK)
-       {
+       if (retval != ERROR_OK) {
                /* The target might be powered down. The user
                 * can power it up and reset it after firing
                 * up OpenOCD.
@@ -1488,7 +1447,7 @@ int adapter_quit(void)
        if (!jtag || !jtag->quit)
                return ERROR_OK;
 
-       // close the JTAG interface
+       /* close the JTAG interface */
        int result = jtag->quit();
        if (ERROR_OK != result)
                LOG_ERROR("failed: %d", result);
@@ -1499,9 +1458,8 @@ int adapter_quit(void)
 
 int jtag_init_reset(struct command_context *cmd_ctx)
 {
-       int retval;
-
-       if ((retval = adapter_init(cmd_ctx)) != ERROR_OK)
+       int retval = adapter_init(cmd_ctx);
+       if (retval != ERROR_OK)
                return retval;
 
        LOG_DEBUG("Initializing with hard TRST+SRST reset");
@@ -1530,15 +1488,15 @@ int jtag_init_reset(struct command_context *cmd_ctx)
         * REVISIT once Tcl code can read the reset_config modes, this won't
         * need to be a C routine at all...
         */
-       jtag_add_reset(1, 0); /* TAP_RESET, using TMS+TCK or TRST */
-       if (jtag_reset_config & RESET_HAS_SRST)
-       {
+       jtag_add_reset(1, 0);   /* TAP_RESET, using TMS+TCK or TRST */
+       if (jtag_reset_config & RESET_HAS_SRST) {
                jtag_add_reset(1, 1);
                if ((jtag_reset_config & RESET_SRST_PULLS_TRST) == 0)
                        jtag_add_reset(0, 1);
        }
        jtag_add_reset(0, 0);
-       if ((retval = jtag_execute_queue()) != ERROR_OK)
+       retval = jtag_execute_queue();
+       if (retval != ERROR_OK)
                return retval;
 
        /* Check that we can communication on the JTAG chain + eventually we want to
@@ -1553,14 +1511,14 @@ int jtag_init_reset(struct command_context *cmd_ctx)
 
 int jtag_init(struct command_context *cmd_ctx)
 {
-       int retval;
-
-       if ((retval = adapter_init(cmd_ctx)) != ERROR_OK)
+       int retval = adapter_init(cmd_ctx);
+       if (retval != ERROR_OK)
                return retval;
 
        /* guard against oddball hardware: force resets to be inactive */
        jtag_add_reset(0, 0);
-       if ((retval = jtag_execute_queue()) != ERROR_OK)
+       retval = jtag_execute_queue();
+       if (retval != ERROR_OK)
                return retval;
 
        if (Jim_Eval_Named(cmd_ctx->interp, "jtag_init", __FILE__, __LINE__) != JIM_OK)
@@ -1574,29 +1532,25 @@ unsigned jtag_get_speed_khz(void)
        return speed_khz;
 }
 
-static int adapter_khz_to_speed(unsigned khz, intspeed)
+static int adapter_khz_to_speed(unsigned khz, int *speed)
 {
        LOG_DEBUG("convert khz to interface specific speed value");
        speed_khz = khz;
-       if (jtag != NULL)
-       {
+       if (jtag != NULL) {
                LOG_DEBUG("have interface set up");
                int speed_div1;
                int retval = jtag->khz(jtag_get_speed_khz(), &speed_div1);
                if (ERROR_OK != retval)
-               {
                        return retval;
-               }
                *speed = speed_div1;
        }
        return ERROR_OK;
 }
 
-static int jtag_rclk_to_speed(unsigned fallback_speed_khz, intspeed)
+static int jtag_rclk_to_speed(unsigned fallback_speed_khz, int *speed)
 {
        int retval = adapter_khz_to_speed(0, speed);
-       if ((ERROR_OK != retval) && fallback_speed_khz)
-       {
+       if ((ERROR_OK != retval) && fallback_speed_khz) {
                LOG_DEBUG("trying fallback speed...");
                retval = adapter_khz_to_speed(fallback_speed_khz, speed);
        }
@@ -1632,8 +1586,7 @@ int jtag_config_rclk(unsigned fallback_speed_khz)
 
 int jtag_get_speed(int *speed)
 {
-       switch(clock_mode)
-       {
+       switch (clock_mode) {
                case CLOCK_MODE_KHZ:
                        adapter_khz_to_speed(jtag_get_speed_khz(), speed);
                        break;
@@ -1678,8 +1631,7 @@ bool jtag_will_verify_capture_ir()
 
 int jtag_power_dropout(int *dropout)
 {
-       if (jtag == NULL)
-       {
+       if (jtag == NULL) {
                /* TODO: as the jtag interface is not valid all
                 * we can do at the moment is exit OpenOCD */
                LOG_ERROR("No Valid JTAG Interface Configured.");
index 62cda41497ae92bba3e63309e1fda8b855fc39d6..5507766bda88777fd1ef98078279f2bcaf0f4422 100644 (file)
@@ -1,4 +1,28 @@
+/***************************************************************************
+ *   Copyright (C) 2005 by Dominic Rath                                    *
+ *   Dominic.Rath@gmx.de                                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+
+#ifndef JTAG_DRIVER_H
+#define JTAG_DRIVER_H
+
 struct command_context;
 
 int interface_register_commands(struct command_context *ctx);
 
+#endif /* JTAG_DRIVER_H */
index 1ed45123f30bc70cdcb079019177bca5dc4c5a3f..8206b48e1f9a51b7357e9f32346a418222f4616b 100644 (file)
@@ -27,6 +27,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -60,7 +61,7 @@ static tap_state_t end_state_follower = TAP_RESET;
 void tap_set_end_state(tap_state_t new_end_state)
 {
        /* this is the state we think the TAPs will be in at completion of the
-          current TAP operation, was end_state
+        * current TAP operation, was end_state
        */
        end_state_follower = new_end_state;
 }
@@ -70,7 +71,6 @@ tap_state_t tap_get_end_state()
        return end_state_follower;
 }
 
-
 int tap_move_ndx(tap_state_t astate)
 {
        /* given a stable state, return the index into the tms_seqs[]
@@ -79,33 +79,42 @@ int tap_move_ndx(tap_state_t astate)
 
        int ndx;
 
-       switch (astate)
-       {
-       case TAP_RESET:         ndx = 0;                        break;
-       case TAP_IDLE:          ndx = 1;                        break;
-       case TAP_DRSHIFT:       ndx = 2;                        break;
-       case TAP_DRPAUSE:       ndx = 3;                        break;
-       case TAP_IRSHIFT:       ndx = 4;                        break;
-       case TAP_IRPAUSE:       ndx = 5;                        break;
-       default:
-               LOG_ERROR("FATAL: unstable state \"%s\" in tap_move_ndx()",
-                               tap_state_name(astate));
-               exit(1);
+       switch (astate) {
+               case TAP_RESET:
+                       ndx = 0;
+                       break;
+               case TAP_IDLE:
+                       ndx = 1;
+                       break;
+               case TAP_DRSHIFT:
+                       ndx = 2;
+                       break;
+               case TAP_DRPAUSE:
+                       ndx = 3;
+                       break;
+               case TAP_IRSHIFT:
+                       ndx = 4;
+                       break;
+               case TAP_IRPAUSE:
+                       ndx = 5;
+                       break;
+               default:
+                       LOG_ERROR("FATAL: unstable state \"%s\" in tap_move_ndx()",
+                                       tap_state_name(astate));
+                       exit(1);
        }
 
        return ndx;
 }
 
-
 /* tap_move[i][j]: tap movement command to go from state i to state j
  * encodings of i and j are what tap_move_ndx() reports.
  *
  * DRSHIFT->DRSHIFT and IRSHIFT->IRSHIFT have to be caught in interface specific code
  */
-struct tms_sequences
-{
-       uint8_t bits;
-       uint8_t bit_count;
+struct tms_sequences {
+       uint8_t bits;
+       uint8_t bit_count;
 };
 
 /*
@@ -114,119 +123,111 @@ struct tms_sequences
  */
 #define HEX__(n) 0x##n##LU
 
-#define B8__(x) \
-        (((x) & 0x0000000FLU)?(1 << 0):0) \
-       +(((x) & 0x000000F0LU)?(1 << 1):0) \
-       +(((x) & 0x00000F00LU)?(1 << 2):0) \
-       +(((x) & 0x0000F000LU)?(1 << 3):0) \
-       +(((x) & 0x000F0000LU)?(1 << 4):0) \
-       +(((x) & 0x00F00000LU)?(1 << 5):0) \
-       +(((x) & 0x0F000000LU)?(1 << 6):0) \
-       +(((x) & 0xF0000000LU)?(1 << 7):0)
+#define B8__(x)        \
+       ((((x) & 0x0000000FLU) ? (1 << 0) : 0) \
+       +(((x) & 0x000000F0LU) ? (1 << 1) : 0) \
+       +(((x) & 0x00000F00LU) ? (1 << 2) : 0) \
+       +(((x) & 0x0000F000LU) ? (1 << 3) : 0) \
+       +(((x) & 0x000F0000LU) ? (1 << 4) : 0) \
+       +(((x) & 0x00F00000LU) ? (1 << 5) : 0) \
+       +(((x) & 0x0F000000LU) ? (1 << 6) : 0) \
+       +(((x) & 0xF0000000LU) ? (1 << 7) : 0))
 
-#define B8(bits,count)         { ((uint8_t)B8__(HEX__(bits))), (count) }
+#define B8(bits, count) {((uint8_t)B8__(HEX__(bits))), (count)}
 
-static const struct tms_sequences old_tms_seqs[6][6] =         /*  [from_state_ndx][to_state_ndx] */
-{
+static const struct tms_sequences old_tms_seqs[6][6] = {       /* [from_state_ndx][to_state_ndx] */
        /* value clocked to TMS to move from one of six stable states to another.
         * N.B. OOCD clocks TMS from LSB first, so read these right-to-left.
         * N.B. Reset only needs to be 0b11111, but in JLink an even byte of 1's is more stable.
         * These extra ones cause no TAP state problem, because we go into reset and stay in reset.
         */
 
-       /* to state: */
-       /*      RESET                   IDLE                    DRSHIFT                 DRPAUSE                 IRSHIFT                 IRPAUSE         */              /* from state: */
-       {       B8(1111111,7),  B8(0000000,7),  B8(0010111,7),  B8(0001010,7),  B8(0011011,7),  B8(0010110,7) },        /* RESET */
-       {       B8(1111111,7),  B8(0000000,7),  B8(0100101,7),  B8(0000101,7),  B8(0101011,7),  B8(0001011,7) },        /* IDLE */
-       {       B8(1111111,7),  B8(0110001,7),  B8(0000000,7),  B8(0000001,7),  B8(0001111,7),  B8(0101111,7) },        /* DRSHIFT */
-       {       B8(1111111,7),  B8(0110000,7),  B8(0100000,7),  B8(0010111,7),  B8(0011110,7),  B8(0101111,7) },        /* DRPAUSE */
-       {       B8(1111111,7),  B8(0110001,7),  B8(0000111,7),  B8(0010111,7),  B8(0000000,7),  B8(0000001,7) },        /* IRSHIFT */
-       {       B8(1111111,7),  B8(0110000,7),  B8(0011100,7),  B8(0010111,7),  B8(0011110,7),  B8(0101111,7) },        /* IRPAUSE */
+/* to state: */
+/*     RESET            IDLE                   DRSHIFT                 DRPAUSE                 IRSHIFT                 IRPAUSE         */      /* from state: */
+{B8(1111111, 7), B8(0000000, 7), B8(0010111, 7), B8(0001010, 7), B8(0011011, 7), B8(0010110, 7)},/* RESET */
+{B8(1111111, 7), B8(0000000, 7), B8(0100101, 7), B8(0000101, 7), B8(0101011, 7), B8(0001011, 7)},/* IDLE */
+{B8(1111111, 7), B8(0110001, 7), B8(0000000, 7), B8(0000001, 7), B8(0001111, 7), B8(0101111, 7)},/* DRSHIFT */
+{B8(1111111, 7), B8(0110000, 7), B8(0100000, 7), B8(0010111, 7), B8(0011110, 7), B8(0101111, 7)},/* DRPAUSE */
+{B8(1111111, 7), B8(0110001, 7), B8(0000111, 7), B8(0010111, 7), B8(0000000, 7), B8(0000001, 7)},/* IRSHIFT */
+{B8(1111111, 7), B8(0110000, 7), B8(0011100, 7), B8(0010111, 7), B8(0011110, 7), B8(0101111, 7)},/* IRPAUSE */
 };
 
-
-
-static const struct tms_sequences short_tms_seqs[6][6] =               /*  [from_state_ndx][to_state_ndx] */
-{
+static const struct tms_sequences short_tms_seqs[6][6] = { /* [from_state_ndx][to_state_ndx] */
        /* this is the table submitted by Jeff Williams on 3/30/2009 with this comment:
 
-               OK, I added Peter's version of the state table, and it works OK for
-               me on MC1322x. I've recreated the jlink portion of patch with this
-               new state table. His changes to my state table are pretty minor in
-               terms of total transitions, but Peter feels that his version fixes
-               some long-standing problems.
-               Jeff
-
-               I added the bit count into the table, reduced RESET column to 7 bits from 8.
-               Dick
-
-               state specific comments:
-               ------------------------
-               *->RESET           tried the 5 bit reset and it gave me problems, 7 bits seems to
-                                          work better on ARM9 with ft2232 driver.  (Dick)
-
-               RESET->DRSHIFT add 1 extra clock cycles in the RESET state before advancing.
-                                               needed on ARM9 with ft2232 driver.  (Dick)
-                                               (For a total of *THREE* extra clocks in RESET; NOP.)
-
-               RESET->IRSHIFT add 1 extra clock cycles in the RESET state before advancing.
-                                               needed on ARM9 with ft2232 driver.  (Dick)
-                                               (For a total of *TWO* extra clocks in RESET; NOP.)
-
-               RESET->*                always adds one or more clocks in the target state,
-                                               which should be NOPS; except shift states which (as
-                                               noted above) add those clocks in RESET.
-
-               The X-to-X transitions always add clocks; from *SHIFT, they go
-               via IDLE and thus *DO HAVE SIDE EFFECTS* (capture and update).
-       */
-
-       /* to state: */
-       /*      RESET                   IDLE                    DRSHIFT                 DRPAUSE                 IRSHIFT                 IRPAUSE */                      /* from state: */
-       {       B8(1111111,7),  B8(0000000,7),  B8(0010111,7),  B8(0001010,7),  B8(0011011,7),  B8(0010110,7) },        /* RESET */
-       {       B8(1111111,7),  B8(0000000,7),  B8(001,3),              B8(0101,4),             B8(0011,4),             B8(01011,5) },          /* IDLE */
-       {       B8(1111111,7),  B8(011,3),              B8(00111,5),    B8(01,2),               B8(001111,6),   B8(0101111,7) },        /* DRSHIFT */
-       {       B8(1111111,7),  B8(011,3),              B8(01,2),               B8(0,1),                B8(001111,6),   B8(0101111,7) },        /* DRPAUSE */
-       {       B8(1111111,7),  B8(011,3),              B8(00111,5),    B8(010111,6),   B8(001111,6),   B8(01,2) },                     /* IRSHIFT */
-       {       B8(1111111,7),  B8(011,3),              B8(00111,5),    B8(010111,6),   B8(01,2),               B8(0,1)}                        /* IRPAUSE */
-
+       OK, I added Peter's version of the state table, and it works OK for
+       me on MC1322x. I've recreated the jlink portion of patch with this
+       new state table. His changes to my state table are pretty minor in
+       terms of total transitions, but Peter feels that his version fixes
+       some long-standing problems.
+       Jeff
+
+       I added the bit count into the table, reduced RESET column to 7 bits from 8.
+       Dick
+
+       state specific comments:
+       ------------------------
+       *->RESET                tried the 5 bit reset and it gave me problems, 7 bits seems to
+                                       work better on ARM9 with ft2232 driver.  (Dick)
+
+       RESET->DRSHIFT add 1 extra clock cycles in the RESET state before advancing.
+                                       needed on ARM9 with ft2232 driver.  (Dick)
+                                       (For a total of *THREE* extra clocks in RESET; NOP.)
+
+       RESET->IRSHIFT add 1 extra clock cycles in the RESET state before advancing.
+                                       needed on ARM9 with ft2232 driver.  (Dick)
+                                       (For a total of *TWO* extra clocks in RESET; NOP.)
+
+       RESET->*                always adds one or more clocks in the target state,
+                                       which should be NOPS; except shift states which (as
+                                       noted above) add those clocks in RESET.
+
+       The X-to-X transitions always add clocks; from *SHIFT, they go
+       via IDLE and thus *DO HAVE SIDE EFFECTS* (capture and update).
+*/
+
+/* to state: */
+/*     RESET           IDLE                    DRSHIFT                 DRPAUSE                 IRSHIFT                 IRPAUSE */ /* from state: */
+{B8(1111111, 7), B8(0000000, 7), B8(0010111, 7), B8(0001010, 7), B8(0011011, 7), B8(0010110, 7)}, /* RESET */
+{B8(1111111, 7), B8(0000000, 7), B8(001, 3),    B8(0101, 4),    B8(0011, 4),    B8(01011, 5)}, /* IDLE */
+{B8(1111111, 7), B8(011, 3),    B8(00111, 5),   B8(01, 2),              B8(001111, 6),  B8(0101111, 7)}, /* DRSHIFT */
+{B8(1111111, 7), B8(011, 3),    B8(01, 2),              B8(0, 1),               B8(001111, 6),  B8(0101111, 7)}, /* DRPAUSE */
+{B8(1111111, 7), B8(011, 3),    B8(00111, 5),   B8(010111, 6),  B8(001111, 6),  B8(01, 2)}, /* IRSHIFT */
+{B8(1111111, 7), B8(011, 3),    B8(00111, 5),   B8(010111, 6),  B8(01, 2),              B8(0, 1)} /* IRPAUSE */
 };
 
 typedef const struct tms_sequences tms_table[6][6];
 
-static tms_table *tms_seqs=&short_tms_seqs;
+static tms_table *tms_seqs = &short_tms_seqs;
 
 int tap_get_tms_path(tap_state_t from, tap_state_t to)
 {
        return (*tms_seqs)[tap_move_ndx(from)][tap_move_ndx(to)].bits;
 }
 
-
 int tap_get_tms_path_len(tap_state_t from, tap_state_t to)
 {
        return (*tms_seqs)[tap_move_ndx(from)][tap_move_ndx(to)].bit_count;
 }
 
-
 bool tap_is_state_stable(tap_state_t astate)
 {
        bool is_stable;
 
        /*      A switch () is used because it is symbol dependent
-               (not value dependent like an array), and can also check bounds.
+        * (not value dependent like an array), and can also check bounds.
        */
-       switch (astate)
-       {
-       case TAP_RESET:
-       case TAP_IDLE:
-       case TAP_DRSHIFT:
-       case TAP_DRPAUSE:
-       case TAP_IRSHIFT:
-       case TAP_IRPAUSE:
-               is_stable = true;
-               break;
-       default:
-               is_stable = false;
+       switch (astate) {
+               case TAP_RESET:
+               case TAP_IDLE:
+               case TAP_DRSHIFT:
+               case TAP_DRPAUSE:
+               case TAP_IRSHIFT:
+               case TAP_IRPAUSE:
+                       is_stable = true;
+                       break;
+               default:
+                       is_stable = false;
        }
 
        return is_stable;
@@ -237,126 +238,120 @@ tap_state_t tap_state_transition(tap_state_t cur_state, bool tms)
        tap_state_t new_state;
 
        /*      A switch is used because it is symbol dependent and not value dependent
-               like an array.  Also it can check for out of range conditions.
+        * like an array.  Also it can check for out of range conditions.
        */
 
-       if (tms)
-       {
-               switch (cur_state)
-               {
-               case TAP_RESET:
-                       new_state = cur_state;
-                       break;
-               case TAP_IDLE:
-               case TAP_DRUPDATE:
-               case TAP_IRUPDATE:
-                       new_state = TAP_DRSELECT;
-                       break;
-               case TAP_DRSELECT:
-                       new_state = TAP_IRSELECT;
-                       break;
-               case TAP_DRCAPTURE:
-               case TAP_DRSHIFT:
-                       new_state = TAP_DREXIT1;
-                       break;
-               case TAP_DREXIT1:
-               case TAP_DREXIT2:
-                       new_state = TAP_DRUPDATE;
-                       break;
-               case TAP_DRPAUSE:
-                       new_state = TAP_DREXIT2;
-                       break;
-               case TAP_IRSELECT:
-                       new_state = TAP_RESET;
-                       break;
-               case TAP_IRCAPTURE:
-               case TAP_IRSHIFT:
-                       new_state = TAP_IREXIT1;
-                       break;
-               case TAP_IREXIT1:
-               case TAP_IREXIT2:
-                       new_state = TAP_IRUPDATE;
-                       break;
-               case TAP_IRPAUSE:
-                       new_state = TAP_IREXIT2;
-                       break;
-               default:
-                       LOG_ERROR("fatal: invalid argument cur_state=%d", cur_state);
-                       exit(1);
-                       break;
+       if (tms) {
+               switch (cur_state) {
+                       case TAP_RESET:
+                               new_state = cur_state;
+                               break;
+                       case TAP_IDLE:
+                       case TAP_DRUPDATE:
+                       case TAP_IRUPDATE:
+                               new_state = TAP_DRSELECT;
+                               break;
+                       case TAP_DRSELECT:
+                               new_state = TAP_IRSELECT;
+                               break;
+                       case TAP_DRCAPTURE:
+                       case TAP_DRSHIFT:
+                               new_state = TAP_DREXIT1;
+                               break;
+                       case TAP_DREXIT1:
+                       case TAP_DREXIT2:
+                               new_state = TAP_DRUPDATE;
+                               break;
+                       case TAP_DRPAUSE:
+                               new_state = TAP_DREXIT2;
+                               break;
+                       case TAP_IRSELECT:
+                               new_state = TAP_RESET;
+                               break;
+                       case TAP_IRCAPTURE:
+                       case TAP_IRSHIFT:
+                               new_state = TAP_IREXIT1;
+                               break;
+                       case TAP_IREXIT1:
+                       case TAP_IREXIT2:
+                               new_state = TAP_IRUPDATE;
+                               break;
+                       case TAP_IRPAUSE:
+                               new_state = TAP_IREXIT2;
+                               break;
+                       default:
+                               LOG_ERROR("fatal: invalid argument cur_state=%d", cur_state);
+                               exit(1);
+                               break;
                }
-       }
-       else
-       {
-               switch (cur_state)
-               {
-               case TAP_RESET:
-               case TAP_IDLE:
-               case TAP_DRUPDATE:
-               case TAP_IRUPDATE:
-                       new_state = TAP_IDLE;
-                       break;
-               case TAP_DRSELECT:
-                       new_state = TAP_DRCAPTURE;
-                       break;
-               case TAP_DRCAPTURE:
-               case TAP_DRSHIFT:
-               case TAP_DREXIT2:
-                       new_state = TAP_DRSHIFT;
-                       break;
-               case TAP_DREXIT1:
-               case TAP_DRPAUSE:
-                       new_state = TAP_DRPAUSE;
-                       break;
-               case TAP_IRSELECT:
-                       new_state = TAP_IRCAPTURE;
-                       break;
-               case TAP_IRCAPTURE:
-               case TAP_IRSHIFT:
-               case TAP_IREXIT2:
-                       new_state = TAP_IRSHIFT;
-                       break;
-               case TAP_IREXIT1:
-               case TAP_IRPAUSE:
-                       new_state = TAP_IRPAUSE;
-                       break;
-               default:
-                       LOG_ERROR("fatal: invalid argument cur_state=%d", cur_state);
-                       exit(1);
-                       break;
+       } else {
+               switch (cur_state) {
+                       case TAP_RESET:
+                       case TAP_IDLE:
+                       case TAP_DRUPDATE:
+                       case TAP_IRUPDATE:
+                               new_state = TAP_IDLE;
+                               break;
+                       case TAP_DRSELECT:
+                               new_state = TAP_DRCAPTURE;
+                               break;
+                       case TAP_DRCAPTURE:
+                       case TAP_DRSHIFT:
+                       case TAP_DREXIT2:
+                               new_state = TAP_DRSHIFT;
+                               break;
+                       case TAP_DREXIT1:
+                       case TAP_DRPAUSE:
+                               new_state = TAP_DRPAUSE;
+                               break;
+                       case TAP_IRSELECT:
+                               new_state = TAP_IRCAPTURE;
+                               break;
+                       case TAP_IRCAPTURE:
+                       case TAP_IRSHIFT:
+                       case TAP_IREXIT2:
+                               new_state = TAP_IRSHIFT;
+                               break;
+                       case TAP_IREXIT1:
+                       case TAP_IRPAUSE:
+                               new_state = TAP_IRPAUSE;
+                               break;
+                       default:
+                               LOG_ERROR("fatal: invalid argument cur_state=%d", cur_state);
+                               exit(1);
+                               break;
                }
        }
 
        return new_state;
 }
 
-
 /* NOTE:  do not change these state names.  They're documented,
  * and we rely on them to match SVF input (except for "RUN/IDLE").
  */
 static const struct name_mapping {
-       enum tap_state  symbol;
-       const char      *name;
+       enum tap_state symbol;
+       const char *name;
 } tap_name_mapping[] = {
-       { TAP_RESET,    "RESET", },
-       { TAP_IDLE,     "RUN/IDLE", },
-       { TAP_DRSELECT, "DRSELECT", },
-       { TAP_DRCAPTURE,"DRCAPTURE", },
-       { TAP_DRSHIFT,  "DRSHIFT", },
-       { TAP_DREXIT1,  "DREXIT1", },
-       { TAP_DRPAUSE,  "DRPAUSE", },
-       { TAP_DREXIT2,  "DREXIT2", },
-       { TAP_DRUPDATE, "DRUPDATE", },
-       { TAP_IRSELECT, "IRSELECT", },
-       { TAP_IRCAPTURE,"IRCAPTURE", },
-       { TAP_IRSHIFT,  "IRSHIFT", },
-       { TAP_IREXIT1,  "IREXIT1", },
-       { TAP_IRPAUSE,  "IRPAUSE", },
-       { TAP_IREXIT2,  "IREXIT2", },
-       { TAP_IRUPDATE, "IRUPDATE", },
+       { TAP_RESET, "RESET", },
+       { TAP_IDLE, "RUN/IDLE", },
+       { TAP_DRSELECT, "DRSELECT", },
+       { TAP_DRCAPTURE, "DRCAPTURE", },
+       { TAP_DRSHIFT, "DRSHIFT", },
+       { TAP_DREXIT1, "DREXIT1", },
+       { TAP_DRPAUSE, "DRPAUSE", },
+       { TAP_DREXIT2, "DREXIT2", },
+       { TAP_DRUPDATE, "DRUPDATE", },
+       { TAP_IRSELECT, "IRSELECT", },
+       { TAP_IRCAPTURE, "IRCAPTURE", },
+       { TAP_IRSHIFT, "IRSHIFT", },
+       { TAP_IREXIT1, "IREXIT1", },
+       { TAP_IRPAUSE, "IRPAUSE", },
+       { TAP_IREXIT2, "IREXIT2", },
+       { TAP_IRUPDATE, "IRUPDATE", },
 
        /* only for input:  accept standard SVF name */
-       { TAP_IDLE,     "IDLE", },
+       { TAP_IDLE, "IDLE", },
 };
 
 const char *tap_state_name(tap_state_t state)
@@ -386,13 +381,13 @@ tap_state_t tap_state_by_name(const char *name)
 #ifdef _DEBUG_JTAG_IO_
 
 #define JTAG_DEBUG_STATE_APPEND(buf, len, bit) \
-               do { buf[len] = bit ? '1' : '0'; } while (0)
+       do { buf[len] = bit ? '1' : '0'; } while (0)
 #define JTAG_DEBUG_STATE_PRINT(a, b, astr, bstr) \
-               DEBUG_JTAG_IO("TAP/SM: %9s -> %5s\tTMS: %s\tTDI: %s", \
-                       tap_state_name(a), tap_state_name(b), astr, bstr)
+       DEBUG_JTAG_IO("TAP/SM: %9s -> %5s\tTMS: %s\tTDI: %s", \
+       tap_state_name(a), tap_state_name(b), astr, bstr)
 
 tap_state_t jtag_debug_state_machine(const void *tms_buf, const void *tdi_buf,
-               unsigned tap_bits, tap_state_t next_state)
+       unsigned tap_bits, tap_state_t next_state)
 {
        const uint8_t *tms_buffer;
        const uint8_t *tdi_buffer;
@@ -406,7 +401,7 @@ tap_state_t jtag_debug_state_machine(const void *tms_buf, const void *tdi_buf,
 
        tap_state_t last_state;
 
-       // set startstate (and possibly last, if tap_bits == 0)
+       /* set startstate (and possibly last, if tap_bits == 0) */
        last_state = next_state;
        DEBUG_JTAG_IO("TAP/SM: START state: %s", tap_state_name(next_state));
 
@@ -417,47 +412,44 @@ tap_state_t jtag_debug_state_machine(const void *tms_buf, const void *tdi_buf,
        DEBUG_JTAG_IO("TAP/SM: TMS bits: %u (bytes: %u)", tap_bits, tap_bytes);
 
        tap_out_bits = 0;
-       for (cur_byte = 0; cur_byte < tap_bytes; cur_byte++)
-       {
-               for (cur_bit = 0; cur_bit < 8; cur_bit++)
-               {
-                       // make sure we do not run off the end of the buffers
+       for (cur_byte = 0; cur_byte < tap_bytes; cur_byte++) {
+               for (cur_bit = 0; cur_bit < 8; cur_bit++) {
+                       /* make sure we do not run off the end of the buffers */
                        unsigned tap_bit = cur_byte * 8 + cur_bit;
                        if (tap_bit == tap_bits)
                                break;
 
-                       // check and save TMS bit
+                       /* check and save TMS bit */
                        tap_bit = !!(tms_buffer[cur_byte] & (1 << cur_bit));
                        JTAG_DEBUG_STATE_APPEND(tms_str, tap_out_bits, tap_bit);
 
-                       // use TMS bit to find the next TAP state
+                       /* use TMS bit to find the next TAP state */
                        next_state = tap_state_transition(last_state, tap_bit);
 
-                       // check and store TDI bit
+                       /* check and store TDI bit */
                        tap_bit = !!(tdi_buffer[cur_byte] & (1 << cur_bit));
                        JTAG_DEBUG_STATE_APPEND(tdi_str, tap_out_bits, tap_bit);
 
-                       // increment TAP bits
+                       /* increment TAP bits */
                        tap_out_bits++;
 
-                       // Only show TDO bits on state transitions, or
-                       // after some number of bits in the same state.
+                       /* Only show TDO bits on state transitions, or */
+                       /* after some number of bits in the same state. */
                        if ((next_state == last_state) && (tap_out_bits < 32))
                                continue;
 
-                       // terminate strings and display state transition
+                       /* terminate strings and display state transition */
                        tms_str[tap_out_bits] = tdi_str[tap_out_bits] = 0;
                        JTAG_DEBUG_STATE_PRINT(last_state, next_state, tms_str, tdi_str);
 
-                       // reset state
+                       /* reset state */
                        last_state = next_state;
                        tap_out_bits = 0;
                }
        }
 
-       if (tap_out_bits)
-       {
-               // terminate strings and display state transition
+       if (tap_out_bits) {
+               /* terminate strings and display state transition */
                tms_str[tap_out_bits] = tdi_str[tap_out_bits] = 0;
                JTAG_DEBUG_STATE_PRINT(last_state, next_state, tms_str, tdi_str);
        }
@@ -466,7 +458,7 @@ tap_state_t jtag_debug_state_machine(const void *tms_buf, const void *tdi_buf,
 
        return next_state;
 }
-#endif // _DEBUG_JTAG_IO_
+#endif /* _DEBUG_JTAG_IO_ */
 
 void tap_use_new_tms_table(bool use_new)
 {
@@ -476,4 +468,3 @@ bool tap_uses_new_tms_table(void)
 {
        return tms_seqs == &short_tms_seqs;
 }
-
index 1059436e067bbe3be4d0b057d3d87ec352621bd2..9c11d9dfb85d17d0c18bd4c4150701cf66d53e16 100644 (file)
@@ -23,6 +23,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifndef OPENOCD_JTAG_INTERFACE_H
 #define OPENOCD_JTAG_INTERFACE_H
 
@@ -54,7 +55,7 @@ void tap_set_state_impl(tap_state_t new_state);
  * expected to traverse, not just end points of a multi-step state path.
  *
  * @param new_state The state we think the TAPs are currently in (or
- *     are about to enter).
+ * are about to enter).
  */
 #if defined(_DEBUG_JTAG_IO_)
 #define tap_set_state(new_state) \
@@ -85,7 +86,7 @@ tap_state_t tap_get_state(void);
  * state follower via tap_set_state().
  *
  * @param new_end_state The state the TAPs should enter at completion of
- *     a pending TAP operation.
+ * a pending TAP operation.
  */
 void tap_set_end_state(tap_state_t new_end_state);
 
@@ -106,11 +107,10 @@ tap_state_t tap_get_end_state(void);
  * @param from The starting state.
  * @param to The desired final state.
  * @return int The required TMS bit sequence, with the first bit in the
- *     sequence at bit 0.
+ * sequence at bit 0.
  */
 int tap_get_tms_path(tap_state_t from, tap_state_t to);
 
-
 /**
  * Function int tap_get_tms_path_len
  * returns the total number of bits that represents a TMS path
@@ -160,9 +160,9 @@ bool tap_is_state_stable(tap_state_t astate);
  */
 tap_state_t tap_state_transition(tap_state_t current_state, bool tms);
 
-/// Allow switching between old and new TMS tables. @see tap_get_tms_path
+/** Allow switching between old and new TMS tables. @see tap_get_tms_path */
 void tap_use_new_tms_table(bool use_new);
-/// @returns True if new TMS table is active; false otherwise.
+/** @returns True if new TMS table is active; false otherwise. */
 bool tap_uses_new_tms_table(void);
 
 #ifdef _DEBUG_JTAG_IO_
@@ -182,7 +182,7 @@ static inline tap_state_t jtag_debug_state_machine(const void *tms_buf,
 {
        return start_tap_state;
 }
-#endif // _DEBUG_JTAG_IO_
+#endif /* _DEBUG_JTAG_IO_ */
 
 /**
  * Represents a driver for a debugging interface.
@@ -197,8 +197,8 @@ static inline tap_state_t jtag_debug_state_machine(const void *tms_buf,
  * debugging interface.
  */
 struct jtag_interface {
-       /// The name of the JTAG interface driver.
-       charname;
+       /** The name of the JTAG interface driver. */
+       char *name;
 
        /**
         * Bit vector listing capabilities exposed by this driver.
@@ -261,7 +261,7 @@ struct jtag_interface {
         *  and use a fallback kHz TCK.
         * @returns ERROR_OK on success, or an error code on failure.
         */
-       int (*khz)(int khz, intjtag_speed);
+       int (*khz)(int khz, int *jtag_speed);
 
        /**
         * Calculate the clock frequency (in KHz) for the given @a speed.
@@ -270,7 +270,7 @@ struct jtag_interface {
         * @returns ERROR_OK on success, or an error code if the
         * interface cannot support the specified speed (KHz or RTCK).
         */
-       int (*speed_div)(int speed, intkhz);
+       int (*speed_div)(int speed, int *khz);
 
        /**
         * Read and clear the power dropout flag. Note that a power dropout
@@ -283,7 +283,7 @@ struct jtag_interface {
         *
         * @returns ERROR_OK on success, or an error code on failure.
         */
-       int (*power_dropout)(intpower_dropout);
+       int (*power_dropout)(int *power_dropout);
 
        /**
         * Read and clear the srst asserted detection flag.
@@ -297,12 +297,11 @@ struct jtag_interface {
         * been asserted.
         * @returns ERROR_OK on success, or an error code on failure.
         */
-       int (*srst_asserted)(intsrst_asserted);
+       int (*srst_asserted)(int *srst_asserted);
 };
 
-
 extern const char *jtag_only[];
 
 extern const struct swd_driver *swd;
 
-#endif // OPENOCD_JTAG_INTERFACE_H
+#endif /* OPENOCD_JTAG_INTERFACE_H */
index 7e8748a0da65493d696a73fac41515900daa8ef0..304dab622400f360c45d758708a17b5b9662b610 100644 (file)
@@ -27,6 +27,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -45,7 +46,7 @@
 extern struct jtag_interface zy1000_interface;
 #elif defined(BUILD_MINIDRIVER_DUMMY)
 extern struct jtag_interface minidummy_interface;
-#else // standard drivers
+#else /* standard drivers */
 #if BUILD_PARPORT == 1
 extern struct jtag_interface parport_interface;
 #endif
@@ -103,7 +104,7 @@ extern struct jtag_interface remote_bitbang_interface;
 #if BUILD_STLINK == 1
 extern struct jtag_interface stlink_interface;
 #endif
-#endif // standard drivers
+#endif /* standard drivers */
 
 /**
  * The list of built-in JTAG interfaces, containing entries for those
@@ -117,7 +118,7 @@ struct jtag_interface *jtag_interfaces[] = {
                &zy1000_interface,
 #elif defined(BUILD_MINIDRIVER_DUMMY)
                &minidummy_interface,
-#else // standard drivers
+#else /* standard drivers */
 #if BUILD_PARPORT == 1
                &parport_interface,
 #endif
@@ -175,11 +176,11 @@ struct jtag_interface *jtag_interfaces[] = {
 #if BUILD_STLINK == 1
                &stlink_interface,
 #endif
-#endif // standard drivers
+#endif /* standard drivers */
                NULL,
        };
 
 void jtag_interface_modules_load(const char *path)
 {
-       // @todo: implement dynamic module loading for JTAG interface drivers
+       /* @todo: implement dynamic module loading for JTAG interface drivers */
 }
index 018a3615e5acddc1737f732b09a9b19dbb3c0ab4..a86cccd04c79fd57166063df197e26232b2868ee 100644 (file)
@@ -27,6 +27,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifndef OPENOCD_JTAG_INTERFACES_H
 #define OPENOCD_JTAG_INTERFACES_H
 
@@ -37,9 +38,9 @@
 
 #include <jtag/interface.h>
 
-/// Dynamically load all JTAG interface modules from specified directory.
+/** Dynamically load all JTAG interface modules from specified directory. */
 void jtag_interface_modules_load(const char *path);
 
 extern struct jtag_interface *jtag_interfaces[];
 
-#endif // OPENOCD_JTAG_INTERFACES_H
+#endif /* OPENOCD_JTAG_INTERFACES_H */
index aeb7b332db2dd03a8b8c02430ae039bf07259b81..da5e025f65f68564bed24846e63fadf064ae1884 100644 (file)
@@ -20,6 +20,7 @@
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
+
 #ifndef JTAG_H
 #define JTAG_H
 
@@ -52,8 +53,7 @@
  * Fix those drivers to map as appropriate ... then pick some
  * sane set of numbers here (where 0/uninitialized == INVALID).
  */
-typedef enum tap_state
-{
+typedef enum tap_state {
        TAP_INVALID = -1,
 
 #if BUILD_ZY1000
@@ -92,10 +92,10 @@ typedef enum tap_state
  */
 const char *tap_state_name(tap_state_t state);
 
-/// Provides user-friendly name lookup of TAP states.
+/** Provides user-friendly name lookup of TAP states. */
 tap_state_t tap_state_by_name(const char *name);
 
-/// The current TAP state of the pending JTAG command queue.
+/** The current TAP state of the pending JTAG command queue. */
 extern tap_state_t cmd_queue_cur_state;
 
 /**
@@ -107,54 +107,54 @@ extern tap_state_t cmd_queue_cur_state;
  * jtag_add_dr_scan_check() to validate the value that was scanned out.
  */
 struct scan_field {
-       /// The number of bits this field specifies (up to 32)
+       /** The number of bits this field specifies (up to 32) */
        int num_bits;
-       /// A pointer to value to be scanned into the device
-       const uint8_tout_value;
-       /// A pointer to a 32-bit memory location for data scanned out
-       uint8_tin_value;
-
-       /// The value used to check the data scanned out.
-       uint8_tcheck_value;
-       /// The mask to go with check_value
-       uint8_tcheck_mask;
+       /** A pointer to value to be scanned into the device */
+       const uint8_t *out_value;
+       /** A pointer to a 32-bit memory location for data scanned out */
+       uint8_t *in_value;
+
+       /** The value used to check the data scanned out. */
+       uint8_t *check_value;
+       /** The mask to go with check_value */
+       uint8_t *check_mask;
 };
 
 struct jtag_tap {
-       const charchip;
-       const chartapname;
-       const chardotted_name;
+       const char *chip;
+       const char *tapname;
+       const char *dotted_name;
        int abs_chain_position;
-       /// Is this TAP disabled after JTAG reset?
+       /** Is this TAP disabled after JTAG reset? */
        bool disabled_after_reset;
-       /// Is this TAP currently enabled?
+       /** Is this TAP currently enabled? */
        bool enabled;
        int ir_length; /**< size of instruction register */
        uint32_t ir_capture_value;
-       uint8_texpected; /**< Capture-IR expected value */
+       uint8_t *expected; /**< Capture-IR expected value */
        uint32_t ir_capture_mask;
-       uint8_texpected_mask; /**< Capture-IR expected mask */
+       uint8_t *expected_mask; /**< Capture-IR expected mask */
        uint32_t idcode; /**< device identification code */
        /** not all devices have idcode,
         * we'll discover this during chain examination */
        bool hasidcode;
 
-       /// Array of expected identification codes */
-       uint32_texpected_ids;
-       /// Number of expected identification codes
+       /** Array of expected identification codes */
+       uint32_t *expected_ids;
+       /** Number of expected identification codes */
        uint8_t expected_ids_cnt;
 
-       /// Flag saying whether to ignore version field in expected_ids[]
+       /** Flag saying whether to ignore version field in expected_ids[] */
        bool ignore_version;
 
-       /// current instruction
-       uint8_tcur_instr;
-       /// Bypass register selected
+       /** current instruction */
+       uint8_t *cur_instr;
+       /** Bypass register selected */
        int bypass;
 
        struct jtag_tap_event_action *event_action;
 
-       struct jtag_tapnext_tap;
+       struct jtag_tap *next_tap;
        /* dap instance if some null if no instance , initialized to 0 by calloc*/
        struct adiv5_dap *dap;
        /* private pointer to support none-jtag specific functions */
@@ -164,16 +164,15 @@ struct jtag_tap {
 void jtag_tap_init(struct jtag_tap *tap);
 void jtag_tap_free(struct jtag_tap *tap);
 
-struct jtag_tapjtag_all_taps(void);
+struct jtag_tap *jtag_all_taps(void);
 const char *jtag_tap_name(const struct jtag_tap *tap);
-struct jtag_tapjtag_tap_by_string(const char* dotted_name);
-struct jtag_tap* jtag_tap_by_jim_obj(Jim_Interp* interp, Jim_Obj* obj);
-struct jtag_tapjtag_tap_by_position(unsigned abs_position);
-struct jtag_tap* jtag_tap_next_enabled(struct jtag_tap* p);
+struct jtag_tap *jtag_tap_by_string(const char* dotted_name);
+struct jtag_tap *jtag_tap_by_jim_obj(Jim_Interp* interp, Jim_Obj *obj);
+struct jtag_tap *jtag_tap_by_position(unsigned abs_position);
+struct jtag_tap *jtag_tap_next_enabled(struct jtag_tap *p);
 unsigned jtag_tap_count_enabled(void);
 unsigned jtag_tap_count(void);
 
-
 /*
  * - TRST_ASSERTED triggers two sets of callbacks, after operations to
  *   reset the scan chain -- via TMS+TCK signaling, or deasserting the
@@ -203,15 +202,14 @@ enum jtag_event {
        JTAG_TAP_EVENT_DISABLE,
 };
 
-struct jtag_tap_event_action
-{
-       /// The event for which this action will be triggered.
+struct jtag_tap_event_action {
+       /** The event for which this action will be triggered. */
        enum jtag_event event;
-       /// The interpreter to use for evaluating the @c body.
+       /** The interpreter to use for evaluating the @c body. */
        Jim_Interp *interp;
-       /// Contains a script to 'eval' when the @c event is triggered.
+       /** Contains a script to 'eval' when the @c event is triggered. */
        Jim_Obj *body;
-       // next action in linked list
+       /* next action in linked list */
        struct jtag_tap_event_action *next;
 };
 
@@ -226,7 +224,7 @@ struct jtag_tap_event_action
  *
  * @todo Change to return void or define a use for its return code.
  */
-typedef int (*jtag_event_handler_t)(enum jtag_event event, voidpriv);
+typedef int (*jtag_event_handler_t)(enum jtag_event event, void *priv);
 
 int jtag_register_event_callback(jtag_event_handler_t f, void *x);
 int jtag_unregister_event_callback(jtag_event_handler_t f, void *x);
@@ -234,7 +232,7 @@ int jtag_unregister_event_callback(jtag_event_handler_t f, void *x);
 int jtag_call_event_callbacks(enum jtag_event event);
 
 
-/// @returns The current JTAG speed setting.
+/** @returns The current JTAG speed setting. */
 int jtag_get_speed(int *speed);
 
 /**
@@ -246,7 +244,7 @@ int jtag_get_speed(int *speed);
  */
 int jtag_get_speed_readable(int *speed);
 
-/// Attempt to configure the interface for the specified KHz.
+/** Attempt to configure the interface for the specified KHz. */
 int jtag_config_khz(unsigned khz);
 
 /**
@@ -255,10 +253,9 @@ int jtag_config_khz(unsigned khz);
  */
 int jtag_config_rclk(unsigned fallback_speed_khz);
 
-/// Retreives the clock speed of the JTAG interface in KHz.
+/** Retreives the clock speed of the JTAG interface in KHz. */
 unsigned jtag_get_speed_khz(void);
 
-
 enum reset_types {
        RESET_NONE            = 0x0,
        RESET_HAS_TRST        = 0x1,
@@ -286,40 +283,39 @@ unsigned jtag_get_nsrst_assert_width(void);
 void jtag_set_ntrst_assert_width(unsigned delay);
 unsigned jtag_get_ntrst_assert_width(void);
 
-/// @returns The current state of TRST.
+/** @returns The current state of TRST. */
 int jtag_get_trst(void);
-/// @returns The current state of SRST.
+/** @returns The current state of SRST. */
 int jtag_get_srst(void);
 
-/// Enable or disable data scan verification checking.
+/** Enable or disable data scan verification checking. */
 void jtag_set_verify(bool enable);
-/// @returns True if data scan verification will be performed.
+/** @returns True if data scan verification will be performed. */
 bool jtag_will_verify(void);
 
-/// Enable or disable verification of IR scan checking.
+/** Enable or disable verification of IR scan checking. */
 void jtag_set_verify_capture_ir(bool enable);
-/// @returns True if IR scan verification will be performed.
+/** @returns True if IR scan verification will be performed. */
 bool jtag_will_verify_capture_ir(void);
 
 /** Initialize debug adapter upon startup.  */
-int  adapter_init(struct command_context* cmd_ctx);
+int adapter_init(struct command_context *cmd_ctx);
 
-/// Shutdown the debug adapter upon program exit.
-int  adapter_quit(void);
+/** Shutdown the debug adapter upon program exit. */
+int adapter_quit(void);
 
-/// Set ms to sleep after jtag_execute_queue() flushes queue. Debug
-/// purposes.
+/** Set ms to sleep after jtag_execute_queue() flushes queue. Debug purposes. */
 void jtag_set_flush_queue_sleep(int ms);
 
 /**
  * Initialize JTAG chain using only a RESET reset. If init fails,
  * try reset + init.
  */
-int  jtag_init(struct command_context* cmd_ctx);
+int jtag_init(struct command_context *cmd_ctx);
 
-/// reset, then initialize JTAG chain
-int jtag_init_reset(struct command_contextcmd_ctx);
-int jtag_register_commands(struct command_contextcmd_ctx);
+/** reset, then initialize JTAG chain */
+int jtag_init_reset(struct command_context *cmd_ctx);
+int jtag_register_commands(struct command_context *cmd_ctx);
 int jtag_init_inner(struct command_context *cmd_ctx);
 
 /**
@@ -347,13 +343,13 @@ int jtag_init_inner(struct command_context *cmd_ctx);
  * subsequent DR SCANs.
  *
  */
-void jtag_add_ir_scan(struct jtag_taptap,
-               struct scan_fieldfields, tap_state_t endstate);
+void jtag_add_ir_scan(struct jtag_tap *tap,
+               struct scan_field *fields, tap_state_t endstate);
 /**
  * The same as jtag_add_ir_scan except no verification is performed out
  * the output values.
  */
-void jtag_add_ir_scan_noverify(struct jtag_taptap,
+void jtag_add_ir_scan_noverify(struct jtag_tap *tap,
                const struct scan_field *fields, tap_state_t state);
 /**
  * Scan out the bits in ir scan mode.
@@ -363,18 +359,17 @@ void jtag_add_ir_scan_noverify(struct jtag_tap* tap,
 void jtag_add_plain_ir_scan(int num_bits, const uint8_t *out_bits, uint8_t *in_bits,
                tap_state_t endstate);
 
-
 /**
  * Generate a DR SCAN using the fields passed to the function.
  * For connected TAPs, the function checks in_fields and uses fields
  * specified there.  For bypassed TAPs, the function generates a dummy
  * 1-bit field.  The bypass status of TAPs is set by jtag_add_ir_scan().
  */
-void jtag_add_dr_scan(struct jtag_taptap, int num_fields,
-               const struct scan_fieldfields, tap_state_t endstate);
-/// A version of jtag_add_dr_scan() that uses the check_value/mask fields
-void jtag_add_dr_scan_check(struct jtag_taptap, int num_fields,
-               struct scan_fieldfields, tap_state_t endstate);
+void jtag_add_dr_scan(struct jtag_tap *tap, int num_fields,
+               const struct scan_field *fields, tap_state_t endstate);
+/** A version of jtag_add_dr_scan() that uses the check_value/mask fields */
+void jtag_add_dr_scan_check(struct jtag_tap *tap, int num_fields,
+               struct scan_field *fields, tap_state_t endstate);
 /**
  * Scan out the bits in ir scan mode.
  *
@@ -399,7 +394,7 @@ typedef intptr_t jtag_callback_data_t;
  */
 typedef void (*jtag_callback1_t)(jtag_callback_data_t data0);
 
-/// A simpler version of jtag_add_callback4().
+/** A simpler version of jtag_add_callback4(). */
 void jtag_add_callback(jtag_callback1_t, jtag_callback_data_t data0);
 
 
@@ -489,7 +484,7 @@ void jtag_add_tlr(void);
  *   - ERROR_JTAG_TRANSITION_INVALID -- The path includes invalid
  *     state transitions.
  */
-void jtag_add_pathmove(int num_states, const tap_state_tpath);
+void jtag_add_pathmove(int num_states, const tap_state_t *path);
 
 /**
  * jtag_add_statemove() moves from the current state to @a goal_state.
@@ -550,7 +545,6 @@ int jtag_add_tms_seq(unsigned nbits, const uint8_t *seq, enum tap_state t);
  */
 void jtag_add_clocks(int num_cycles);
 
-
 /**
  * For software FIFO implementations, the queued commands can be executed
  * during this call or earlier. A sw queue might decide to push out
@@ -573,19 +567,18 @@ void jtag_add_clocks(int num_cycles);
  */
 int jtag_execute_queue(void);
 
-/// same as jtag_execute_queue() but does not clear the error flag
+/** same as jtag_execute_queue() but does not clear the error flag */
 void jtag_execute_queue_noclear(void);
 
-/// @returns the number of times the scan queue has been flushed
+/** @returns the number of times the scan queue has been flushed */
 int jtag_get_flush_queue_count(void);
 
-/// Report Tcl event to all TAPs
+/** Report Tcl event to all TAPs */
 void jtag_notify_event(enum jtag_event);
 
-
 /* can be implemented by hw + sw */
-int jtag_power_dropout(intdropout);
-int jtag_srst_asserted(intsrst_asserted);
+int jtag_power_dropout(int *dropout);
+int jtag_srst_asserted(int *srst_asserted);
 
 /* JTAG support functions */
 
@@ -642,7 +635,6 @@ void jtag_sleep(uint32_t us);
  * clocking data back in. Patches gladly accepted!
  */
 
-
 /**
  * Set the current JTAG core execution error, unless one was set
  * by a previous call previously.  Driver or application code must
index 59b2a32369807127418c53a77580790201b50ded..b13ef7284ec2620e8dbe9e25f310cfb0ed2bf829 100644 (file)
@@ -23,6 +23,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifndef MINIDRIVER_H
 #define MINIDRIVER_H
 
  * - default_interface_jtag_execute_queue()
  */
 
-// this header will be provided by the minidriver implementation,
-// and it may provide additional declarations that must be defined.
+/* this header will be provided by the minidriver implementation, */
+/* and it may provide additional declarations that must be defined. */
 #include <jtag/minidriver_imp.h>
 
-int interface_jtag_add_ir_scan(struct jtag_tapactive,
-               const struct scan_fieldfields,
+int interface_jtag_add_ir_scan(struct jtag_tap *active,
+               const struct scan_field *fields,
                tap_state_t endstate);
 int interface_jtag_add_plain_ir_scan(
                int num_bits, const uint8_t *out_bits, uint8_t *in_bits,
                tap_state_t endstate);
 
-int interface_jtag_add_dr_scan(struct jtag_tapactive,
-               int num_fields, const struct scan_fieldfields,
+int interface_jtag_add_dr_scan(struct jtag_tap *active,
+               int num_fields, const struct scan_field *fields,
                tap_state_t endstate);
 int interface_jtag_add_plain_dr_scan(
                int num_bits, const uint8_t *out_bits, uint8_t *in_bits,
                tap_state_t endstate);
 
 int interface_jtag_add_tlr(void);
-int interface_jtag_add_pathmove(int num_states, const tap_state_tpath);
+int interface_jtag_add_pathmove(int num_states, const tap_state_t *path);
 int interface_jtag_add_runtest(int num_cycles, tap_state_t endstate);
 
 int interface_add_tms_seq(unsigned num_bits,
@@ -89,4 +90,4 @@ int interface_jtag_execute_queue(void);
  */
 int default_interface_jtag_execute_queue(void);
 
-#endif // MINIDRIVER_H
+#endif /* MINIDRIVER_H */
index 1931c4a92a398d2e732276ab4b56c91773d1c018..9a591f38c6d96dd994e3deed1c6fb51f1a77cc28 100644 (file)
@@ -1,12 +1,29 @@
-//
+/***************************************************************************
+ *   Copyright (C) 2009-2010 by David Brownell                             *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
 
 /* Bits in SWD command packets, written from host to target
  * first bit on the wire is START
  */
 #define SWD_CMD_START  (1 << 0)        /* always set */
 #define SWD_CMD_APnDP  (1 << 1)        /* set only for AP access */
-#define SWD_CMD_RnW    (1 << 2)        /* set only for read access */
-#define SWD_CMD_A32    (3 << 3)        /* bits A[3:2] of register addr */
+#define SWD_CMD_RnW    (1 << 2)                /* set only for read access */
+#define SWD_CMD_A32    (3 << 3)                /* bits A[3:2] of register addr */
 #define SWD_CMD_PARITY (1 << 5)        /* parity of APnDP|RnW|A32 */
 #define SWD_CMD_STOP   (0 << 6)        /* always clear for synch SWD */
 #define SWD_CMD_PARK   (0 << 7)        /* not driven by host (pull high) */
@@ -33,7 +50,7 @@ static inline uint8_t swd_cmd(bool is_read, bool is_ap, uint8_t regnum)
                | (is_read ? SWD_CMD_RnW : 0)
                | ((regnum & 0xc) << 1);
 
-       //8 cmd bits 4:1 may be set
+       /* 8 cmd bits 4:1 may be set */
        if (nibble_parity(cmd >> 1))
                cmd |= SWD_CMD_PARITY;
 
@@ -75,7 +92,7 @@ struct swd_driver {
          * @param where to store value to read from register
          *
          * @return SWD_ACK_* code for the transaction
-         *     or (negative) fault code
+         *             or (negative) fault code
          */
         int (*read_reg)(uint8_t cmd, uint32_t *value);
 
@@ -86,7 +103,7 @@ struct swd_driver {
          * @param value to be written to the register
          *
          * @return SWD_ACK_* code for the transaction
-         *     or (negative) fault code
+         *             or (negative) fault code
          */
         int (*write_reg)(uint8_t cmd, uint32_t value);
 
index 291ba2382bdb278a58783024618a89f6eb472f0e..819b26710c775f454b5797b68cddc68b9a440446 100644 (file)
@@ -27,6 +27,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -49,8 +50,8 @@
  */
 
 static const Jim_Nvp nvp_jtag_tap_event[] = {
-       { .value = JTAG_TRST_ASSERTED,          .name = "post-reset" },
-       { .value = JTAG_TAP_EVENT_SETUP,        .name = "setup" },
+       { .value = JTAG_TRST_ASSERTED,          .name = "post-reset" },
+       { .value = JTAG_TAP_EVENT_SETUP,        .name = "setup" },
        { .value = JTAG_TAP_EVENT_ENABLE,       .name = "tap-enable" },
        { .value = JTAG_TAP_EVENT_DISABLE,      .name = "tap-disable" },
 
@@ -72,15 +73,14 @@ struct jtag_tap *jtag_tap_by_jim_obj(Jim_Interp *interp, Jim_Obj *o)
 
 static bool scan_is_safe(tap_state_t state)
 {
-       switch (state)
-       {
-       case TAP_RESET:
-       case TAP_IDLE:
-       case TAP_DRPAUSE:
-       case TAP_IRPAUSE:
-               return true;
-       default:
-               return false;
+       switch (state) {
+           case TAP_RESET:
+           case TAP_IDLE:
+           case TAP_DRPAUSE:
+           case TAP_IRPAUSE:
+                   return true;
+           default:
+                   return false;
        }
 }
 
@@ -103,8 +103,7 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
        *     args[N-2] = "-endstate"
         *     args[N-1] = statename
         */
-       if ((argc < 4) || ((argc % 2) != 0))
-       {
+       if ((argc < 4) || ((argc % 2) != 0)) {
                Jim_WrongNumArgs(interp, 1, args, "wrong arguments");
                return JIM_ERR;
        }
@@ -115,16 +114,14 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
 
        /* validate arguments as numbers */
        e = JIM_OK;
-       for (i = 2; i < argc; i += 2)
-       {
+       for (i = 2; i < argc; i += 2) {
                long bits;
                const char *cp;
 
                e = Jim_GetLong(interp, args[i], &bits);
                /* If valid - try next arg */
-               if (e == JIM_OK) {
+               if (e == JIM_OK)
                        continue;
-               }
 
                /* Not valid.. are we at the end? */
                if (((i + 2) != argc)) {
@@ -148,11 +145,11 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
                        endstate = tap_state_by_name(cp);
                        if (endstate < 0) {
                                /* update the error message */
-                               Jim_SetResultFormatted(interp,"endstate: %s invalid", cp);
+                               Jim_SetResultFormatted(interp, "endstate: %s invalid", cp);
                        } else {
                                if (!scan_is_safe(endstate))
                                        LOG_WARNING("drscan with unsafe "
-                                                       "endstate \"%s\"", cp);
+                                               "endstate \"%s\"", cp);
 
                                /* valid - so clear the error */
                                e = JIM_OK;
@@ -162,23 +159,20 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
                }
 
                /* Still an error? */
-               if (e != JIM_OK) {
-                       return e; /* too bad */
-               }
-       } /* validate args */
+               if (e != JIM_OK)
+                       return e;       /* too bad */
+       }       /* validate args */
 
        assert(e == JIM_OK);
 
        tap = jtag_tap_by_jim_obj(interp, args[1]);
-       if (tap == NULL) {
+       if (tap == NULL)
                return JIM_ERR;
-       }
 
        num_fields = (argc-2)/2;
        assert(num_fields > 0);
        fields = malloc(sizeof(struct scan_field) * num_fields);
-       for (i = 2; i < argc; i += 2)
-       {
+       for (i = 2; i < argc; i += 2) {
                long bits;
                int len;
                const char *str;
@@ -187,7 +181,7 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
                str = Jim_GetString(args[i + 1], &len);
 
                fields[field_count].num_bits = bits;
-               void * t = malloc(DIV_ROUND_UP(bits, 8));
+               void *t = malloc(DIV_ROUND_UP(bits, 8));
                fields[field_count].out_value = t;
                str_to_buf(str, len, t, bits, 0);
                fields[field_count].in_value = t;
@@ -197,16 +191,14 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
        jtag_add_dr_scan(tap, num_fields, fields, endstate);
 
        retval = jtag_execute_queue();
-       if (retval != ERROR_OK)
-       {
-               Jim_SetResultString(interp, "drscan: jtag execute failed",-1);
+       if (retval != ERROR_OK) {
+               Jim_SetResultString(interp, "drscan: jtag execute failed", -1);
                return JIM_ERR;
        }
 
        field_count = 0;
        Jim_Obj *list = Jim_NewListObj(interp, NULL, 0);
-       for (i = 2; i < argc; i += 2)
-       {
+       for (i = 2; i < argc; i += 2) {
                long bits;
                char *str;
 
@@ -231,8 +223,7 @@ static int Jim_Command_pathmove(Jim_Interp *interp, int argc, Jim_Obj *const *ar
 {
        tap_state_t states[8];
 
-       if ((argc < 2) || ((size_t)argc > (ARRAY_SIZE(states) + 1)))
-       {
+       if ((argc < 2) || ((size_t)argc > (ARRAY_SIZE(states) + 1))) {
                Jim_WrongNumArgs(interp, 1, args, "wrong arguments");
                return JIM_ERR;
        }
@@ -240,30 +231,26 @@ static int Jim_Command_pathmove(Jim_Interp *interp, int argc, Jim_Obj *const *ar
        script_debug(interp, "pathmove", argc, args);
 
        int i;
-       for (i = 0; i < argc-1; i++)
-       {
+       for (i = 0; i < argc-1; i++) {
                const char *cp;
                cp = Jim_GetString(args[i + 1], NULL);
                states[i] = tap_state_by_name(cp);
-               if (states[i] < 0)
-               {
+               if (states[i] < 0) {
                        /* update the error message */
-                       Jim_SetResultFormatted(interp,"endstate: %s invalid", cp);
+                       Jim_SetResultFormatted(interp, "endstate: %s invalid", cp);
                        return JIM_ERR;
                }
        }
 
-       if ((jtag_add_statemove(states[0]) != ERROR_OK) || (jtag_execute_queue()!= ERROR_OK))
-       {
-               Jim_SetResultString(interp, "pathmove: jtag execute failed",-1);
+       if ((jtag_add_statemove(states[0]) != ERROR_OK) || (jtag_execute_queue() != ERROR_OK)) {
+               Jim_SetResultString(interp, "pathmove: jtag execute failed", -1);
                return JIM_ERR;
        }
 
-       jtag_add_pathmove(argc-2, states + 1);
+       jtag_add_pathmove(argc - 2, states + 1);
 
-       if (jtag_execute_queue()!= ERROR_OK)
-       {
-               Jim_SetResultString(interp, "pathmove: failed",-1);
+       if (jtag_execute_queue() != ERROR_OK) {
+               Jim_SetResultString(interp, "pathmove: failed", -1);
                return JIM_ERR;
        }
 
@@ -328,25 +315,26 @@ static Jim_Nvp nvp_config_opts[] = {
        { .name = NULL,          .value = -1 }
 };
 
-static int jtag_tap_configure_event(Jim_GetOptInfo *goi, struct jtag_tap * tap)
+static int jtag_tap_configure_event(Jim_GetOptInfo *goi, struct jtag_tap *tap)
 {
-       if (goi->argc == 0)
-       {
+       if (goi->argc == 0) {
                Jim_WrongNumArgs(goi->interp, goi->argc, goi->argv, "-event <event-name> ...");
                return JIM_ERR;
        }
 
        Jim_Nvp *n;
        int e = Jim_GetOpt_Nvp(goi, nvp_jtag_tap_event, &n);
-       if (e != JIM_OK)
-       {
+       if (e != JIM_OK) {
                Jim_GetOpt_NvpUnknown(goi, nvp_jtag_tap_event, 1);
                return e;
        }
 
        if (goi->isconfigure) {
                if (goi->argc != 1) {
-                       Jim_WrongNumArgs(goi->interp, goi->argc, goi->argv, "-event <event-name> <event-body>");
+                       Jim_WrongNumArgs(goi->interp,
+                               goi->argc,
+                               goi->argv,
+                               "-event <event-name> <event-body>");
                        return JIM_ERR;
                }
        } else {
@@ -359,10 +347,8 @@ static int jtag_tap_configure_event(Jim_GetOptInfo *goi, struct jtag_tap * tap)
        struct jtag_tap_event_action *jteap  = tap->event_action;
        /* replace existing event body */
        bool found = false;
-       while (jteap)
-       {
-               if (jteap->event == (enum jtag_event)n->value)
-               {
+       while (jteap) {
+               if (jteap->event == (enum jtag_event)n->value) {
                        found = true;
                        break;
                }
@@ -371,8 +357,7 @@ static int jtag_tap_configure_event(Jim_GetOptInfo *goi, struct jtag_tap * tap)
 
        Jim_SetEmptyResult(goi->interp);
 
-       if (goi->isconfigure)
-       {
+       if (goi->isconfigure) {
                if (!found)
                        jteap = calloc(1, sizeof(*jteap));
                else if (NULL != jteap->body)
@@ -386,15 +371,12 @@ static int jtag_tap_configure_event(Jim_GetOptInfo *goi, struct jtag_tap * tap)
                jteap->body = Jim_DuplicateObj(goi->interp, o);
                Jim_IncrRefCount(jteap->body);
 
-               if (!found)
-               {
+               if (!found) {
                        /* add to head of event list */
                        jteap->next = tap->event_action;
                        tap->event_action = jteap;
                }
-       }
-       else if (found)
-       {
+       } else if (found) {
                jteap->interp = goi->interp;
                Jim_SetResult(goi->interp,
                        Jim_DuplicateObj(goi->interp, jteap->body));
@@ -402,31 +384,28 @@ static int jtag_tap_configure_event(Jim_GetOptInfo *goi, struct jtag_tap * tap)
        return JIM_OK;
 }
 
-static int jtag_tap_configure_cmd(Jim_GetOptInfo *goi, struct jtag_tap * tap)
+static int jtag_tap_configure_cmd(Jim_GetOptInfo *goi, struct jtag_tap *tap)
 {
        /* parse config or cget options */
-       while (goi->argc > 0)
-       {
-               Jim_SetEmptyResult (goi->interp);
+       while (goi->argc > 0) {
+               Jim_SetEmptyResult(goi->interp);
 
                Jim_Nvp *n;
                int e = Jim_GetOpt_Nvp(goi, nvp_config_opts, &n);
-               if (e != JIM_OK)
-               {
+               if (e != JIM_OK) {
                        Jim_GetOpt_NvpUnknown(goi, nvp_config_opts, 0);
                        return e;
                }
 
-               switch (n->value)
-               {
-               case JCFG_EVENT:
-                       e = jtag_tap_configure_event(goi, tap);
-                       if (e != JIM_OK)
-                               return e;
-                       break;
-               default:
-                       Jim_SetResultFormatted(goi->interp, "unknown event: %s", n->name);
-                       return JIM_ERR;
+               switch (n->value) {
+                       case JCFG_EVENT:
+                               e = jtag_tap_configure_event(goi, tap);
+                               if (e != JIM_OK)
+                                       return e;
+                               break;
+                       default:
+                               Jim_SetResultFormatted(goi->interp, "unknown event: %s", n->name);
+                               return JIM_ERR;
                }
        }
 
@@ -444,7 +423,7 @@ static int is_bad_irval(int ir_length, jim_wide w)
 }
 
 static int jim_newtap_expected_id(Jim_Nvp *n, Jim_GetOptInfo *goi,
-               struct jtag_tap *pTap)
+       struct jtag_tap *pTap)
 {
        jim_wide w;
        int e = Jim_GetOpt_Wide(goi, &w);
@@ -455,8 +434,7 @@ static int jim_newtap_expected_id(Jim_Nvp *n, Jim_GetOptInfo *goi,
 
        unsigned expected_len = sizeof(uint32_t) * pTap->expected_ids_cnt;
        uint32_t *new_expected_ids = malloc(expected_len + sizeof(uint32_t));
-       if (new_expected_ids == NULL)
-       {
+       if (new_expected_ids == NULL) {
                Jim_SetResultFormatted(goi->interp, "no memory");
                return JIM_ERR;
        }
@@ -481,52 +459,48 @@ static int jim_newtap_expected_id(Jim_Nvp *n, Jim_GetOptInfo *goi,
 #define NTAP_OPT_VERSION   6
 
 static int jim_newtap_ir_param(Jim_Nvp *n, Jim_GetOptInfo *goi,
-               struct jtag_tap *pTap)
+       struct jtag_tap *pTap)
 {
        jim_wide w;
        int e = Jim_GetOpt_Wide(goi, &w);
-       if (e != JIM_OK)
-       {
+       if (e != JIM_OK) {
                Jim_SetResultFormatted(goi->interp,
-                               "option: %s bad parameter", n->name);
+                       "option: %s bad parameter", n->name);
                free((void *)pTap->dotted_name);
                return e;
        }
        switch (n->value) {
-       case NTAP_OPT_IRLEN:
-               if (w > (jim_wide) (8 * sizeof(pTap->ir_capture_value)))
-               {
-                       LOG_WARNING("%s: huge IR length %d",
-                                       pTap->dotted_name, (int) w);
-               }
-               pTap->ir_length = w;
-               break;
-       case NTAP_OPT_IRMASK:
-               if (is_bad_irval(pTap->ir_length, w))
-               {
-                       LOG_ERROR("%s: IR mask %x too big",
-                                       pTap->dotted_name,
-                                       (int) w);
-                       return JIM_ERR;
-               }
-               if ((w & 3) != 3)
-                       LOG_WARNING("%s: nonstandard IR mask", pTap->dotted_name);
-               pTap->ir_capture_mask = w;
-               break;
-       case NTAP_OPT_IRCAPTURE:
-               if (is_bad_irval(pTap->ir_length, w))
-               {
-                       LOG_ERROR("%s: IR capture %x too big",
-                                       pTap->dotted_name, (int) w);
-                       return JIM_ERR;
-               }
-               if ((w & 3) != 1)
-                       LOG_WARNING("%s: nonstandard IR value",
-                                       pTap->dotted_name);
-               pTap->ir_capture_value = w;
-               break;
-       default:
-               return JIM_ERR;
+           case NTAP_OPT_IRLEN:
+                   if (w > (jim_wide) (8 * sizeof(pTap->ir_capture_value))) {
+                           LOG_WARNING("%s: huge IR length %d",
+                                   pTap->dotted_name, (int) w);
+                   }
+                   pTap->ir_length = w;
+                   break;
+           case NTAP_OPT_IRMASK:
+                   if (is_bad_irval(pTap->ir_length, w)) {
+                           LOG_ERROR("%s: IR mask %x too big",
+                                   pTap->dotted_name,
+                                   (int) w);
+                           return JIM_ERR;
+                   }
+                   if ((w & 3) != 3)
+                           LOG_WARNING("%s: nonstandard IR mask", pTap->dotted_name);
+                   pTap->ir_capture_mask = w;
+                   break;
+           case NTAP_OPT_IRCAPTURE:
+                   if (is_bad_irval(pTap->ir_length, w)) {
+                           LOG_ERROR("%s: IR capture %x too big",
+                                   pTap->dotted_name, (int) w);
+                           return JIM_ERR;
+                   }
+                   if ((w & 3) != 1)
+                           LOG_WARNING("%s: nonstandard IR value",
+                                   pTap->dotted_name);
+                   pTap->ir_capture_value = w;
+                   break;
+           default:
+                   return JIM_ERR;
        }
        return JIM_OK;
 }
@@ -539,14 +513,14 @@ static int jim_newtap_cmd(Jim_GetOptInfo *goi)
        Jim_Nvp *n;
        char *cp;
        const Jim_Nvp opts[] = {
-               { .name = "-irlen"                      ,       .value = NTAP_OPT_IRLEN },
-               { .name = "-irmask"                     ,       .value = NTAP_OPT_IRMASK },
-               { .name = "-ircapture"          ,       .value = NTAP_OPT_IRCAPTURE },
-               { .name = "-enable"                     ,       .value = NTAP_OPT_ENABLED },
-               { .name = "-disable"            ,       .value = NTAP_OPT_DISABLED },
-               { .name = "-expected-id"        ,       .value = NTAP_OPT_EXPECTED_ID },
-               { .name = "-ignore-version"     ,       .value = NTAP_OPT_VERSION },
-               { .name = NULL                          ,       .value = -1 },
+               { .name = "-irlen",       .value = NTAP_OPT_IRLEN },
+               { .name = "-irmask",       .value = NTAP_OPT_IRMASK },
+               { .name = "-ircapture",       .value = NTAP_OPT_IRCAPTURE },
+               { .name = "-enable",       .value = NTAP_OPT_ENABLED },
+               { .name = "-disable",       .value = NTAP_OPT_DISABLED },
+               { .name = "-expected-id",       .value = NTAP_OPT_EXPECTED_ID },
+               { .name = "-ignore-version",       .value = NTAP_OPT_VERSION },
+               { .name = NULL,       .value = -1 },
        };
 
        pTap = calloc(1, sizeof(struct jtag_tap));
@@ -576,7 +550,7 @@ static int jim_newtap_cmd(Jim_GetOptInfo *goi)
        pTap->dotted_name = cp;
 
        LOG_DEBUG("Creating New Tap, Chip: %s, Tap: %s, Dotted: %s, %d params",
-                         pTap->chip, pTap->tapname, pTap->dotted_name, goi->argc);
+               pTap->chip, pTap->tapname, pTap->dotted_name, goi->argc);
 
        /* IEEE specifies that the two LSBs of an IR scan are 01, so make
         * that the default.  The "-irlen" and "-irmask" options are only
@@ -595,90 +569,84 @@ static int jim_newtap_cmd(Jim_GetOptInfo *goi)
                }
                LOG_DEBUG("Processing option: %s", n->name);
                switch (n->value) {
-               case NTAP_OPT_ENABLED:
-                       pTap->disabled_after_reset = false;
-                       break;
-               case NTAP_OPT_DISABLED:
-                       pTap->disabled_after_reset = true;
-                       break;
-               case NTAP_OPT_EXPECTED_ID:
-                       e = jim_newtap_expected_id(n, goi, pTap);
-                       if (JIM_OK != e)
-                       {
-                               free((void *)pTap->dotted_name);
-                               free(pTap);
-                               return e;
-                       }
-                       break;
-               case NTAP_OPT_IRLEN:
-               case NTAP_OPT_IRMASK:
-               case NTAP_OPT_IRCAPTURE:
-                       e = jim_newtap_ir_param(n, goi, pTap);
-                       if (JIM_OK != e)
-                       {
-                               free((void *)pTap->dotted_name);
-                               free(pTap);
-                               return e;
-                       }
-                       break;
-               case NTAP_OPT_VERSION:
-                       pTap->ignore_version = true;
-                       break;
-               } /* switch (n->value) */
-       } /* while (goi->argc) */
+                   case NTAP_OPT_ENABLED:
+                           pTap->disabled_after_reset = false;
+                           break;
+                   case NTAP_OPT_DISABLED:
+                           pTap->disabled_after_reset = true;
+                           break;
+                   case NTAP_OPT_EXPECTED_ID:
+                           e = jim_newtap_expected_id(n, goi, pTap);
+                           if (JIM_OK != e) {
+                                   free((void *)pTap->dotted_name);
+                                   free(pTap);
+                                   return e;
+                           }
+                           break;
+                   case NTAP_OPT_IRLEN:
+                   case NTAP_OPT_IRMASK:
+                   case NTAP_OPT_IRCAPTURE:
+                           e = jim_newtap_ir_param(n, goi, pTap);
+                           if (JIM_OK != e) {
+                                   free((void *)pTap->dotted_name);
+                                   free(pTap);
+                                   return e;
+                           }
+                           break;
+                   case NTAP_OPT_VERSION:
+                           pTap->ignore_version = true;
+                           break;
+               }       /* switch (n->value) */
+       }       /* while (goi->argc) */
 
        /* default is enabled-after-reset */
        pTap->enabled = !pTap->disabled_after_reset;
 
        /* Did all the required option bits get cleared? */
-       if (pTap->ir_length != 0)
-       {
+       if (pTap->ir_length != 0) {
                jtag_tap_init(pTap);
                return JIM_OK;
        }
 
        Jim_SetResultFormatted(goi->interp,
-                       "newtap: %s missing IR length",
-                       pTap->dotted_name);
+               "newtap: %s missing IR length",
+               pTap->dotted_name);
        jtag_tap_free(pTap);
        return JIM_ERR;
 }
 
 static void jtag_tap_handle_event(struct jtag_tap *tap, enum jtag_event e)
 {
-       struct jtag_tap_event_action * jteap;
+       struct jtag_tap_event_action *jteap;
 
-       for (jteap = tap->event_action; jteap != NULL; jteap = jteap->next)
-       {
+       for (jteap = tap->event_action; jteap != NULL; jteap = jteap->next) {
                if (jteap->event != e)
                        continue;
 
                Jim_Nvp *nvp = Jim_Nvp_value2name_simple(nvp_jtag_tap_event, e);
                LOG_DEBUG("JTAG tap: %s event: %d (%s)\n\taction: %s",
-                               tap->dotted_name, e, nvp->name,
-                               Jim_GetString(jteap->body, NULL));
+                       tap->dotted_name, e, nvp->name,
+                       Jim_GetString(jteap->body, NULL));
 
-               if (Jim_EvalObj(jteap->interp, jteap->body) != JIM_OK)
-               {
+               if (Jim_EvalObj(jteap->interp, jteap->body) != JIM_OK) {
                        Jim_MakeErrorMessage(jteap->interp);
                        LOG_USER("%s", Jim_GetString(Jim_GetResult(jteap->interp), NULL));
                        continue;
                }
 
-               switch (e)
-               {
-               case JTAG_TAP_EVENT_ENABLE:
-               case JTAG_TAP_EVENT_DISABLE:
-                       /* NOTE:  we currently assume the handlers
-                        * can't fail.  Right here is where we should
-                        * really be verifying the scan chains ...
-                        */
-                       tap->enabled = (e == JTAG_TAP_EVENT_ENABLE);
-                       LOG_INFO("JTAG tap: %s %s", tap->dotted_name,
+               switch (e) {
+                   case JTAG_TAP_EVENT_ENABLE:
+                   case JTAG_TAP_EVENT_DISABLE:
+                               /* NOTE:  we currently assume the handlers
+                                * can't fail.  Right here is where we should
+                                * really be verifying the scan chains ...
+                                */
+                           tap->enabled = (e == JTAG_TAP_EVENT_ENABLE);
+                           LOG_INFO("JTAG tap: %s %s", tap->dotted_name,
                                tap->enabled ? "enabled" : "disabled");
-                       break;
-               default:
-                       break;
+                           break;
+                   default:
+                           break;
                }
        }
 }
@@ -759,7 +727,7 @@ static bool jtag_tap_disable(struct jtag_tap *t)
        return true;
 }
 
-int jim_jtag_tap_enabler(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
+int jim_jtag_tap_enabler(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
 {
        const char *cmd_name = Jim_GetString(argv[0], NULL);
        Jim_GetOptInfo goi;
@@ -776,17 +744,17 @@ int jim_jtag_tap_enabler(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
                return JIM_ERR;
 
        if (strcasecmp(cmd_name, "tapisenabled") == 0) {
-               // do nothing, just return the value
+               /* do nothing, just return the value */
        } else if (strcasecmp(cmd_name, "tapenable") == 0) {
-               if (!jtag_tap_enable(t)){
+               if (!jtag_tap_enable(t)) {
                        LOG_WARNING("failed to enable tap %s", t->dotted_name);
-                        return JIM_ERR;
-                }
+                       return JIM_ERR;
+               }
        } else if (strcasecmp(cmd_name, "tapdisable") == 0) {
-               if (!jtag_tap_disable(t)){
+               if (!jtag_tap_disable(t)) {
                        LOG_WARNING("failed to disable tap %s", t->dotted_name);
-                        return JIM_ERR;
-                }
+                       return JIM_ERR;
+               }
        } else {
                LOG_ERROR("command '%s' unknown", cmd_name);
                return JIM_ERR;
@@ -796,7 +764,7 @@ int jim_jtag_tap_enabler(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
        return JIM_OK;
 }
 
-int jim_jtag_configure(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
+int jim_jtag_configure(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
 {
        const char *cmd_name = Jim_GetString(argv[0], NULL);
        Jim_GetOptInfo goi;
@@ -804,7 +772,7 @@ int jim_jtag_configure(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
        goi.isconfigure = !strcmp(cmd_name, "configure");
        if (goi.argc < 2 + goi.isconfigure) {
                Jim_WrongNumArgs(goi.interp, 0, NULL,
-                               "<tap_name> <attribute> ...");
+                       "<tap_name> <attribute> ...");
                return JIM_ERR;
        }
 
@@ -813,9 +781,8 @@ int jim_jtag_configure(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
        Jim_Obj *o;
        Jim_GetOpt_Obj(&goi, &o);
        t = jtag_tap_by_jim_obj(goi.interp, o);
-       if (t == NULL) {
+       if (t == NULL)
                return JIM_ERR;
-       }
 
        return jtag_tap_configure_cmd(&goi, t);
 }
@@ -845,9 +812,8 @@ COMMAND_HANDLER(handle_jtag_init_command)
        if (CMD_ARGC != 0)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
-       static bool jtag_initialized = false;
-       if (jtag_initialized)
-       {
+       static bool jtag_initialized;
+       if (jtag_initialized) {
                LOG_INFO("'jtag init' has already been called");
                return ERROR_OK;
        }
@@ -961,17 +927,17 @@ COMMAND_HANDLER(handle_scan_chain_command)
 
        tap = jtag_all_taps();
        command_print(CMD_CTX,
-"   TapName             Enabled  IdCode     Expected   IrLen IrCap IrMask");
+               "   TapName             Enabled  IdCode     Expected   IrLen IrCap IrMask");
        command_print(CMD_CTX,
-"-- ------------------- -------- ---------- ---------- ----- ----- ------");
+               "-- ------------------- -------- ---------- ---------- ----- ----- ------");
 
        while (tap) {
                uint32_t expected, expected_mask, ii;
 
                snprintf(expected_id, sizeof expected_id, "0x%08x",
-                               (unsigned)((tap->expected_ids_cnt > 0)
-                                       ? tap->expected_ids[0]
-                                       : 0));
+                       (unsigned)((tap->expected_ids_cnt > 0)
+                                  ? tap->expected_ids[0]
+                                  : 0));
                if (tap->ignore_version)
                        expected_id[2] = '*';
 
@@ -979,25 +945,25 @@ COMMAND_HANDLER(handle_scan_chain_command)
                expected_mask = buf_get_u32(tap->expected_mask, 0, tap->ir_length);
 
                command_print(CMD_CTX,
-       "%2d %-18s     %c     0x%08x %s %5d 0x%02x  0x%02x",
-                                         tap->abs_chain_position,
-                                         tap->dotted_name,
-                                         tap->enabled ? 'Y' : 'n',
-                                         (unsigned int)(tap->idcode),
-                                         expected_id,
-                                         (unsigned int)(tap->ir_length),
-                                         (unsigned int)(expected),
-                                         (unsigned int)(expected_mask));
+                       "%2d %-18s     %c     0x%08x %s %5d 0x%02x  0x%02x",
+                       tap->abs_chain_position,
+                       tap->dotted_name,
+                       tap->enabled ? 'Y' : 'n',
+                       (unsigned int)(tap->idcode),
+                       expected_id,
+                       (unsigned int)(tap->ir_length),
+                       (unsigned int)(expected),
+                       (unsigned int)(expected_mask));
 
                for (ii = 1; ii < tap->expected_ids_cnt; ii++) {
                        snprintf(expected_id, sizeof expected_id, "0x%08x",
-                                       (unsigned) tap->expected_ids[1]);
+                               (unsigned) tap->expected_ids[1]);
                        if (tap->ignore_version)
                                expected_id[2] = '*';
 
                        command_print(CMD_CTX,
-       "                                           %s",
-                                                 expected_id);
+                               "                                           %s",
+                               expected_id);
                }
 
                tap = tap->next_tap;
@@ -1010,8 +976,7 @@ COMMAND_HANDLER(handle_jtag_ntrst_delay_command)
 {
        if (CMD_ARGC > 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                unsigned delay;
                COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], delay);
 
@@ -1025,8 +990,7 @@ COMMAND_HANDLER(handle_jtag_ntrst_assert_width_command)
 {
        if (CMD_ARGC > 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                unsigned delay;
                COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], delay);
 
@@ -1042,8 +1006,7 @@ COMMAND_HANDLER(handle_jtag_rclk_command)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
        int retval = ERROR_OK;
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                unsigned khz = 0;
                COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], khz);
 
@@ -1121,9 +1084,7 @@ COMMAND_HANDLER(handle_irscan_command)
        tap_state_t endstate;
 
        if ((CMD_ARGC < 2) || (CMD_ARGC % 2))
-       {
                return ERROR_COMMAND_SYNTAX_ERROR;
-       }
 
        /* optional "-endstate" "statename" at the end of the arguments,
         * so that e.g. IRPAUSE can let us load the data register before
@@ -1132,22 +1093,21 @@ COMMAND_HANDLER(handle_irscan_command)
        endstate = TAP_IDLE;
 
        if (CMD_ARGC >= 4) {
-               /* have at least one pair of numbers. */
-               /* is last pair the magic text? */
+               /* have at least one pair of numbers.
+                * is last pair the magic text? */
                if (strcmp("-endstate", CMD_ARGV[CMD_ARGC - 2]) == 0) {
                        endstate = tap_state_by_name(CMD_ARGV[CMD_ARGC - 1]);
                        if (endstate == TAP_INVALID)
                                return ERROR_COMMAND_SYNTAX_ERROR;
                        if (!scan_is_safe(endstate))
                                LOG_WARNING("unstable irscan endstate \"%s\"",
-                                               CMD_ARGV[CMD_ARGC - 1]);
+                                       CMD_ARGV[CMD_ARGC - 1]);
                        CMD_ARGC -= 2;
                }
        }
 
        int num_fields = CMD_ARGC / 2;
-       if (num_fields > 1)
-       {
+       if (num_fields > 1) {
                /* we really should be looking at plain_ir_scan if we want
                 * anything more fancy.
                 */
@@ -1160,15 +1120,13 @@ COMMAND_HANDLER(handle_irscan_command)
        memset(fields, 0, fields_len);
 
        int retval;
-       for (i = 0; i < num_fields; i++)
-       {
+       for (i = 0; i < num_fields; i++) {
                tap = jtag_tap_by_string(CMD_ARGV[i*2]);
-               if (tap == NULL)
-               {
+               if (tap == NULL) {
                        int j;
                        for (j = 0; j < i; j++)
                                free((void *)fields[j].out_value);
-                        free(fields);
+                       free(fields);
                        command_print(CMD_CTX, "Tap: %s unknown", CMD_ARGV[i*2]);
 
                        return ERROR_FAIL;
@@ -1181,7 +1139,7 @@ COMMAND_HANDLER(handle_irscan_command)
                retval = parse_u32(CMD_ARGV[i * 2 + 1], &value);
                if (ERROR_OK != retval)
                        goto error_return;
-void *v = (void *)fields[i].out_value;
+               void *v = (void *)fields[i].out_value;
                buf_set_u32(v, 0, field_size, value);
                fields[i].in_value = NULL;
        }
@@ -1192,31 +1150,28 @@ void *v = (void *)fields[i].out_value;
        retval = jtag_execute_queue();
 
 error_return:
-       for (i = 0; i < num_fields; i++)
-       {
+       for (i = 0; i < num_fields; i++) {
                if (NULL != fields[i].out_value)
                        free((void *)fields[i].out_value);
        }
 
-       free (fields);
+       free(fields);
 
        return retval;
 }
 
-
 COMMAND_HANDLER(handle_verify_ircapture_command)
 {
        if (CMD_ARGC > 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                bool enable;
                COMMAND_PARSE_ENABLE(CMD_ARGV[0], enable);
                jtag_set_verify_capture_ir(enable);
        }
 
-       const char *status = jtag_will_verify_capture_ir() ? "enabled": "disabled";
+       const char *status = jtag_will_verify_capture_ir() ? "enabled" : "disabled";
        command_print(CMD_CTX, "verify Capture-IR is %s", status);
 
        return ERROR_OK;
@@ -1227,14 +1182,13 @@ COMMAND_HANDLER(handle_verify_jtag_command)
        if (CMD_ARGC > 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                bool enable;
                COMMAND_PARSE_ENABLE(CMD_ARGV[0], enable);
                jtag_set_verify(enable);
        }
 
-       const char *status = jtag_will_verify() ? "enabled": "disabled";
+       const char *status = jtag_will_verify() ? "enabled" : "disabled";
        command_print(CMD_CTX, "verify jtag capture is %s", status);
 
        return ERROR_OK;
@@ -1245,8 +1199,7 @@ COMMAND_HANDLER(handle_tms_sequence_command)
        if (CMD_ARGC > 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
-       if (CMD_ARGC == 1)
-       {
+       if (CMD_ARGC == 1) {
                bool use_new_table;
                if (strcmp(CMD_ARGV[0], "short") == 0)
                        use_new_table = true;
@@ -1259,7 +1212,7 @@ COMMAND_HANDLER(handle_tms_sequence_command)
        }
 
        command_print(CMD_CTX, "tms sequence is  %s",
-                       tap_uses_new_tms_table() ? "short": "long");
+               tap_uses_new_tms_table() ? "short" : "long");
 
        return ERROR_OK;
 }
@@ -1284,8 +1237,7 @@ COMMAND_HANDLER(handle_wait_srst_deassert)
 
        int timeout_ms;
        COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], timeout_ms);
-       if ((timeout_ms <= 0) || (timeout_ms > 100000))
-       {
+       if ((timeout_ms <= 0) || (timeout_ms > 100000)) {
                LOG_ERROR("Timeout must be an integer between 0 and 100000");
                return ERROR_FAIL;
        }
@@ -1293,20 +1245,16 @@ COMMAND_HANDLER(handle_wait_srst_deassert)
        LOG_USER("Waiting for srst assert + deassert for at most %dms", timeout_ms);
        int asserted_yet;
        long long then = timeval_ms();
-       while (jtag_srst_asserted(&asserted_yet) == ERROR_OK)
-       {
-               if ((timeval_ms() - then) > timeout_ms)
-               {
+       while (jtag_srst_asserted(&asserted_yet) == ERROR_OK) {
+               if ((timeval_ms() - then) > timeout_ms) {
                        LOG_ERROR("Timed out");
                        return ERROR_FAIL;
                }
                if (asserted_yet)
                        break;
        }
-       while (jtag_srst_asserted(&asserted_yet) == ERROR_OK)
-       {
-               if ((timeval_ms() - then) > timeout_ms)
-               {
+       while (jtag_srst_asserted(&asserted_yet) == ERROR_OK) {
+               if ((timeval_ms() - then) > timeout_ms) {
                        LOG_ERROR("Timed out");
                        return ERROR_FAIL;
                }
@@ -1317,8 +1265,6 @@ COMMAND_HANDLER(handle_wait_srst_deassert)
        return ERROR_OK;
 }
 
-
-
 static const struct command_registration jtag_command_handlers[] = {
 
        {
@@ -1326,7 +1272,7 @@ static const struct command_registration jtag_command_handlers[] = {
                .handler = handle_jtag_flush_queue_sleep,
                .mode = COMMAND_ANY,
                .help = "For debug purposes(simulate long delays of interface) "
-                               "to test performance or change in behavior. Default 0ms.",
+                       "to test performance or change in behavior. Default 0ms.",
                .usage = "[sleep in ms]",
        },
        {
@@ -1406,7 +1352,7 @@ static const struct command_registration jtag_command_handlers[] = {
                .help = "Display or change what style TMS sequences to use "
                        "for JTAG state transitions:  short (default) or "
                        "long.  Only for working around JTAG bugs.",
-                       /* Specifically for working around DRIVER bugs... */
+               /* Specifically for working around DRIVER bugs... */
                .usage = "['short'|'long']",
        },
        {
index c9adb1e9dac373fce8dde0753dea4ef571cccc68..5f1cd0e477e9ba5900e4097dcedb0f49c0450e72 100644 (file)
@@ -1,9 +1,39 @@
+/***************************************************************************
+ *   Copyright (C) 2005 by Dominic Rath                                    *
+ *   Dominic.Rath@gmx.de                                                   *
+ *                                                                         *
+ *   Copyright (C) 2007-2010 Ã˜yvind Harboe                                 *
+ *   oyvind.harboe@zylin.com                                               *
+ *                                                                         *
+ *   Copyright (C) 2009 SoftPLC Corporation                                *
+ *       http://softplc.com                                                *
+ *   dick@softplc.com                                                      *
+ *                                                                         *
+ *   Copyright (C) 2009 Zachary T Welch                                    *
+ *   zw@superlucidity.net                                                  *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+
 #ifndef _JTAG_TCL_H_
 #define _JTAG_TCL_H_
 
 int jim_jtag_configure(Jim_Interp *interp, int argc,
-                             Jim_Obj * const *argv);
+               Jim_Obj * const *argv);
 int jim_jtag_tap_enabler(Jim_Interp *interp, int argc,
-                               Jim_Obj * const *argv);
+               Jim_Obj * const *argv);
 
 #endif

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)