#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 */
static u16 amt_jtagaccel_port;
aw_scan_tms_5 = 0x40 | (tms_scan[0] & 0x1f);
AMT_AW(aw_scan_tms_5);
+ int jtag_speed = jtag_get_speed();
if (jtag_speed > 3 || rtck_enabled)
amt_wait_scan_busy();
amt_jtagaccel_state_move();
}
-static 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;
u8 dr_tdo;
u8 aw_tms_scan;
u8 tms_scan[2];
+ int jtag_speed = jtag_get_speed();
if (ir_scan)
amt_jtagaccel_end_state(TAP_IRSHIFT);
{
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);
#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);
aw_control_fsm |= 0x04;
AMT_AW(aw_control_fsm);
- amt_jtagaccel_speed(jtag_speed);
+ amt_jtagaccel_speed(jtag_get_speed());
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
aw_control_rst &= ~0x8;
else