2021-06-26 15:24:07 +02:00
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (C) 2019 Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
|
|
|
|
|
*/
|
|
|
|
|
|
2019-09-26 18:29:20 +02:00
|
|
|
#ifndef CABLE_HPP
|
|
|
|
|
#define CABLE_HPP
|
|
|
|
|
|
|
|
|
|
#include <map>
|
2020-03-07 07:19:20 +01:00
|
|
|
#include <string>
|
2019-09-26 18:29:20 +02:00
|
|
|
|
|
|
|
|
#include "ftdipp_mpsse.hpp"
|
|
|
|
|
|
2020-03-07 10:53:31 +01:00
|
|
|
/*!
|
|
|
|
|
* \brief define type of communication
|
|
|
|
|
*/
|
2020-12-13 00:48:45 +01:00
|
|
|
enum communication_type {
|
2020-08-20 16:56:29 +02:00
|
|
|
MODE_ANLOGICCABLE = 0, /*! JTAG probe from Anlogic */
|
2021-11-06 10:33:25 +01:00
|
|
|
MODE_CH552_JTAG, /*! ch552_jtag firmware */
|
|
|
|
|
MODE_FTDI_BITBANG, /*! used with ft232RL/ft231x */
|
|
|
|
|
MODE_FTDI_SERIAL, /*! ft2232, ft232H */
|
2022-03-12 18:46:23 +01:00
|
|
|
MODE_JLINK, /*! ft2232, ft232H */
|
2021-11-06 10:33:25 +01:00
|
|
|
MODE_DIRTYJTAG, /*! JTAG probe firmware for STM32F1 */
|
|
|
|
|
MODE_USBBLASTER, /*! JTAG probe firmware for USBBLASTER */
|
|
|
|
|
MODE_CMSISDAP, /*! CMSIS-DAP JTAG probe */
|
|
|
|
|
MODE_DFU, /*! DFU based probe */
|
2022-04-10 16:02:39 +02:00
|
|
|
MODE_XVC_CLIENT, /*! Xilinx Virtual Cable client */
|
2022-05-23 20:16:48 +02:00
|
|
|
MODE_LIBGPIOD_BITBANG, /*! Bitbang gpio pins */
|
2020-12-13 00:48:45 +01:00
|
|
|
};
|
2020-03-07 10:53:31 +01:00
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
int type;
|
|
|
|
|
FTDIpp_MPSSE::mpsse_bit_config config;
|
|
|
|
|
} cable_t;
|
|
|
|
|
|
|
|
|
|
static std::map <std::string, cable_t> cable_list = {
|
2020-04-16 09:54:53 +02:00
|
|
|
// last 4 bytes are ADBUS7-0 value, ADBUS7-0 direction, ACBUS7-0 value, ACBUS7-0 direction
|
|
|
|
|
// some cables requires explicit values on some of the I/Os
|
2022-06-02 08:51:47 +02:00
|
|
|
{"anlogicCable", {MODE_ANLOGICCABLE, {}}},
|
|
|
|
|
{"arm-usb-ocd-h", {MODE_FTDI_SERIAL, {0x15ba, 0x002b, INTERFACE_A, 0x08, 0x1B, 0x09, 0x0B, 0}}},
|
|
|
|
|
{"bus_blaster", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0x08, 0x1B, 0x08, 0x0B, 0}}},
|
|
|
|
|
{"bus_blaster_b", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_B, 0x08, 0x0B, 0x08, 0x0B, 0}}},
|
|
|
|
|
{"ch552_jtag", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0x08, 0x0B, 0x08, 0x0B, 0}}},
|
|
|
|
|
{"cmsisdap", {MODE_CMSISDAP, {0x0d28, 0x0204, 0, 0, 0, 0, 0, 0}}},
|
|
|
|
|
{"gatemate_pgm", {MODE_FTDI_SERIAL, {0x0403, 0x6014, INTERFACE_A, 0x10, 0x9B, 0x14, 0x17, 0}}},
|
|
|
|
|
{"gatemate_evb_jtag", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0x10, 0x1B, 0x00, 0x01, 0}}},
|
|
|
|
|
{"gatemate_evb_spi", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_B, 0x00, 0x1B, 0x00, 0x01, 0}}},
|
|
|
|
|
{"dfu", {MODE_DFU, {}}},
|
|
|
|
|
{"digilent", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0xe8, 0xeb, 0x00, 0x60, 0}}},
|
|
|
|
|
{"digilent_b", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_B, 0xe8, 0xeb, 0x00, 0x60, 0}}},
|
|
|
|
|
{"digilent_hs2", {MODE_FTDI_SERIAL, {0x0403, 0x6014, INTERFACE_A, 0xe8, 0xeb, 0x00, 0x60, 0}}},
|
|
|
|
|
{"digilent_hs3", {MODE_FTDI_SERIAL, {0x0403, 0x6014, INTERFACE_A, 0x88, 0x8B, 0x20, 0x30, 0}}},
|
|
|
|
|
{"digilent_ad", {MODE_FTDI_SERIAL, {0x0403, 0x6014, INTERFACE_A, 0x08, 0x0B, 0x80, 0x80, 0}}},
|
|
|
|
|
{"dirtyJtag", {MODE_DIRTYJTAG, {}}},
|
|
|
|
|
{"efinix_spi_ft4232", {MODE_FTDI_SERIAL, {0x0403, 0x6011, INTERFACE_A, 0x08, 0x8B, 0x00, 0x00, 0}}},
|
|
|
|
|
{"efinix_jtag_ft4232", {MODE_FTDI_SERIAL, {0x0403, 0x6011, INTERFACE_B, 0x08, 0x8B, 0x00, 0x00, 0}}},
|
|
|
|
|
{"efinix_spi_ft2232", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0x08, 0x8B, 0x00, 0x00, 0}}},
|
|
|
|
|
{"ft2232", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0x08, 0x0B, 0x08, 0x0B, 0}}},
|
|
|
|
|
{"ft2232_b", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_B, 0x08, 0x0B, 0x00, 0x00, 0}}},
|
|
|
|
|
{"ft231X", {MODE_FTDI_BITBANG, {0x0403, 0x6015, INTERFACE_A, 0x00, 0x00, 0x00, 0x00, 0}}},
|
|
|
|
|
{"ft232", {MODE_FTDI_SERIAL, {0x0403, 0x6014, INTERFACE_A, 0x08, 0x0B, 0x08, 0x0B, 0}}},
|
|
|
|
|
{"ft232RL", {MODE_FTDI_BITBANG, {0x0403, 0x6001, INTERFACE_A, 0x08, 0x0B, 0x08, 0x0B, 0}}},
|
|
|
|
|
{"ft4232", {MODE_FTDI_SERIAL, {0x0403, 0x6011, INTERFACE_A, 0x08, 0x0B, 0x08, 0x0B, 0}}},
|
|
|
|
|
{"ecpix5-debug", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0xF8, 0xFB, 0xFF, 0xFF, 0}}},
|
|
|
|
|
{"jlink", {MODE_JLINK, {0x1366, 0x0105, 0, 0, 0, 0, 0, 0}}},
|
|
|
|
|
{"jtag-smt2-nc", {MODE_FTDI_SERIAL, {0x0403, 0x6014, INTERFACE_A, 0xe8, 0xeb, 0x00, 0x60, 0}}},
|
2022-08-29 21:03:30 +02:00
|
|
|
{"lpc-link2", {MODE_CMSISDAP, {0x1fc9, 0x0090, 0, 0, 0, 0, 0, 0}}},
|
2022-06-02 08:51:47 +02:00
|
|
|
{"orbtrace", {MODE_CMSISDAP, {0x1209, 0x3443, 0, 0, 0, 0, 0, 0}}},
|
|
|
|
|
{"papilio", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0x08, 0x0B, 0x09, 0x0B, 0}}},
|
2022-08-09 18:21:29 +02:00
|
|
|
{"steppenprobe", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0x58, 0xFB, 0x00, 0x99, 0}}},
|
2022-06-02 08:51:47 +02:00
|
|
|
{"tigard", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_B, 0x08, 0x3B, 0x00, 0x00, 0}}},
|
|
|
|
|
{"usb-blaster", {MODE_USBBLASTER, {0x09Fb, 0x6001, 0, 0, 0, 0, 0, 0}}},
|
|
|
|
|
{"usb-blasterII", {MODE_USBBLASTER, {0x09Fb, 0x6810, 0, 0, 0, 0, 0, 0}}},
|
|
|
|
|
{"xvc-client", {MODE_XVC_CLIENT, {}}},
|
2022-07-22 09:58:59 +02:00
|
|
|
#ifdef ENABLE_LIBGPIOD
|
2022-05-23 20:16:48 +02:00
|
|
|
{"libgpiod", {MODE_LIBGPIOD_BITBANG, {}}},
|
2022-07-22 09:58:59 +02:00
|
|
|
#endif
|
2019-09-26 18:29:20 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|