From b5f2506fd101532703ee8532658334c36a55c07d Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Sat, 12 Jun 2021 08:40:40 +0200 Subject: [PATCH] clkHZ: be more generic --- src/anlogicCable.cpp | 2 ++ src/ftdiJtagBitbang.cpp | 2 +- src/ftdiJtagMPSSE.hpp | 2 ++ src/ftdipp_mpsse.cpp | 2 ++ src/ftdipp_mpsse.hpp | 1 + src/jtagInterface.hpp | 4 +++- 6 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/anlogicCable.cpp b/src/anlogicCable.cpp index 032e603..e9843f3 100644 --- a/src/anlogicCable.cpp +++ b/src/anlogicCable.cpp @@ -145,6 +145,8 @@ int AnlogicCable::setClkFreq(uint32_t clkHZ) printWarn("Jtag frequency : requested " + std::to_string(req_freq) + "Hz -> real " + std::to_string(clkHZ) + "Hz"); + _clkHZ = clkHZ; + return clkHZ; } diff --git a/src/ftdiJtagBitbang.cpp b/src/ftdiJtagBitbang.cpp index fd937d6..e15cdb2 100644 --- a/src/ftdiJtagBitbang.cpp +++ b/src/ftdiJtagBitbang.cpp @@ -76,7 +76,7 @@ FtdiJtagBitBang::FtdiJtagBitBang(const FTDIpp_MPSSE::mpsse_bit_config &cable, throw std::runtime_error("_buffer realloc failed\n"); _buffer = ptr; - setClkFreq(_clkHZ); + setClkFreq(clkHZ); init(1, _tck_pin | _tms_pin | _tdi_pin, BITMODE_BITBANG); setBitmode(BITMODE_BITBANG); diff --git a/src/ftdiJtagMPSSE.hpp b/src/ftdiJtagMPSSE.hpp index 5b3282d..1e25599 100644 --- a/src/ftdiJtagMPSSE.hpp +++ b/src/ftdiJtagMPSSE.hpp @@ -42,6 +42,8 @@ class FtdiJtagMPSSE : public JtagInterface, private FTDIpp_MPSSE { return FTDIpp_MPSSE::setClkFreq(clkHZ); } + uint32_t getClkFreq() override {return FTDIpp_MPSSE::getClkFreq();} + /* TMS */ int writeTMS(uint8_t *tms, int len, bool flush_buffer) override; /* clock */ diff --git a/src/ftdipp_mpsse.cpp b/src/ftdipp_mpsse.cpp index be95848..847b60e 100644 --- a/src/ftdipp_mpsse.cpp +++ b/src/ftdipp_mpsse.cpp @@ -294,6 +294,8 @@ int FTDIpp_MPSSE::setClkFreq(uint32_t clkHZ) ftdi_tcioflush(_ftdi); #endif + _clkHZ = real_freq; + return real_freq; } diff --git a/src/ftdipp_mpsse.hpp b/src/ftdipp_mpsse.hpp index 532dce4..f8aabce 100644 --- a/src/ftdipp_mpsse.hpp +++ b/src/ftdipp_mpsse.hpp @@ -22,6 +22,7 @@ class FTDIpp_MPSSE { int init(unsigned char latency, unsigned char bitmask_mode, unsigned char mode); int setClkFreq(uint32_t clkHZ); + uint32_t getClkFreq() { return _clkHZ;} int vid() {return _vid;} int pid() {return _pid;} diff --git a/src/jtagInterface.hpp b/src/jtagInterface.hpp index 4278daa..1006250 100644 --- a/src/jtagInterface.hpp +++ b/src/jtagInterface.hpp @@ -33,7 +33,7 @@ class JtagInterface { virtual ~JtagInterface() {} virtual int setClkFreq(uint32_t clkHZ) = 0; - virtual uint32_t getClkFreq() { return 0;} + virtual uint32_t getClkFreq() {return _clkHZ;} /*! * \brief flush TMS internal buffer (ie. transmit to converter) @@ -80,5 +80,7 @@ class JtagInterface { * \return 1 if success, 0 if nothing to write, -1 is something wrong */ virtual int flush() = 0; + protected: + uint32_t _clkHZ; /*!< current clk frequency */ }; #endif // _JTAGINTERFACE_H_