Jtagconfig and usbip

Hi,

I have connected my Cyclone V FPGA boards to a raspberry in my lab.
Using usbip I managed to make the USB devices, serial ports and jtagblaster ports, available on my linux desktop in my office.
I do see USB devices 0403:6001 (FT232 USB UART) and 09fb:6810 (Unknown) on my desktop machine. The latter being the devices for programming.
The UART devices are functional and work fine.

Then I start “jtagd” using “jtagconfig -n”.
What happens is that jtagconfig/jtagd modifies the USB devices: it changes from 09fb:6810 to 09fb:6010. Would be nice to understand why.
When a board is physically connected this works fine.
When I’m using a usbip forwarded USB device it is being unbound as a consequence. On the server however I see that device IDs are indeed changed from 09fb:6810 to 09fb:6010.

Anyone have an idea why this happens?
What is jtagconfig doing in detail? I know for a fact that it changes 09fb:6810 into 09fb:6010 device, but why?

After re-establishing the usbip connections for 09fb:6010 still jtagconfig and the jtagd do not recognize the devices:

$ jtagconfig
Error when scanning hardware - Server error
$

In the syslog I found (BTW I have 5 boards connected and get these errors 3 times):

May 4 18:21:02 joel kernel: [456806.223938] vhci_hcd: unlink->seqnum 764216
May 4 18:21:02 joel kernel: [456806.223942] vhci_hcd: urb->status -104
May 4 18:21:02 joel kernel: [456806.223986] usb 9-1: usbfs: USBDEVFS_CONTROL failed cmd jtagd rqt 128 rq 8 len 1 ret -110

Two other boards seems to be recognized according the syslog, but jtagconfig does not report them. Why?
For all five devices I observe in usbview correct settings, like Manufacturer: Altera and 09fb:6010

I would appreciate any help!
Jos

Some progress, but not yet solved (if possible at all):
$ jtagconfig --enum

  1. DE-SoC [7-4]
    Unable to lock chain - Hardware not attached
  2. DE-SoC [7-5]
    Unable to lock chain - Hardware not attached
  3. DE-SoC [7-7]
    Unable to lock chain - Bad port name
  4. DE-SoC [9-1]
    Unable to lock chain - Bad port name
  5. USB-BlasterII [7-9]
    Unable to lock chain - Bad port name
    $

Solved, now jtagconfig recognizes the boards and I can program a device.

To fix it you need to use the dwc2 kernel module instead of dwc_otg.
I added ‘dtoverlay=dwc2’ to /boot/config.txt and added ‘modules-load=dwc2’ to /boot/cmdline.txt on the raspberry.

$ jtagconfig

  1. DE-SoC [7-3]
    4BA00477 SOCVHPS
    02D010DD 5CSE(BA4|MA4)/5CSXFC4C6

  2. DE-SoC [7-5]
    4BA00477 SOCVHPS
    02D010DD 5CSE(BA4|MA4)/5CSXFC4C6

  3. DE-SoC [7-7]
    4BA00477 SOCVHPS
    02D020DD 5CSEBA6(.|ES)/5CSEMA6/…

  4. DE-SoC [9-1]
    4BA00477 SOCVHPS
    02D120DD 5CSE(BA5|MA5)/5CSTFD5D5/…

  5. USB-BlasterII [7-9]
    4BA00477 SOCVHPS
    02D020DD 5CSEBA6(.|ES)/5CSEMA6/…
    020A40DD 5M(1270ZF324|2210Z)/EPM2210