Clyde

Members
  • Content Count

    51
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Clyde reacted to malexander in XUP USB-JTAG Programmer   
    @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


  2. Like
    Clyde reacted to kursatgol in XUP USB-JTAG Programmer   
    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;
    [[email protected] 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