#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include "dbg_msg.h"
#include "jt_tap.h"
#include "jt_io_usb.h"
#include "jt_arm.h"
#include "transaction.h"
Test Access Port Controller Interface Support functions to access the JTAG interface of JLink based USB devices
#define XMIT_DATA_BUFFER_SIZE ((2*1024)-16) |
#define XMIT_SIZE (3+XMIT_DATA_BUFFER_SIZE) |
#define READ_ENDPOINT 0x81 |
#define WRITE_ENDPOINT 0x02 |
#define JLINK_GET_VERSION 0x01 |
Referenced by jlinkGetVersion().
#define JLINK_GET_CAPABILITY 0xE8 |
Referenced by jlinkGetCapability().
#define JLINK_GET_HW_VERSION 0xF0 |
Referenced by jlinkGetHwVersion().
#define JLINK_SET_SPEED 0x05 |
Referenced by jlinkSetTckFrequency().
#define JLINK_GET_STATE 0x07 |
Referenced by jlinkGetStatus().
#define JLINK_TMS_TDI_TDO_V1 0xCD |
Referenced by jlinkTapDataIO().
#define JLINK_TMS_TDI_TDO_V2 0xCE |
Referenced by jlinkTapDataIO().
#define JLINK_TMS_TDI_TDO_V3 0xCF |
Referenced by jlinkTapDataIO().
#define JLINK_SRST_LOW 0xDC |
Referenced by jlinkReset().
#define JLINK_SRST_HIGH 0xDD |
Referenced by jlinkReset().
#define JLINK_TRST_LOW 0xDE |
Referenced by jlinkReset().
#define JLINK_TRST_HIGH 0xDF |
Referenced by jlinkReset().
#define MAX_XMIT_BIT_LEN (XMIT_DATA_BUFFER_SIZE/8) |
Referenced by jlinkTapDataIO(), tap_data_usb_jlink(), tap_idle_usb_jlink(), and tap_instr_usb_jlink().
void tap_init_usb_jlink | ( | void | ) |
References DBG_LEVEL_JTAG_TAP, dbgPrintf(), error_exit_code, ERROR_MSG_EXIT, jlinkGetCapability(), jlinkGetHwVersion(), jlinkGetStatus(), jlinkGetVersion(), jlinkReset(), jlinkSetTckFrequency(), READ_ENDPOINT, usb_io_buffer::read_endpoint, srst_state, trst_state, usb_io_buffer::usb_read_timeout, usb_io_buffer::usb_write_timeout, usbIO_buf, WRITE_ENDPOINT, and usb_io_buffer::write_endpoint.
void tap_hard_reset_usb_jlink | ( | void | ) |
References jlinkReset().
Referenced by tap_discover_chain_usb_jlink().
void tap_reset_usb_jlink | ( | void | ) |
References jlinkTapDataIO().
Referenced by tap_discover_chain_usb_jlink().
void tap_idle_usb_jlink | ( | int | now | ) |
References error_exit_code, ownParam::IDLE_CHAIN_TRANSFER, jlinkTapDataIO(), MAX_XMIT_BIT_LEN, ownParam::num_bits, ownParam::offset, transaction::parameter, ownParam::skipBits, tap_usb_io_jlink_cb(), transactionActivateFinal(), transactionCreate(), transactionErase(), transactionExecute(), transactionGet(), transactionPenting(), ownParam::type, and transaction::uplevel.
Referenced by tap_discover_chain_usb_jlink().
void tap_instr_usb_jlink | ( | int | num_bits, | |
char * | to_dev, | |||
char * | from_dev | |||
) |
References error_exit_code, ownParam::INSTUCTION_CHAIN_TRANSFER, jlinkTapDataIO(), MAX_XMIT_BIT_LEN, ownParam::num_bits, ownParam::offset, transaction::parameter, ownParam::skipBits, tap_usb_io_jlink_cb(), transactionActivateFinal(), transactionCreate(), transactionExecute(), transactionGet(), transactionPenting(), ownParam::type, and transaction::uplevel.
void tap_data_usb_jlink | ( | int | num_bits, | |
char * | to_dev, | |||
char * | from_dev | |||
) |
References ownParam::DATA_CHAIN_TRANSFER, error_exit_code, jlinkTapDataIO(), MAX_XMIT_BIT_LEN, ownParam::num_bits, ownParam::offset, transaction::parameter, ownParam::skipBits, tap_usb_io_jlink_cb(), transactionActivateFinal(), transactionCreate(), transactionExecute(), transactionGet(), transactionPenting(), ownParam::type, and transaction::uplevel.
void tap_discover_chain_usb_jlink | ( | void | ) |
References DBG_LEVEL_JTAG_TAP, dbgPrintf(), error_exit_code, chain_info::has_idcode, chain_info::idcode, chain_info::instr_len, instrLenByID::instrLen, jlinkTapDataIO(), jtag_supp_bitstr2int_MSB_First(), instrLenByID::jtagID, chain_info::next, chain_info::prev, tap_hard_reset_usb_jlink(), tap_idle_usb_jlink(), and tap_reset_usb_jlink().
static void jlinkTapDataIO | ( | int | totalBitLen, | |
char * | tms, | |||
char * | tdTo, | |||
char * | tdFrom | |||
) | [static] |
References ERROR_MSG_EXIT, JLINK_TMS_TDI_TDO_V1, JLINK_TMS_TDI_TDO_V2, JLINK_TMS_TDI_TDO_V3, libusbReadData(), libusbWriteData(), MAX_XMIT_BIT_LEN, usb_io_buffer::readbuffer, usb_io_buffer::readbuffer_remaining, usbIO_buf, usbIO_readBufferGetNext(), usbIO_writeBufferAppend(), jlink::variant, usb_io_buffer::writebuffer_size, and usb_io_buffer::xferBits.
Referenced by tap_data_usb_jlink(), tap_discover_chain_usb_jlink(), tap_idle_usb_jlink(), tap_instr_usb_jlink(), tap_reset_usb_jlink(), tap_test_1_usb_jlink(), tap_test_2_usb_jlink(), tap_test_3_usb_jlink(), and tap_usb_io_jlink_cb().
static void jlinkGetVersion | ( | void | ) | [static] |
References BUFFER_SIZE, DBG_LEVEL_JTAG_TAP, dbgPrintf(), ERROR_MSG_EXIT, JLINK_GET_VERSION, libusbReadData(), libusbWriteData(), usb_io_buffer::readbuffer, usb_io_buffer::readbuffer_remaining, usbIO_buf, usbIO_readBufferGetNext(), usbIO_writeBufferAppend(), usb_io_buffer::writebuffer_size, and usb_io_buffer::xferBits.
Referenced by tap_init_usb_jlink().
static void jlinkGetCapability | ( | void | ) | [static] |
References ERROR_MSG_EXIT, JLINK_GET_CAPABILITY, libusbReadData(), libusbWriteData(), usb_io_buffer::readbuffer_remaining, jlink::supportsGetHwVersion, jlink::supportsRtckAdaptiveClocking, usbIO_buf, usbIO_readBufferGetNext(), usbIO_writeBufferAppend(), usb_io_buffer::writebuffer_size, and usb_io_buffer::xferBits.
Referenced by tap_init_usb_jlink().
static void jlinkGetHwVersion | ( | void | ) | [static] |
References ERROR_MSG_EXIT, jlink::hwVerMajor, jlink::hwVerMinor, jlink::hwVerPatch, JLINK_GET_HW_VERSION, libusbReadData(), libusbWriteData(), jlink::maxFrequency, usb_io_buffer::readbuffer_remaining, jlink::supportsGetHwVersion, usbIO_buf, usbIO_readBufferGetNext(), usbIO_writeBufferAppend(), jlink::variant, usb_io_buffer::writebuffer_size, and usb_io_buffer::xferBits.
Referenced by tap_init_usb_jlink().
static void jlinkSetTckFrequency | ( | void | ) | [static] |
static void jlinkGetStatus | ( | void | ) | [static] |
References DBG_LEVEL_GDB_ARM_INFO, DBG_LEVEL_JTAG_TAP, dbgPrintf(), ERROR_MSG_EXIT, JLINK_GET_STATE, libusbReadData(), libusbWriteData(), usb_io_buffer::readbuffer_remaining, usbIO_buf, usbIO_readBufferGetNext(), usbIO_writeBufferAppend(), usb_io_buffer::writebuffer_size, and usb_io_buffer::xferBits.
Referenced by tap_init_usb_jlink().
static void jlinkReset | ( | int | trst, | |
int | srst | |||
) | [static] |
References JLINK_SRST_HIGH, JLINK_SRST_LOW, JLINK_TRST_HIGH, JLINK_TRST_LOW, libusbWriteData(), srst_state, trst_state, usbIO_buf, usbIO_writeBufferAppend(), usb_io_buffer::writebuffer_size, and usb_io_buffer::xferBits.
Referenced by tap_hard_reset_usb_jlink(), and tap_init_usb_jlink().
static void tap_usb_io_jlink_cb | ( | struct transaction * | context | ) | [static] |
void tap_test_1_usb_jlink | ( | void | ) |
References jlinkTapDataIO().
Referenced by tap_raw_io_test().
void tap_test_2_usb_jlink | ( | void | ) |
References jlinkTapDataIO().
Referenced by tap_raw_io_test().
void tap_test_3_usb_jlink | ( | void | ) |
References jlinkTapDataIO().
Referenced by tap_raw_io_test().
uint8_t srst_state [static] |
Referenced by jlinkReset(), and tap_init_usb_jlink().
uint8_t trst_state [static] |
Referenced by jlinkReset(), and tap_init_usb_jlink().