diff --git a/src/jtagInterface.hpp b/src/jtagInterface.hpp index ff93d1f..4278daa 100644 --- a/src/jtagInterface.hpp +++ b/src/jtagInterface.hpp @@ -33,6 +33,7 @@ class JtagInterface { virtual ~JtagInterface() {} virtual int setClkFreq(uint32_t clkHZ) = 0; + virtual uint32_t getClkFreq() { return 0;} /*! * \brief flush TMS internal buffer (ie. transmit to converter) diff --git a/src/usbBlaster.cpp b/src/usbBlaster.cpp index 76cf09a..c5d364c 100644 --- a/src/usbBlaster.cpp +++ b/src/usbBlaster.cpp @@ -96,6 +96,11 @@ int UsbBlaster::setClkFreq(uint32_t clkHZ) return ll_driver->setClkFreq(clkHZ); } +uint32_t UsbBlaster::getClkFreq() +{ + return ll_driver->getClkFreq(); +} + int UsbBlaster::writeTMS(uint8_t *tms, int len, bool flush_buffer) { int ret; @@ -386,6 +391,11 @@ int UsbBlasterI::setClkFreq(uint32_t clkHZ) return 1; } +uint32_t UsbBlasterI::getClkFreq() +{ + return 24e6; +} + int UsbBlasterI::write(uint8_t *wr_buf, int wr_len, uint8_t *rd_buf, int rd_len) { @@ -454,6 +464,11 @@ int UsbBlasterII::setClkFreq(uint32_t clkHZ) return 1; } +uint32_t UsbBlasterII::getClkFreq() +{ + return 24e6; +} + int UsbBlasterII::write(uint8_t *wr_buf, int wr_len, uint8_t *rd_buf, int rd_len) { diff --git a/src/usbBlaster.hpp b/src/usbBlaster.hpp index 689aa91..d82a32a 100644 --- a/src/usbBlaster.hpp +++ b/src/usbBlaster.hpp @@ -38,6 +38,7 @@ class UsbBlaster_ll { public: virtual ~UsbBlaster_ll() {} virtual int setClkFreq(uint32_t clkHZ) = 0; + virtual uint32_t getClkFreq() = 0; virtual int write(uint8_t *wr_buf, int wr_len, uint8_t *rd_buf, int rd_len) = 0; }; @@ -56,6 +57,7 @@ class UsbBlaster : public JtagInterface { virtual ~UsbBlaster(); int setClkFreq(uint32_t clkHZ) override; + uint32_t getClkFreq() override; /*! * \brief drive TMS to move in JTAG state machine @@ -117,6 +119,7 @@ class UsbBlasterI: public UsbBlaster_ll { virtual ~UsbBlasterI(); int setClkFreq(uint32_t clkHZ) override; + uint32_t getClkFreq() override; int write(uint8_t *wr_buf, int wr_len, uint8_t *rd_buf, int rd_len) override; private: @@ -139,6 +142,7 @@ class UsbBlasterII: public UsbBlaster_ll { virtual ~UsbBlasterII(); int setClkFreq(uint32_t clkHZ) override; + uint32_t getClkFreq() override; int write(uint8_t *wr_buf, int wr_len, uint8_t *rd_buf, int rd_len) override; private: