Cleanup jtag_tap_by_abs_position:
[fw/openocd] / src / jtag / amt_jtagaccel.c
index 54523fb3e773a31ea3e6ff1225c0c60ec74d18a5..b19fae17ebd6a7980634cfc57c5788c69565482c 100644 (file)
 #include "config.h"
 #endif
 
-#include "replacements.h"
+#include "interface.h"
+#include "commands.h"
 
-#include "jtag.h"
-
-/* system includes */
-
-#ifdef _WIN32
-#include "errno.h"
-#endif /* _WIN32 */
-
-#include <string.h>
-#include <stdlib.h>
 
 #if PARPORT_USE_PPDEV == 1
 #include <linux/parport.h>
 #include <linux/ppdev.h>
-#include <fcntl.h>
 #include <sys/ioctl.h>
-#include <unistd.h>
 #else /* not PARPORT_USE_PPDEV */
 #ifndef _WIN32
 #include <sys/io.h>
 #if PARPORT_USE_GIVEIO == 1
 #if IS_CYGWIN == 1
 #include <windows.h>
-#include <errno.h>
 #endif
 #endif
 
-#include "log.h"
-
 /* configuration */
-u16 amt_jtagaccel_port;
+static u16 amt_jtagaccel_port;
 
 /* interface variables
  */
@@ -68,27 +54,32 @@ static int rtck_enabled = 0;
 
 #if PARPORT_USE_PPDEV == 1
 static int device_handle;
-int addr_mode = IEEE1284_MODE_EPP | IEEE1284_ADDR ;
-int data_mode = IEEE1284_MODE_EPP | IEEE1284_DATA ;
+
+static int addr_mode = IEEE1284_MODE_EPP | IEEE1284_ADDR ;
 #define AMT_AW(val)    do { ioctl(device_handle, PPSETMODE, &addr_mode); write(device_handle, &val, 1); } while (0)
 #define AMT_AR(val)    do { ioctl(device_handle, PPSETMODE, &addr_mode); read(device_handle, &val, 1); } while (0)
+
+static int data_mode = IEEE1284_MODE_EPP | IEEE1284_DATA ;
 #define AMT_DW(val)    do { ioctl(device_handle, PPSETMODE, &data_mode); write(device_handle, &val, 1); } while (0)
 #define AMT_DR(val)    do { ioctl(device_handle, PPSETMODE, &data_mode); read(device_handle, &val, 1); } while (0)
+
 #else
+
 #define AMT_AW(val)    do { outb(val, amt_jtagaccel_port + 3); } while (0)
 #define AMT_AR(val)    do { val = inb(amt_jtagaccel_port + 3); } while (0)
 #define AMT_DW(val)    do { outb(val, amt_jtagaccel_port + 4); } while (0)
 #define AMT_DR(val)    do { val = inb(amt_jtagaccel_port + 4); } while (0)
-#endif
 
-int amt_jtagaccel_execute_queue(void);
-int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx);
-int amt_jtagaccel_speed(int speed);
-int amt_jtagaccel_init(void);
-int amt_jtagaccel_quit(void);
+#endif // PARPORT_USE_PPDEV
+
+static int amt_jtagaccel_execute_queue(void);
+static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx);
+static int amt_jtagaccel_speed(int speed);
+static int amt_jtagaccel_init(void);
+static int amt_jtagaccel_quit(void);
 
-int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
 
 /* tap_move[i][j]: tap movement command to go from state i to state j
  * 0: Test-Logic-Reset
@@ -98,7 +89,7 @@ int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *c
  * 4: Shift-IR
  * 5: Pause-IR
  */
-u8 amt_jtagaccel_tap_move[6][6][2] =
+static u8 amt_jtagaccel_tap_move[6][6][2] =
 {
        /*         RESET         IDLE        DRSHIFT       DRPAUSE       IRSHIFT       IRPAUSE             */
        {{0x1f, 0x00}, {0x0f, 0x00}, {0x8a, 0x04}, {0x0a, 0x00}, {0x06, 0x00}, {0x96, 0x00}},   /* RESET */
@@ -122,7 +113,7 @@ jtag_interface_t amt_jtagaccel_interface =
        .quit = amt_jtagaccel_quit,
 };
 
-int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx)
+static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx)
 {
        register_command(cmd_ctx, NULL, "parport_port", amt_jtagaccel_handle_parport_port_command,
                                         COMMAND_CONFIG, NULL);
@@ -132,7 +123,7 @@ int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx)
        return ERROR_OK;
 }
 
-void amt_jtagaccel_reset(int trst, int srst)
+static void amt_jtagaccel_reset(int trst, int srst)
 {
        if (trst == 1)
                aw_control_rst |= 0x4;
@@ -147,7 +138,7 @@ void amt_jtagaccel_reset(int trst, int srst)
        AMT_AW(aw_control_rst);
 }
 
-int amt_jtagaccel_speed(int speed)
+static int amt_jtagaccel_speed(int speed)
 {
        aw_control_baudrate &= 0xf0;
        aw_control_baudrate |= speed & 0x0f;
@@ -156,7 +147,7 @@ int amt_jtagaccel_speed(int speed)
        return ERROR_OK;
 }
 
-void amt_jtagaccel_end_state(int state)
+static void amt_jtagaccel_end_state(tap_state_t state)
 {
        if (tap_is_state_stable(state))
                tap_set_end_state(state);
@@ -167,7 +158,7 @@ void amt_jtagaccel_end_state(int state)
        }
 }
 
-void amt_wait_scan_busy(void)
+static void amt_wait_scan_busy(void)
 {
        int timeout = 4096;
        u8 ar_status;
@@ -183,7 +174,7 @@ void amt_wait_scan_busy(void)
        }
 }
 
-void amt_jtagaccel_state_move(void)
+static void amt_jtagaccel_state_move(void)
 {
        u8 aw_scan_tms_5;
        u8 tms_scan[2];
@@ -210,7 +201,7 @@ void amt_jtagaccel_state_move(void)
        tap_set_state(end_state);
 }
 
-void amt_jtagaccel_runtest(int num_cycles)
+static void amt_jtagaccel_runtest(int num_cycles)
 {
        int i = 0;
        u8 aw_scan_tms_5;
@@ -243,7 +234,7 @@ void amt_jtagaccel_runtest(int num_cycles)
                amt_jtagaccel_state_move();
 }
 
-void amt_jtagaccel_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
+static void amt_jtagaccel_scan(bool ir_scan, enum scan_type type, u8 *buffer, int scan_size)
 {
        int bits_left = scan_size;
        int bit_count = 0;
@@ -325,7 +316,7 @@ void amt_jtagaccel_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_s
        tap_set_state(tap_get_end_state());
 }
 
-int amt_jtagaccel_execute_queue(void)
+static int amt_jtagaccel_execute_queue(void)
 {
        jtag_command_t *cmd = jtag_command_queue; /* currently processed command */
        int scan_size;
@@ -342,13 +333,6 @@ int amt_jtagaccel_execute_queue(void)
        {
                switch (cmd->type)
                {
-                       case JTAG_END_STATE:
-#ifdef _DEBUG_JTAG_IO_
-                               LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state);
-#endif
-                               if (cmd->cmd.end_state->end_state != TAP_INVALID)
-                                       amt_jtagaccel_end_state(cmd->cmd.end_state->end_state);
-                               break;
                        case JTAG_RESET:
 #ifdef _DEBUG_JTAG_IO_
                                LOG_DEBUG("reset trst: %i srst %i", cmd->cmd.reset->trst, cmd->cmd.reset->srst);
@@ -363,24 +347,21 @@ int amt_jtagaccel_execute_queue(void)
 #ifdef _DEBUG_JTAG_IO_
                                LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state);
 #endif
-                               if (cmd->cmd.runtest->end_state != TAP_INVALID)
-                                       amt_jtagaccel_end_state(cmd->cmd.runtest->end_state);
+                               amt_jtagaccel_end_state(cmd->cmd.runtest->end_state);
                                amt_jtagaccel_runtest(cmd->cmd.runtest->num_cycles);
                                break;
                        case JTAG_STATEMOVE:
 #ifdef _DEBUG_JTAG_IO_
                                LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state);
 #endif
-                               if (cmd->cmd.statemove->end_state != TAP_INVALID)
-                                       amt_jtagaccel_end_state(cmd->cmd.statemove->end_state);
+                               amt_jtagaccel_end_state(cmd->cmd.statemove->end_state);
                                amt_jtagaccel_state_move();
                                break;
                        case JTAG_SCAN:
 #ifdef _DEBUG_JTAG_IO_
                                LOG_DEBUG("scan end in %i", cmd->cmd.scan->end_state);
 #endif
-                               if (cmd->cmd.scan->end_state != TAP_INVALID)
-                                       amt_jtagaccel_end_state(cmd->cmd.scan->end_state);
+                               amt_jtagaccel_end_state(cmd->cmd.scan->end_state);
                                scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer);
                                type = jtag_scan_type(cmd->cmd.scan);
                                amt_jtagaccel_scan(cmd->cmd.scan->ir_scan, type, buffer, scan_size);
@@ -431,7 +412,7 @@ int amt_jtagaccel_get_giveio_access(void)
 }
 #endif
 
-int amt_jtagaccel_init(void)
+static int amt_jtagaccel_init(void)
 {
 #if PARPORT_USE_PPDEV == 1
        char buffer[256];
@@ -536,13 +517,13 @@ int amt_jtagaccel_init(void)
        return ERROR_OK;
 }
 
-int amt_jtagaccel_quit(void)
+static int amt_jtagaccel_quit(void)
 {
 
        return ERROR_OK;
 }
 
-int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
        if (argc == 0)
                return ERROR_OK;
@@ -554,7 +535,7 @@ int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx,
        return ERROR_OK;
 }
 
-int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
        if (argc == 0)
        {