From 1ef72b0da688a26457dc800b441ad5a9125c2701 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Sat, 7 Mar 2020 07:19:20 +0100 Subject: [PATCH] add interface id in mpsse_bit_config. --- src/cable.hpp | 12 +++++++----- src/ftdiJtagMPSSE.cpp | 8 ++++---- src/ftdiJtagMPSSE.hpp | 4 ++-- src/ftdipp_mpsse.hpp | 1 + src/jtag.cpp | 16 +++++++--------- src/jtag.hpp | 7 +++---- src/main.cpp | 4 ++-- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/cable.hpp b/src/cable.hpp index 46f036a..e191097 100644 --- a/src/cable.hpp +++ b/src/cable.hpp @@ -2,14 +2,16 @@ #define CABLE_HPP #include +#include #include "ftdipp_mpsse.hpp" -static std::map cable_list = { - {"digilent", {0x0403, 0x6010, 0xe8, 0xeb, 0x00, 0x60}}, - {"digilent_hs2", {0x0403, 0x6014, 0xe8, 0xeb, 0x00, 0x60}}, - {"digilent_hs3", {0x0403, 0x6014, 0x88, 0x8B, 0x20, 0x30}}, - {"ft2232", {0x0403, 0x6010, 0x08, 0x0B, 0x08, 0x0B}} +static std::map cable_list = { + {"digilent", {0x0403, 0x6010, INTERFACE_A, 0xe8, 0xeb, 0x00, 0x60}}, + {"digilent_hs2", {0x0403, 0x6014, INTERFACE_A, 0xe8, 0xeb, 0x00, 0x60}}, + {"digilent_hs3", {0x0403, 0x6014, INTERFACE_A, 0x88, 0x8B, 0x20, 0x30}}, + {"ft2232", {0x0403, 0x6010, INTERFACE_A, 0x08, 0x0B, 0x08, 0x0B}}, + {"ft232RL", {0x0403, 0x6001, INTERFACE_A, 0x08, 0x0B, 0x08, 0x0B}} }; #endif diff --git a/src/ftdiJtagMPSSE.cpp b/src/ftdiJtagMPSSE.cpp index c9420fa..ef017b4 100644 --- a/src/ftdiJtagMPSSE.cpp +++ b/src/ftdiJtagMPSSE.cpp @@ -41,15 +41,15 @@ using namespace std; #endif FtdiJtagMPSSE::FtdiJtagMPSSE(const FTDIpp_MPSSE::mpsse_bit_config &cable, - string dev, unsigned char interface, uint32_t clkHZ, bool verbose): - FTDIpp_MPSSE(dev, interface, clkHZ, verbose), _ch552WA(false) + string dev, uint32_t clkHZ, bool verbose): + FTDIpp_MPSSE(dev, cable.interface, clkHZ, verbose), _ch552WA(false) { init_internal(cable); } FtdiJtagMPSSE::FtdiJtagMPSSE(const FTDIpp_MPSSE::mpsse_bit_config &cable, - unsigned char interface, uint32_t clkHZ, bool verbose): - FTDIpp_MPSSE(cable.vid, cable.pid, interface, clkHZ, verbose), + uint32_t clkHZ, bool verbose): + FTDIpp_MPSSE(cable.vid, cable.pid, cable.interface, clkHZ, verbose), _ch552WA(false) { init_internal(cable); diff --git a/src/ftdiJtagMPSSE.hpp b/src/ftdiJtagMPSSE.hpp index e6f058b..3b03721 100644 --- a/src/ftdiJtagMPSSE.hpp +++ b/src/ftdiJtagMPSSE.hpp @@ -35,9 +35,9 @@ class FtdiJtagMPSSE : public JtagInterface, private FTDIpp_MPSSE { public: FtdiJtagMPSSE(const FTDIpp_MPSSE::mpsse_bit_config &cable, std::string dev, - unsigned char interface, uint32_t clkHZ, bool verbose = false); + uint32_t clkHZ, bool verbose = false); FtdiJtagMPSSE(const FTDIpp_MPSSE::mpsse_bit_config &cable, - unsigned char interface, uint32_t clkHZ, bool verbose); + uint32_t clkHZ, bool verbose); virtual ~FtdiJtagMPSSE(); int setClkFreq(uint32_t clkHZ) override { diff --git a/src/ftdipp_mpsse.hpp b/src/ftdipp_mpsse.hpp index 950cdb6..e8f665b 100644 --- a/src/ftdipp_mpsse.hpp +++ b/src/ftdipp_mpsse.hpp @@ -14,6 +14,7 @@ class FTDIpp_MPSSE { typedef struct { int vid; int pid; + int interface; int bit_low_val; int bit_low_dir; int bit_high_val; diff --git a/src/jtag.cpp b/src/jtag.cpp index 1181aa2..c94cb20 100644 --- a/src/jtag.cpp +++ b/src/jtag.cpp @@ -64,23 +64,22 @@ using namespace std; */ Jtag::Jtag(FTDIpp_MPSSE::mpsse_bit_config &cable, string dev, - unsigned char interface, uint32_t clkHZ, bool verbose): + uint32_t clkHZ, bool verbose): _verbose(verbose), _state(RUN_TEST_IDLE), _tms_buffer_size(128), _num_tms(0), _board_name("nope") { - init_internal(cable, interface, clkHZ); + init_internal(cable, clkHZ); } -Jtag::Jtag(FTDIpp_MPSSE::mpsse_bit_config &cable, - unsigned char interface, uint32_t clkHZ, bool verbose): +Jtag::Jtag(FTDIpp_MPSSE::mpsse_bit_config &cable, uint32_t clkHZ, bool verbose): _verbose(verbose), _state(RUN_TEST_IDLE), _tms_buffer_size(128), _num_tms(0), _board_name("nope") { - init_internal(cable, interface, clkHZ); + init_internal(cable, clkHZ); } Jtag::~Jtag() @@ -89,10 +88,9 @@ Jtag::~Jtag() delete _jtag; } -void Jtag::init_internal(FTDIpp_MPSSE::mpsse_bit_config &cable, - unsigned char interface, uint32_t clkHZ) +void Jtag::init_internal(FTDIpp_MPSSE::mpsse_bit_config &cable, uint32_t clkHZ) { - _jtag = new FtdiJtagMPSSE(cable, interface, clkHZ, _verbose); + _jtag = new FtdiJtagMPSSE(cable, clkHZ, _verbose); _tms_buffer = (unsigned char *)malloc(sizeof(unsigned char) * _tms_buffer_size); bzero(_tms_buffer, _tms_buffer_size); @@ -144,7 +142,7 @@ int Jtag::flushTMS(bool flush_buffer) if (_num_tms != 0) { display("%s: %d %x\n", __func__, _num_tms, _tms_buffer[0]); - _jtag->storeTMS(_tms_buffer, _num_tms); + _jtag->storeTMS(_tms_buffer, _num_tms); /* reset buffer and number of bits */ bzero(_tms_buffer, _tms_buffer_size); diff --git a/src/jtag.hpp b/src/jtag.hpp index 0c9a706..aa411f3 100644 --- a/src/jtag.hpp +++ b/src/jtag.hpp @@ -28,8 +28,8 @@ class Jtag { public: Jtag(FTDIpp_MPSSE::mpsse_bit_config &cable, std::string dev, - unsigned char interface, uint32_t clkHZ, bool verbose = false); - Jtag(FTDIpp_MPSSE::mpsse_bit_config &cable, unsigned char interface, + uint32_t clkHZ, bool verbose = false); + Jtag(FTDIpp_MPSSE::mpsse_bit_config &cable, uint32_t clkHZ, bool verbose); ~Jtag(); @@ -80,8 +80,7 @@ class Jtag { void setVerbose(bool verbose){_verbose = verbose;} private: - void init_internal(FTDIpp_MPSSE::mpsse_bit_config &cable, - unsigned char interface, uint32_t clkHZ); + void init_internal(FTDIpp_MPSSE::mpsse_bit_config &cable, uint32_t clkHZ); bool _verbose; int _state; int _tms_buffer_size; diff --git a/src/main.cpp b/src/main.cpp index 50f53de..08527b8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -124,9 +124,9 @@ int main(int argc, char **argv) /* jtag base */ Jtag *jtag; if (args.device == "-") - jtag = new Jtag(cable, 1, 6000000, false); + jtag = new Jtag(cable, 6000000, false); else - jtag = new Jtag(cable, args.device, 1, 6000000, false); + jtag = new Jtag(cable, args.device, 6000000, false); /* chain detection */ vector listDev;