#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().