• 0
Grensv

open device problems with djtgcfg

Question

Due to a migration from windows 7 to Linux CenOS6.10, I experience driver problems with adept (and of course also ISE14.7). CentOS6.10 runs through Virtualbox 6.0.4 with appropriate guest additions, and filters for selected Digilent USB devices.

I have followed Xilinx procedure AR# 68233 for driver installation with CentOS6, and installed latest adept runtime and utilities, with the rpms provided.

The installation messages of Xilinx drivers are all OK :

--install_xpc4drvr rc = 0
--Module windrvr6 is running.
--Module xpc4drvr is running.
--Note: By default, the file permission of /dev/windrvr6 is enabled for the root user only
  and must be changed to allow access to other users.

--File /sbin/fxload exists.
--Digilent Return code = 0
--Xilinx Return code = 0
--Return code = 0
--Driver installation successful.

I use 3 products :

  • Spartan 3 starter board, with JTAG-USB digilent cable
  • Basys board with Spartan3 and integrated usb JTAG
  • CoolRunnerII board

All cables enumerate with djtgcfg enum, but only CoolRunnerII can init. Both spartan3 boards return the same error :

ERROR: unable to open device "DOnbUsb" or ERROR: unable to open device "DCabUsb"

Here is the dump of djtgcfg init commands :

[root@localhost ~]# djtgcfg enum
Found 1 device(s)

Device: Cr2s2
    Product Name:   CoolRunner 2 Starter 2
    User Name:      Cr2s2
    Serial Number:  10146D458839
[root@localhost ~]# djtgcfg -d Cr2s2 init
Initializing scan chain...
Found Device ID: 16d4c093

Found 1 device(s):
    Device 0: XC2C256


[root@localhost ~]# djtgcfg enum
Found 1 device(s)

Device: DOnbUsb
    Product Name:   DOnbUsb1 V2.0
    User Name:      DOnbUsb
    Serial Number:  10054D136360
[root@localhost ~]# djtgcfg -d DOnbUsb init
ERROR: unable to open device "DOnbUsb"


[root@localhost ~]# djtgcfg enum
Found 1 device(s)

Device: DCabUsb
    Product Name:   DCabUsb1 V2.0
    User Name:      DCabUsb
    Serial Number:  50003C009256
[root@localhost ~]# djtgcfg -d DCabUsb init
ERROR: unable to open device "DCabUsb"

Thanks for your Help.

Vincent.

 

 

 

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Hi Jon, thanks for your. quick answer.

I have indeed installed the plugins, and I tested it : from ISE14.7 / impact, I can successfully program the Digilent CoolRunnerII board.

But the results are the same as with the inline adept2 utility (djtgcfg) for the Basys spartan3 and the Spartan3 boards : impact returns a communication failure, and I don't even see the device because the JTAG chain won't initialize.

Best regards,

Vincent.

Share this post


Link to post
Share on other sites
  • 0

Hi @Grensv,

To clarify you are using windows 7 with CentOS 6.10 running through Virtualbox 6.0.4 along with ISE14.7.

I talked to one of our design engineers about this thread and they would like you to do the following:

1. In the terminal run the command "export ADEPT_RT_LOGDETAIL=1"

2. In the terminal run the command "export ADEPT_RT_LOGFILE=/home/YOUR_USERNAME_HERE/adept.log"

3. In the terminal re-run "djtgcfg enum". If it reports an error then a log file should be generated in the location that you specified in step 2. Please post the content of the error log here.

best regards,

Jon

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Hi Jon,

8 hours ago, jpeyron said:

To clarify you are using windows 7 with CentOS 6.10 running through Virtualbox 6.0.4 along with ISE14.7.

Not exactly : I am currently using a UBUNTU 16.04 Host machine,  with CentOS6.10 running through Virtualbox 6.0.4 along with ISE14.7.

I will deploy this CENTOS virtual machine on Windows10 host machines. Our system administrator wants to get rid of win7 machines, and ISE14.7 on win10 doesn't support the old Xilinx devices we use. I will test today on a Win10 host machine, to check that my virtual machine works identically.

8 hours ago, jpeyron said:

1. In the terminal run the command "export ADEPT_RT_LOGDETAIL=1"

2. In the terminal run the command "export ADEPT_RT_LOGFILE=/home/YOUR_USERNAME_HERE/adept.log"

3. In the terminal re-run "djtgcfg enum". If it reports an error then a log file should be generated in the location that you specified in step 2. Please post the content of the error log here

Hereunder the log contents for the 3 Digilent boards I need to test :

CoolRunnerII board works OK, no adept.log was generated

BASYS with Spartan3, enum :

System Time     Process     Thread        ERC     ERC String                  Message
814856184       2754        2280916768    3075    ercControlTransferFailed    USBC:FGetPDID
814856196       2754        2280916768    3075    ercControlTransferFailed    USBC:FGetDCAPCur
814856209       2754        2280916768    3075    ercControlTransferFailed    USBC:FGetPDID
814856211       2754        2280916768    3075    ercControlTransferFailed    USBC:FGetPDID
814856224       2754        2280916768    3075    ercControlTransferFailed    USBC:FGetDCAPCur

Spartan-3 board with JTAG-USB cable, enum :

System Time     Process     Thread        ERC     ERC String                  Message
815554965       2803        1148573472    3075    ercControlTransferFailed    USBC:FGetPDID
815554990       2803        1148573472    3075    ercControlTransferFailed    USBC:FGetPDID
815554992       2803        1148573472    3075    ercControlTransferFailed    USBC:FGetPDID

 

I also ran init commands ("djtgcfg -d XXXX init") for both problematic boards, hereunder the log contents:

BASYS with Spartan3, JTAG init :

System Time     Process     Thread        ERC     ERC String                  Message
816322054       2854        2560206624    3075    ercControlTransferFailed    USBC:FGetPDID
816322067       2854        2560206624    3075    ercControlTransferFailed    USBC:FGetDCAPCur
816322070       2854        2560206624    3075    ercControlTransferFailed    USBC:FGetFWVER
816322771       2854        2560206624    3072    ercConnectionFailed         DVTP1::FTransReset FTransWait endpCmd failed
816322771       2854        2560206624    3080    ercInternalError            USBC::HifOpenEx DVT::FConnect failed
816322771       2854        2560206624    3080    ercInternalError            DVT::Disconnect pdvtopn->PnmtxFromIdvto
816322773       2854        2560206624    3072    ercConnectionFailed         DpcOpen - device not found

 

Spartan-3 board with JTAG-USB cable, JTAG init, :

System Time     Process     Thread        ERC     ERC String                  Message
816070548       2834        2566674208    3075    ercControlTransferFailed    USBC:FGetPDID
816070569       2834        2566674208    3075    ercControlTransferFailed    USBC:FGetFWVER
816071273       2834        2566674208    3072    ercConnectionFailed         DVTP1::FTransReset FTransWait endpCmd failed
816071274       2834        2566674208    3080    ercInternalError            USBC::HifOpenEx DVT::FConnect failed
816071274       2834        2566674208    3080    ercInternalError            DVT::Disconnect pdvtopn->PnmtxFromIdvto
816071277       2834        2566674208    3072    ercConnectionFailed         DpcOpen - device not found

Best regards,

Vincent.

Edited by Grensv
added init command logs

Share this post


Link to post
Share on other sites
  • 0

HI @Grensv,

Our design engineer looked at the attached logs and the endpCmd failed error message suggests a USB data transfer error. They suspect that this is related to using Virtual Box.  Their only suggestion is to try running the dadutil or djtgcfg commands with sudo and see if it’s a permissions problem.

best regards,

Jon

Share this post


Link to post
Share on other sites
  • 0

Hi Jon,

As you can see in my first post, djtgcfg command is run as root user. sudo is then useless. It is strange that it works OK for the CoolRunner board and not for the other JTAG interfaces. I suspect that the USB chips are not the same and don't use the same driver.

Since no solution was found I started to test and try various things like using older driver versions.

I also tried it on the PCs with Win10 Host OS, with the exact same VirtualBox (V6.0.4). And It works perfectly with all the Digilent boards we use ! It is exactly the same virtual machine as the one I used for the previous tests, which fails for Basys and Spartan3 boards with the Ubuntu 16.04 Host OS. I have never experienced this before, but it seems that the behavior of USB devices under the VM can depend on the Host OS.

I won't dig deeper in this problem, since my VM is intended to work on Win10 hosts.

Best regards,

Vincent.

Share this post


Link to post
Share on other sites
  • 0

I use Centos 6 with ISE 14.7 and Adept without issues. I don't have an answer for your problems with VirtualBox hosts but I will point out that Centos 6 uses Linux 2.6.32 which has fundamental differences from modern Ubuntu releases based on later Linux kernel releases. It wouldn't surprise me if this is a problem for USB drivers.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now