Next a micro-USB cable is needed. There are 3 places where it could be plugged into the board. The connector next to the barrel connector is labeled "PROG" and that is what I used. (The other USB connectors are labeled UART and USB_OTG, we will ignore those for now.
For fun, I switch on the board and look at my unix logs. I see:
May 13 08:34:42 trona kernel: usb 3-1: new high-speed USB device number 19 using xhci_hcd May 13 08:34:42 trona kernel: usb 3-1: New USB device found, idVendor=0403, idProduct=6014, bcdDevice= 9.00 May 13 08:34:42 trona kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 May 13 08:34:42 trona kernel: usb 3-1: Product: Digilent USB Device May 13 08:34:42 trona kernel: usb 3-1: Manufacturer: Digilent May 13 08:34:42 trona kernel: ftdi_sio 3-1:1.0: FTDI USB Serial Device converter detected May 13 08:34:42 trona kernel: usb 3-1: Detected FT232H May 13 08:34:42 trona kernel: usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB0 May 13 08:34:42 trona kernel: ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0 May 13 08:34:42 trona kernel: ftdi_sio 3-1:1.0: device disconnectedIt seems odd that we were recognized then almost immediately disconnected. For now that is a mystery.
The above "board file" guide discusses the Vivado install process, then gets into "cable drivers" for linux users.
cd /u1/Xilinx/Vivado/2021.2/data/xicom/cable_drivers/lin64/install_script/install_drivers su ./install_driversThis seemed to work just fine. It added the following files to /etc/udev/rules.d:
-rw-r--r-- 1 root root 3797 May 13 08:49 52-xilinx-digilent-usb.rules -rw-r--r-- 1 tom tom 3315 Oct 15 2021 52-xilinx-ftdi-usb.rules -rw-r--r-- 1 tom tom 435 Oct 15 2021 52-xilinx-pcusb.rules -rw-r--r-- 1 root root 3848 May 12 18:01 52-digilent-usb.rules(maybe not the last file, that may be from my ISE cable driver setup, but I don't think so). It tells me I need to unplug and replug my board for these to take effect.
Nothing seems to happen, but I know why. I have to tell the udev system to reload rules.
The following ought to do it, but I am not convinced that things are right.
udevadm control --reload-rules udevadm triggerI resorted to rebooting my system. Now when I plug the device in, I don't get a disconnect and it remains at /dev/ttyUSB0. Maybe that is proper.
Just for the record, some time ago I added the file 99-usbusers.rules to /etc/udev/rules.d with the following:
SUBSYSTEM=="usb", MODE="0666", GROUP="usbusers"Since "tom" belongs to the usbusers group, this allows me to access any USB device without stupid permission hassles. Also note that "tom" also belongs to the dialout group, which is the method the digilent guide uses to solve this issue.
It turns out that everything now "just works". Using this setup, I have loaded and run FPGA designs from Vivado to both my Zynq and Zedboards.
The following link doesn't add anything particulary useful to what I already did, but here it is for reference.
cd /u1/Xilinx/Vivado/2021.2/data/boards mkdir board_files cd /u1/Xilinix unzip vivado-boards-master.zip ls vivado-boards-master/new/board_filesThe zip archive is well behaved and extracts into its own directory. Note that I am getting ALL the board files (including those for my Zybo). I ensured that there was no "board_files" directory already in /u1/Xilinx/Vivado/2021.2/data/boards, then I did:
cd vivado-boards-master/new cp -var cp -var board_files /u1/Xilinx/Vivado/2021.2/data/boardsThere is a directory for every Digilent board, so it is necessary to use the "-var" scheme to copy the entire structure.
Tom's Computer Info / tom@mmto.org