jtagInterface/cables: introduce getClkFreq

This commit is contained in:
Gwenhael Goavec-Merou 2021-05-15 08:32:51 +02:00
parent c4e58073c1
commit 610a76f653
3 changed files with 20 additions and 0 deletions

View File

@ -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)

View File

@ -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)
{

View File

@ -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: