diff --git a/src/jtag.cpp b/src/jtag.cpp index 914b9c4..4bd6f72 100644 --- a/src/jtag.cpp +++ b/src/jtag.cpp @@ -70,7 +70,7 @@ using namespace std; Jtag::Jtag(cable_t &cable, const jtag_pins_conf_t *pin_conf, string dev, const string &serial, uint32_t clkHZ, int8_t verbose, - const string &ip_adr, + const string &ip_adr, int port, const bool invert_read_edge, const string &firmware_path): _verbose(verbose > 1), _state(RUN_TEST_IDLE), @@ -78,7 +78,7 @@ Jtag::Jtag(cable_t &cable, const jtag_pins_conf_t *pin_conf, string dev, _board_name("nope"), device_index(0) { init_internal(cable, dev, serial, pin_conf, clkHZ, firmware_path, - invert_read_edge, ip_adr); + invert_read_edge, ip_adr, port); detectChain(5); } @@ -90,7 +90,7 @@ Jtag::~Jtag() void Jtag::init_internal(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) + const bool invert_read_edge, const string &ip_adr, int port) { switch (cable.type) { case MODE_ANLOGICCABLE: @@ -129,7 +129,7 @@ void Jtag::init_internal(cable_t &cable, const string &dev, const string &serial #endif case MODE_XVC_CLIENT: #ifdef ENABLE_XVC - _jtag = new XVC_client(ip_adr, 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; diff --git a/src/jtag.hpp b/src/jtag.hpp index 5829864..6218bfc 100644 --- a/src/jtag.hpp +++ b/src/jtag.hpp @@ -19,7 +19,7 @@ class Jtag { public: Jtag(cable_t &cable, const jtag_pins_conf_t *pin_conf, std::string dev, const std::string &serial, uint32_t clkHZ, int8_t verbose, - const std::string &ip_adr, + const std::string &ip_adr, int port, const bool invert_read_edge = false, const std::string &firmware_path = ""); ~Jtag(); @@ -108,7 +108,8 @@ class Jtag { 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); + 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 diff --git a/src/main.cpp b/src/main.cpp index 03fc9c2..05785d3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -405,8 +405,8 @@ int main(int argc, char **argv) Jtag *jtag; try { jtag = new Jtag(cable, &pins_config, args.device, args.ftdi_serial, - args.freq, args.verbose, args.ip_adr, args.invert_read_edge, - args.probe_firmware); + args.freq, args.verbose, args.ip_adr, args.port, + args.invert_read_edge, args.probe_firmware); } catch (std::exception &e) { printError("JTAG init failed with: " + string(e.what())); return EXIT_FAILURE; diff --git a/src/xvc_client.cpp b/src/xvc_client.cpp index 077024b..5572f23 100644 --- a/src/xvc_client.cpp +++ b/src/xvc_client.cpp @@ -27,10 +27,11 @@ using namespace std; -XVC_client::XVC_client(const std::string &ip_addr, uint32_t clkHz, - int8_t verbose): +XVC_client::XVC_client(const std::string &ip_addr, int port, + uint32_t clkHz, int8_t verbose): _verbose(verbose > 0), _xfer_buf(NULL), _tms(NULL), _tditdo(NULL), - _num_bits(0), _last_tms(0), _last_tdi(0), _buffer_size(0), _sock(0) + _num_bits(0), _last_tms(0), _last_tdi(0), _buffer_size(0), _sock(0), + _port(port) { if (!open_connection(ip_addr)) throw std::runtime_error("connection failure"); @@ -221,7 +222,7 @@ bool XVC_client::open_connection(const string &ip_addr) { struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_port = htons(2542); + addr.sin_port = htons(_port); addr.sin_addr.s_addr = inet_addr(ip_addr.c_str()); _sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); diff --git a/src/xvc_client.hpp b/src/xvc_client.hpp index a1a1e67..9a64ac8 100644 --- a/src/xvc_client.hpp +++ b/src/xvc_client.hpp @@ -22,7 +22,8 @@ class XVC_client: public JtagInterface { * \param[in] verbose: verbose level -1 quiet, 0 normal, * 1 verbose, 2 debug */ - XVC_client(const std::string &ip_addr, uint32_t clkHz, int8_t verbose); + XVC_client(const std::string &ip_addr, int port, uint32_t clkHz, + int8_t verbose); ~XVC_client(); @@ -120,5 +121,6 @@ class XVC_client: public JtagInterface { std::string _server_name; std::string _server_vers; int _sock; + int _port; /*!< target port */ }; #endif // SRC_XVC_CLIENT_HPP_