Skip to content

Commit

Permalink
jtag: merge init_internal to CTOR, pass verbose to jtag drivers
Browse files Browse the repository at this point in the history
  • Loading branch information
trabucayre committed Jul 30, 2023
1 parent 4bf4b94 commit 75d98d1
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 34 deletions.
46 changes: 19 additions & 27 deletions src/jtag.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,21 +81,6 @@ Jtag::Jtag(const cable_t &cable, const jtag_pins_conf_t *pin_conf,
_state(RUN_TEST_IDLE),
_tms_buffer_size(128), _num_tms(0),
_board_name("nope"), device_index(0)
{
init_internal(cable, dev, serial, pin_conf, clkHZ, firmware_path,
invert_read_edge, ip_adr, port);
detectChain(5);
}

Jtag::~Jtag()
{
free(_tms_buffer);
delete _jtag;
}

void Jtag::init_internal(const cable_t &cable, const string &dev, const string &serial,
const jtag_pins_conf_t *pin_conf, uint32_t clkHZ, const string &firmware_path,
const bool invert_read_edge, const string &ip_adr, int port)
{
switch (cable.type) {
case MODE_ANLOGICCABLE:
Expand All @@ -104,56 +89,56 @@ void Jtag::init_internal(const cable_t &cable, const string &dev, const string &
case MODE_FTDI_BITBANG:
if (pin_conf == NULL)
throw std::exception();
_jtag = new FtdiJtagBitBang(cable, pin_conf, dev, serial, clkHZ, _verbose);
_jtag = new FtdiJtagBitBang(cable, pin_conf, dev, serial, clkHZ, verbose);
break;
case MODE_FTDI_SERIAL:
_jtag = new FtdiJtagMPSSE(cable, dev, serial, clkHZ,
invert_read_edge, _verbose);
invert_read_edge, verbose);
break;
case MODE_CH552_JTAG:
_jtag = new CH552_jtag(cable, dev, serial, clkHZ, _verbose);
_jtag = new CH552_jtag(cable, dev, serial, clkHZ, verbose);
break;
case MODE_CH347:
_jtag = new CH347Jtag(clkHZ, _verbose);
_jtag = new CH347Jtag(clkHZ, verbose);
break;
case MODE_DIRTYJTAG:
_jtag = new DirtyJtag(clkHZ, _verbose);
_jtag = new DirtyJtag(clkHZ, verbose);
break;
case MODE_JLINK:
_jtag = new Jlink(clkHZ, _verbose, cable.vid, cable.pid);
_jtag = new Jlink(clkHZ, verbose, cable.vid, cable.pid);
break;
case MODE_USBBLASTER:
_jtag = new UsbBlaster(cable, firmware_path, _verbose);
_jtag = new UsbBlaster(cable, firmware_path, verbose);
break;
case MODE_CMSISDAP:
#ifdef ENABLE_CMSISDAP
_jtag = new CmsisDAP(cable, cable.config.index, _verbose);
_jtag = new CmsisDAP(cable, cable.config.index, verbose);
break;
#else
std::cerr << "Jtag: support for cmsisdap was not enabled at compile time" << std::endl;
throw std::exception();
#endif
case MODE_XVC_CLIENT:
#ifdef ENABLE_XVC
_jtag = new XVC_client(ip_adr, port, clkHZ, _verbose);
_jtag = new XVC_client(ip_adr, port, clkHZ, verbose);
break;
#else
std::cerr << "Jtag: support for xvc-client was not enabled at compile time" << std::endl;
throw std::exception();
#endif
#ifdef ENABLE_LIBGPIOD
case MODE_LIBGPIOD_BITBANG:
_jtag = new LibgpiodJtagBitbang(pin_conf, dev, clkHZ, _verbose);
_jtag = new LibgpiodJtagBitbang(pin_conf, dev, clkHZ, verbose);
break;
#endif
#ifdef ENABLE_JETSONNANOGPIO
case MODE_JETSONNANO_BITBANG:
_jtag = new JetsonNanoJtagBitbang(pin_conf, dev, clkHZ, _verbose);
_jtag = new JetsonNanoJtagBitbang(pin_conf, dev, clkHZ, verbose);
break;
#endif
#ifdef ENABLE_REMOTEBITBANG
case MODE_REMOTEBITBANG:
_jtag = new RemoteBitbang_client(ip_adr, port, _verbose);
_jtag = new RemoteBitbang_client(ip_adr, port, verbose);
break;
#endif
default:
Expand All @@ -163,8 +148,15 @@ void Jtag::init_internal(const cable_t &cable, const string &dev, const string &

_tms_buffer = (unsigned char *)malloc(sizeof(unsigned char) * _tms_buffer_size);
memset(_tms_buffer, 0, _tms_buffer_size);

detectChain(5);
}

Jtag::~Jtag()
{
free(_tms_buffer);
delete _jtag;
}
int Jtag::detectChain(int max_dev)
{
char message[256];
Expand Down
8 changes: 1 addition & 7 deletions src/jtag.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,6 @@ class Jtag {
JtagInterface *_jtag;

private:
void init_internal(const cable_t &cable, const std::string &dev,
const std::string &serial,
const jtag_pins_conf_t *pin_conf, uint32_t clkHZ,
const std::string &firmware_path,
const bool invert_read_edge,
const std::string &ip_adr, int port);
/*!
* \brief search in fpga_list and misc_dev_list for a device with idcode
* if found insert idcode and irlength in _devices_list and
Expand All @@ -124,7 +118,7 @@ class Jtag {
* \return false if not found, true otherwise
*/
bool search_and_insert_device_with_idcode(uint32_t idcode);
int8_t _verbose;
bool _verbose;
int _state;
int _tms_buffer_size;
int _num_tms;
Expand Down

0 comments on commit 75d98d1

Please sign in to comment.