armv7a: make local functions static
[openocd.git] / src / xsvf / xsvf.c
index 5cacbed808a2dea2a3197a6af9e030e5527e160c..31c39499380c494dbd71d6df9bbd9137abe43193 100644 (file)
@@ -42,7 +42,7 @@
 
 #include "xsvf.h"
 #include <jtag/jtag.h>
-#include "svf.h"
+#include <svf/svf.h>
 
 
 /* XSVF commands, from appendix B of xapp503.pdf  */
@@ -269,7 +269,6 @@ COMMAND_HANDLER(handle_xsvf_command)
                 */
                if (collecting_path) {
                        tap_state_t     mystate;
-                       uint8_t         uc;
 
                        switch (opcode) {
                        case XCOMMENT:
@@ -332,7 +331,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                else
                                        jtag_add_pathmove(pathlen, path);
 
-                               result = jtag_get_error();
+                               result = jtag_execute_queue();
                                if (result != ERROR_OK) {
                                        LOG_ERROR("XSVF: pathmove error %d",
                                                        result);
@@ -476,15 +475,15 @@ COMMAND_HANDLER(handle_xsvf_command)
                                                        LOG_USER("%s mismatch, xsdrsize=%d retry=%d", op_name, xsdrsize, attempt);
                                        }
 
-                                       field.tap = tap;
                                        field.num_bits = xsdrsize;
                                        field.out_value = dr_out_buf;
                                        field.in_value = calloc(DIV_ROUND_UP(field.num_bits, 8), 1);
 
                                        if (tap == NULL)
-                                               jtag_add_plain_dr_scan(1, &field, jtag_set_end_state(TAP_DRPAUSE));
+                                               jtag_add_plain_dr_scan(field.num_bits, field.out_value, field.in_value,
+                                                               TAP_DRPAUSE);
                                        else
-                                               jtag_add_dr_scan(1, &field, jtag_set_end_state(TAP_DRPAUSE));
+                                               jtag_add_dr_scan(tap, 1, &field, TAP_DRPAUSE);
 
                                        jtag_check_value_mask(&field, dr_in_buf, dr_in_mask);
 
@@ -523,49 +522,48 @@ COMMAND_HANDLER(handle_xsvf_command)
                        break;
 
                case XSETSDRMASKS:
-                       LOG_ERROR("unsupported XSETSDRMASKS\n");
+                       LOG_ERROR("unsupported XSETSDRMASKS");
                        unsupported = 1;
                        break;
 
                case XSDRINC:
-                       LOG_ERROR("unsupported XSDRINC\n");
+                       LOG_ERROR("unsupported XSDRINC");
                        unsupported = 1;
                        break;
 
                case XSDRB:
-                       LOG_ERROR("unsupported XSDRB\n");
+                       LOG_ERROR("unsupported XSDRB");
                        unsupported = 1;
                        break;
 
                case XSDRC:
-                       LOG_ERROR("unsupported XSDRC\n");
+                       LOG_ERROR("unsupported XSDRC");
                        unsupported = 1;
                        break;
 
                case XSDRE:
-                       LOG_ERROR("unsupported XSDRE\n");
+                       LOG_ERROR("unsupported XSDRE");
                        unsupported = 1;
                        break;
 
                case XSDRTDOB:
-                       LOG_ERROR("unsupported XSDRTDOB\n");
+                       LOG_ERROR("unsupported XSDRTDOB");
                        unsupported = 1;
                        break;
 
                case XSDRTDOC:
-                       LOG_ERROR("unsupported XSDRTDOC\n");
+                       LOG_ERROR("unsupported XSDRTDOC");
                        unsupported = 1;
                        break;
 
                case XSDRTDOE:
-                       LOG_ERROR("unsupported XSDRTDOE\n");
+                       LOG_ERROR("unsupported XSDRTDOE");
                        unsupported = 1;
                        break;
 
                case XSTATE:
                        {
                                tap_state_t     mystate;
-                               uint8_t                 uc;
 
                                if (read(xsvf_fd, &uc, 1) < 0)
                                {
@@ -694,7 +692,6 @@ COMMAND_HANDLER(handle_xsvf_command)
                                {
                                        struct scan_field field;
 
-                                       field.tap = tap;
                                        field.num_bits = bitcount;
                                        field.out_value = ir_buf;
 
@@ -704,9 +701,10 @@ COMMAND_HANDLER(handle_xsvf_command)
 
 
                                        if (tap == NULL)
-                                               jtag_add_plain_ir_scan(1, &field, my_end_state);
+                                               jtag_add_plain_ir_scan(field.num_bits,
+                                                               field.out_value, field.in_value, my_end_state);
                                        else
-                                               jtag_add_ir_scan(1, &field, my_end_state);
+                                               jtag_add_ir_scan(tap, &field, my_end_state);
 
                                        if (xruntest)
                                        {
@@ -762,7 +760,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                   XWAIT <uint8_t wait_state> <uint8_t end_state> <uint32_t usecs>
                                */
 
-                               uint8_t wait;
+                               uint8_t wait_local;
                                uint8_t end;
                                uint8_t delay_buf[4];
 
@@ -770,7 +768,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                tap_state_t end_state;
                                int     delay;
 
-                               if (read(xsvf_fd, &wait, 1) < 0
+                               if (read(xsvf_fd, &wait_local, 1) < 0
                                  || read(xsvf_fd, &end, 1) < 0
                                  || read(xsvf_fd, delay_buf, 4) < 0)
                                {
@@ -778,7 +776,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                        break;
                                }
 
-                               wait_state = xsvf_to_tap(wait);
+                               wait_state = xsvf_to_tap(wait_local);
                                end_state  = xsvf_to_tap(end);
                                delay      = be_to_h_u32(delay_buf);
 
@@ -806,14 +804,14 @@ COMMAND_HANDLER(handle_xsvf_command)
 
                                uint8_t  clock_buf[4];
                                uint8_t usecs_buf[4];
-                               uint8_t wait;
+                               uint8_t wait_local;
                                uint8_t end;
                                tap_state_t wait_state;
                                tap_state_t end_state;
                                int clock_count;
                                int usecs;
 
-                               if (read(xsvf_fd, &wait, 1) < 0
+                               if (read(xsvf_fd, &wait_local, 1) < 0
                                 ||  read(xsvf_fd, &end, 1) < 0
                                 ||  read(xsvf_fd, clock_buf, 4) < 0
                                 ||  read(xsvf_fd, usecs_buf, 4) < 0)
@@ -822,7 +820,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                        break;
                                }
 
-                               wait_state = xsvf_to_tap(wait);
+                               wait_state = xsvf_to_tap(wait_local);
                                end_state  = xsvf_to_tap(end);
 
                                clock_count = be_to_h_u32(clock_buf);
@@ -930,7 +928,6 @@ COMMAND_HANDLER(handle_xsvf_command)
                                        jtag_add_clocks(loop_clocks);
                                        jtag_add_sleep(loop_usecs);
 
-                                       field.tap = tap;
                                        field.num_bits = xsdrsize;
                                        field.out_value = dr_out_buf;
                                        field.in_value = calloc(DIV_ROUND_UP(field.num_bits, 8), 1);
@@ -939,9 +936,10 @@ COMMAND_HANDLER(handle_xsvf_command)
                                                LOG_USER("LSDR retry %d", attempt);
 
                                        if (tap == NULL)
-                                               jtag_add_plain_dr_scan(1, &field, jtag_set_end_state(TAP_DRPAUSE));
+                                               jtag_add_plain_dr_scan(field.num_bits, field.out_value, field.in_value,
+                                                               TAP_DRPAUSE);
                                        else
-                                               jtag_add_dr_scan(1, &field, jtag_set_end_state(TAP_DRPAUSE));
+                                               jtag_add_dr_scan(tap, 1, &field, TAP_DRPAUSE);
 
                                        jtag_check_value_mask(&field, dr_in_buf, dr_in_mask);
 
@@ -995,7 +993,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                        break;
 
                default:
-                       LOG_ERROR("unknown xsvf command (0x%02X)\n", uc);
+                       LOG_ERROR("unknown xsvf command (0x%02X)", uc);
                        unsupported = 1;
                }
 
@@ -1053,13 +1051,13 @@ COMMAND_HANDLER(handle_xsvf_command)
 static const struct command_registration xsvf_command_handlers[] = {
        {
                .name = "xsvf",
-               .handler = &handle_xsvf_command,
+               .handler = handle_xsvf_command,
                .mode = COMMAND_EXEC,
                .help = "Runs a XSVF file.  If 'virt2' is given, xruntest "
                        "counts are interpreted as TCK cycles rather than "
                        "as microseconds.  Without the 'quiet' option, all "
                        "comments, retries, and mismatches will be reported.",
-               .usage = "<file> [virt2] [quiet]",
+               .usage = "(tapname|'plain') filename ['virt2'] ['quiet']",
        },
        COMMAND_REGISTRATION_DONE
 };

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)