Jump to content
  • 0

XUP USB-JTAG Programmer


kursatgol

Question

Hi All,

Is there anybody have any experience about XUP (Xilinx University Program) USB-JTAG Programmer Revision-G using with Vivado 2015 or 2018? I have some little experience with Vivado 2015.5 and 2018.1 but regarding my experiences XUP USB-JTAG Programmer is not compatible with Vivado? I tried all ways on Centos-7 OS and the particular script (install_drivers.tar.gz). I aimed to program the Zedboard for petalinux applications developing but no success with XUP USB-JTAG Rev.G and Vivado running on Centos-7. Could you please share any suggestions if you have?

Regards.

Kursat Gol

xup_problem.png

Link to comment
Share on other sites

Recommended Posts

Hi @Edwardz,

I checked back email chain with the previously mentioned engineer and found that the Xilinx install script does not work correctly. This is for Vivado 2017.4, but presuming 2018.2 is set up similarlly, I would try the following (quoted from the engineer in question):

"I just spent some time fiddling around on Windows 10 and finally managed to get it working with Vivado 2017.4. The install script that Xilinx runs as part of cable driver installation does NOT work correctly. Initially the XUP USB JTAG cable would show up in the device manager under "Programming cables" as a "Xilinx Embedded Platform USB Firmware Loader" and would not be found by the Vivado Hardware Manager. I had to right click on “Xilinx Embedded Platform USB Firmware Loader” in the device manager and click “Uinstall”. When the uninstall dialog popped up I checked the box the box that says “Delete the driver software for this device.” And then click ok. Once driver uinstall completed I disconnected the programming cable. I then launched a command prompt in administrator mode and navigated to "C:\Xilinx\Vivado\2017.4\data\xicom\cable_drivers\nt64\dlc10_win7". Once in this directory I ran the following 4 commands:

wdreg -compat -inf %cd%\windrvr6.inf uninstall
wdreg -compat -inf %cd%\xusbdrvr.inf uninstall
wdreg -compat -inf %cd%\windrvr6.inf install
wdreg -compat -inf %cd%\xusbdrvr.inf install

After doing this I connected the cable and Windows loaded two drivers for it: a Jungo driver and a “Xilinx USB Cable” driver under the “Programming cables” section. After this I was able to get Hardware Manager to recognize the device and find the Zynq 7020 that’s on the Zed board. This information is somewhat documented here:

https://forums.xilinx.com/t5/Configuration/Re-Platform-Cable-USB-II-Stopped-Working/td-p/814928"

Let me know how this goes for you.

Thanks,
JColvin

Link to comment
Share on other sites

Hi @JColvin,

My last status is this;

My host PC OS: Win7

Virtualization Platform: Virtualbox 5.2.8 (Extension Pack 5.2.22 has installed for USB 2.0-3.0 support)

Guest VM: Centos 7 - 64 bit

VM USB settings: USB 3.0 enabled

Xilinx Platform: Vivado 2018.1

JTAG Debugger: Digilent Xilinx University Program USB-JTAG debugger

I can connect to FPGA without XUP via hardware manager but i can not connect with JTAG even connect to hw_server. i added the screenshots with xup debugger and without xup debugger.

regards.

kursat

 

with_xup.png

without_xup.png

Link to comment
Share on other sites

Hi @JColvin,

My exact question is that now i can connect via directly to FPGA without xup digilent jtag programmer on zedboard, centos vm, virtualbox and vivado 2018.1 But i couldn't connect with xup digilent jtag programmer on same parameters and conditions. I am suspecting vivado 2018.1 is not supporting Digilent Inc. XUP (Xilinx University Program) JTAG debugger-programmer? Am i right or wrong on my suspicious?

regards

kursat

Link to comment
Share on other sites

Hi @kursatgol,

Based on the previous posts provided in this thread, Vivado 2018.1 does correctly support the XUP USB-JTAG Programming Cable.

The problem is that the Xilinx installer for the cable drivers (at least for Windows 10) does not work correctly, so those drivers needed to be deleted and manually installed in order to work correctly. On Linux based systems the cable drivers are not installed automatically so you have to manually install them yourself through a series of commands (as described in Xilinx's UG973).

If you have already done those steps, we (Digilent) do not have any other advice as to what you can try aside since we do not offer any formal support for getting devices to work in vitual machines; the engineer I mentioned before only happened to try VMware since they already had it installed and it worked for them when they followed the installation instructions from Xilinx documentation.

I'm sorry I couldn't be of more help.

Thanks,
JColvin

Link to comment
Share on other sites

Hi @JColvin,

I tried with fedora 20 64 bit and ISE-DS 14.6 version. Everything was fine for zedboard and also additionally NetFPGA-1G-CML boards. I still think Digilent XUP debugger is not compliant for Vivado 2018.1. Could you please share any screenshots about installation drivers or running xup debugger? So i have for ISE-DS impact 14.6.

regards.

 

kursat

Link to comment
Share on other sites

Hi @JColvin,

You mentioned that on 28 June e-mail subject of "XUP USB-JTAG Programmer" on digilent forum "Our engineer was able to get the XUP cable recognized and working on a Centos 7 64-bit VM with Vivado 2018.1 without much issue." Could you please share more detail about the virtualization infrastructure for example VirtualBox or vmware? If vbox did this engineer install the virtualbox extension-pack for USB2.0 drivers recognizing?

regards.

kursat

Link to comment
Share on other sites

@kursatgol

What I did to get this working the last time someone asked about using the XUP JTAG Cable in Linux was the following:

1. Execute "cd /opt/Xilinx/Vivado/2018.1/data/xicom/cable_drivers/lin64/install_script/install_drivers/"
2. Execute "sudo ./install_drivers"
3. Execute “source /opt/Xilinx/Vivado/2018.1/settings64.sh”
4. Execute “vivado” to launch the application.
5. Open hardware manager and click auto connect.

Today I tried to replicate the setup in my CentOS 7 Virtual Machine running on my Windows 10 host and Vivado 2018.1 didn't initially find XUP JTAG Cable. In my attempts to debug this I disconnected the cable from the virtual machine and opened Vivado 2018.1 in Windows 10 and proceeded to see if it could be found. Much to my surprise, Vivado could not find it. I then opened the device manager and discovered that in Windows the XUP USB JTAG Cable was showing up as "Xilinx Embedded Platform USB Firmware Loader", which is effectively a bootloader firmware that's used to download the real firmware image. When the driver is properly installed in Windows 10 the OS should initially detect that the device does not have the application firmware programmed, programm it, and then re-enumerate it on the bus. To get Windows to do this I had to do the following:

1. Right click on “Xilinx Embedded Platform USB Firmware Loader” in the device manager and click “Uninstall”.
2. When the uninstall dialog popped up I checked the box the box that says “Delete the driver software for this device.” And then click ok.
3. Once driver uninstall completed I disconnected the programming cable.
4. Launched a command prompt in administrator mode and navigate to "c:\Xilinx\Vivado\2018.1\data\xicom\cable_drivers\nt64\dlc10_win7"
5. execute "wdreg -compat -inf %cd%\windrvr6.inf uninstall"
6. execute "wdreg -compat -inf %cd%\xusbdrvr.inf uninstall"
7. execute "wdreg -compat -inf %cd%\windrvr6.inf install"
8. execute "wdreg -compat -inf %cd%\xusbdrvr.inf install"
9. Reattach the XUP JTAG cable to the USB port.

After doing this I connected the cable and Windows loaded two drivers for it: a Jungo driver and a “Xilinx USB Cable” driver under the “Programming cables” section. My Windows 10 installation of Vivado 2018.1 is now able to recognize the XUP JTAG cable and find the Zynq 7020 that’s on the Zed board.

Now when I connect the XUP JTAG CABLE to my Centos7 VM and run Vivado Hardware manager is able to find it (see attached screenshots). Having observed this jogs my memory a bit. I remember that in the old days when you wanted to use the XUP JTAG CABLE, or any Xilinx Platform USB Cable in Linux, it was necessary to manually install the drivers via a script. This script not only installed a set of udev rules, but it also modified those rules so that they would call an fxload application and pass it the pathname for the correct firmware image to download to the cable. I also remember having to manually install fxload.

A quick look at the udev rules file installed with the 2018.1 drivers:

cat /etc/udev/rules.d/52-xilinx-pcusb.rules
# version 0002
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"

Here we can see that there is no call to fxload and there are no pathnames specified for the firmware images. I suspect that if you want to get this to work seamlessly then you will need to install impact and the cable drivers that impact includes. However, I cannot gaurantee that will work either. Since you are running a Windows host you could just do the same thing that works for me, which is installing the Windows drivers and letting Windows download the firmware to the XUP JTAG cable before you connect it to your Linux VM.

Thanks,
Michael

xup_jtag_centos_7_vivado_2018.1-01.JPG

xup_jtag_centos_7_vivado_2018.1-02.JPG

Link to comment
Share on other sites

Hi @malexander,

You are the one and you are the wonderful guy for me. Many thanks for your kindly answer. It works!!! I don't have any vivado installation on my host windows-7 so i don't want to install. When i connect the Xilinx XUP-USB debugger to Centos-7 vm and the solution was editing the /etc/udev/rules.d/52-xilinx-pcusb.rules file like below;

[root@oeee lin]# cat /etc/udev/rules.d/52-xilinx-pcusb.rules

SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0008", MODE="666"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xup.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_emb.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xlp.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xp2.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xse.hex -D $TEMPNODE"

ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"

@malexander,

My last question is in vivade hardware manager GUI i couldn't see the flash programming option with an *.mcs file? But impact has this feature? How can i program my zedboard's flash memory with Vivado 2018.1 hardware manager via Xilinx XUP-USB JTAG debugger/programmer? So now it's working. :)

regards.

kursat

Link to comment
Share on other sites

Hi @kursatgol,

I'm glad to here you are able to see your board through the XUP-USB through the VM.  My understanding is that the .mcs file process for configuring the flash has been deprecated. The .bin file is used to program flash. For the Zedboard you will need to create a boot.bin file in SDK.  Here is the Zedboard Programming Guide which is an older tutorial for doing this with the Zedboard.

thank you,

Jon

Link to comment
Share on other sites

Hi @malexander,

Everything is fine from my side. I would share last point of my problem that the failure been regarding with xusb_xup.hex firmware file. The file which is coming with Vivado 2018.1 is not properly running but (I know hearing this is strange) the one which was coming with ISE-DS-14.6 is properly running on my host Windows 7. :)

Thanks again for your kindly regards.

kursat

Link to comment
Share on other sites

On 1/11/2019 at 12:55 AM, kursatgol said:

Hi @malexander,

You are the one and you are the wonderful guy for me. Many thanks for your kindly answer. It works!!! I don't have any vivado installation on my host windows-7 so i don't want to install. When i connect the Xilinx XUP-USB debugger to Centos-7 vm and the solution was editing the /etc/udev/rules.d/52-xilinx-pcusb.rules file like below;

[root@oeee lin]# cat /etc/udev/rules.d/52-xilinx-pcusb.rules

SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0008", MODE="666"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xup.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_emb.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xlp.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xp2.hex -D $TEMPNODE"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xse.hex -D $TEMPNODE"

ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"

@malexander,

My last question is in vivade hardware manager GUI i couldn't see the flash programming option with an *.mcs file? But impact has this feature? How can i program my zedboard's flash memory with Vivado 2018.1 hardware manager via Xilinx XUP-USB JTAG debugger/programmer? So now it's working. :)

regards.

kursat

I am having the same issue with the XUP JTAG when it is not detected by Vivado. I have installed the drivers using the Xilinx scripts for both install_digilent.sh  and install_drivers scripts.

Do you think this will work for Vivado 2018.3 on Ubuntu 18.04?

 

Link to comment
Share on other sites

Hi @kursatgol,

The engineer let me know that he has only ever used VMWare. In terms specific installation for Vivado 2018.1 on a Centos 7 64-bit they did the following:

<start>

All I had to do to get the XUP USB JTAG cable to work was follow the instructions in the "Installing Cable Drivers" section of Xilinx UG973. Essentially all you have to do is go to a particular directory (“<Vivado Install Dir>/data/xicom/cable_drivers/lin64/install_script/install_drivers/”)and execute an install script. On my system this required the following steps:

1. Execute "cd /opt/Xilinx/Vivado/2018.1/data/xicom/cable_drivers/lin64/install_script/install_drivers/"
2. Execute "sudo ./install_drivers"

After that you simply run Vivado and use hardware manager like normal to connect to the cable.
1. Execute “source /opt/Xilinx/Vivado/2018.1/settings64.sh”
2. Execute “vivado” to launch the application.
3. Open hardware manager and click auto connect.

Vivado 2018.1 had no problem finding and configuring the Zynq 7020 on the Zed board.

</end>

Thanks,
JColvin

Link to comment
Share on other sites

Hi JCovin,

1. I performed the installation cable drivers in Vivado Installer (2018.2).

2. I run install_drivers_wrapper.bat. The log file reports that everything installed without errors.

3. After connecting XUP in Device Manager (Win10 64 Pro):

pic.PNG.c8257a4c679d4a69604e5dc15f18b32e.PNG

It is right?

4. But Vivado does not find the device:

pic2.PNG.86cc50cc57d5c7766e4ada0017adba02.PNG

5. Xilinx Platform Cable USB is working properly:

pic3.PNG.e01fd979309d962dc0b0803849a8a8e9.PNG

 

What is my problem?

Thanks!

Link to comment
Share on other sites

Hi @kursatgol,

Our engineer was able to get the XUP cable recognized and working on a Centos 7 64-bit VM with Vivado 2018.1 without much issue. The main thing that they did (detailed in the Installing Cable Drivers section of Xilinx UG973) and went to their install_install drivers directory (../data/xicom/cable_drivers/lin64/install_script/install_drivers) and executed the ./install_drivers script as sudo. They were then able to run Vivado and use the hardware manager as normal to connect to the cable and have Vivado 2018.1 successfully auto-connect to the XUP USB JTAG cable and the downstream Zedboard.

Let me know if you have any questions about this.

Thanks,
JColvin

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...