UPGRADE YOUR BROWSER
We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!
08-29-2017 05:53 AM
Hi,
I have built petalinux (2017.2) for the "zcu102-zynqmp" machine, and successfully booted the device through the SD-card. Subsequently I noticed that uboot-machine and Linux devicetree is both being built according to a revB config, which however seems at least able to boot the device - is the rev1.0 not yet supported through a formal release?
The next step was to flash- and boot from QSPI rather than SD card, which unfortunately fails (JTAG is connected through the uUSB connector (J2)). First issue encountered seems to be the 'hw_server' not being started when the flash command issued:
martin@martin-Precision-5510:~/work/petalinux/build/tmp/deploy/images/zcu102-zynqmp$ program_flash -f BOOT.bin -flash_type qspi_dual_parallel -blank_check -verify -cable type xilinx_tcf url tcp:localhost:3121
****** Xilinx Program Flash
****** Program Flash v2017.2.1 (64-bit)
**** SW Build 1957588 on Wed Aug 9 16:32:10 MDT 2017
** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.
Connecting to hw_server @ tcp:localhost:3121
WARNING: Failed to connect to hw_server at tcp:localhost:3121
AFAICS, the digilent drivers and udev rules are successfully installed - kernel output when USB cable attached to J2:
[95765.427623] usb 3-1.7.1.1: USB disconnect, device number 63
[95768.208354] usb 3-1.7.1.1: new high-speed USB device number 64 using xhci_hcd
[95768.317678] usb 3-1.7.1.1: New USB device found, idVendor=0403, idProduct=6014
[95768.317683] usb 3-1.7.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[95768.317686] usb 3-1.7.1.1: Product: Digilent USB Device
[95768.317689] usb 3-1.7.1.1: Manufacturer: Digilent
[95768.317691] usb 3-1.7.1.1: SerialNumber: 210308A1CE74
[95768.321163] ftdi_sio 3-1.7.1.1:1.0: FTDI USB Serial Device converter detected
[95768.321257] usb 3-1.7.1.1: Detected FT232H
[95768.321511] usb 3-1.7.1.1: FTDI USB Serial Device converter now attached to ttyUSB5
[95768.359172] ftdi_sio ttyUSB5: FTDI USB Serial Device converter now disconnected from ttyUSB5
[95768.359231] ftdi_sio 3-1.7.1.1:1.0: device disconnected
Starting the hw_server manually causes the below:
martin@martin-Precision-5510:~/work/petalinux/build/tmp/deploy/images/zcu102-zynqmp$ hw_server -d -I15 -L /tmp/log && program_flash -f BOOT.bin -flash_type qspi_dual_parallel -blank_check -verify -cable type xil
inx_tcf url tcp:localhost:3121
****** Xilinx hw_server v2017.2.1
**** Build date : Aug 9 2017-16:39:25
** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.
INFO: hw_server application started
INFO: Use Ctrl-C to exit hw_server application
INFO: To connect to this hw_server instance use url: TCP:martin-Precision-5510:3121
****** Xilinx Program Flash
****** Program Flash v2017.2.1 (64-bit)
**** SW Build 1957588 on Wed Aug 9 16:32:10 MDT 2017
** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.
Connecting to hw_server @ tcp:localhost:3121
Connected to hw_server @@ tcp:localhost:312
Available targets and devices:
Target 0 : jsn-JTAG-SMT2NC-210308A1CE74
Device 0: jsn-JTAG-SMT2NC-210308A1CE74-24738093-0
ERROR: Please specify a valid FSBL file for flash type: qspi_dual_parallel
hw_server log file attached.
The same issue occurs whether dip switches are configured to boot from JTAG/QSPI/SD - any idea what I am missing?
Thanks,
Martin
08-30-2017 06:10 AM
Ok, it appears resolved now - I was apparently missing a few steps which weren't required by previous versions:
1) SDK needs initialization - achieved through 'source /opt/Xilinx/SDK/2017.2/settings64.sh'
which triggered hw_server to be started by 'program_flash'
2) FSBL needs explicitly referred together with boot.bin: 'program_flash -f BOOT.bin -flash_type qspi_dual_parallel -fsbl fsbl-zcu102-zynqmp.elf -cable type xilinx_tcf url TCP:127.0.0.1:3121'
Thanks,
Martin
08-29-2017 07:17 AM
Hey @mnsgs,
In Vivado you normally flash the SPI from the TCL shell like this ...
open_hw connect_hw_server open_hw_target create_hw_cfgmem -hw_device [lindex [get_hw_devices xc*] 0] [lindex [get_cfgmem_parts {s25fl128sxxxxxx0-spi-x1_x2_x4}] 0] write_cfgmem -force -interface SPIx4 -format MCS -size 128 -loadbit "up 0x0 blink.bit" -file "blink.mcs" set_property CFGMEM_PART {s25fl128sxxxxxx0-spi-x1_x2_x4} [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.ADDRESS_RANGE {use_file} [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.FILES [list "blink.mcs" ] [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.PRM_FILE {} [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.UNUSED_PIN_TERMINATION {pull-none} [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.BLANK_CHECK 0 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.ERASE 1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.CFG_PROGRAM 1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.VERIFY 1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] set_property PROGRAM.CHECKSUM 0 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]] create_hw_bitstream -hw_device [lindex [get_hw_devices xc*] 0] [get_property PROGRAM.HW_CFGMEM_BITFILE [ lindex [get_hw_devices xc*] 0]]; program_hw_devices [lindex [get_hw_devices xc*] 0]; program_hw_cfgmem -hw_cfgmem [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices xc*] 0]]
Note that this is just an example and needs to be adjusted to your case.
Hope this helps,
Herbert
08-29-2017 12:21 PM
Thanks Herbert, since I am currently not using Vivado (Bitstream is generated elsewhere) I prefer to stick to program_flash. I used to use this for z7000 development - I would assume it still to be possible.
Br,
Martin
08-30-2017 06:10 AM
Ok, it appears resolved now - I was apparently missing a few steps which weren't required by previous versions:
1) SDK needs initialization - achieved through 'source /opt/Xilinx/SDK/2017.2/settings64.sh'
which triggered hw_server to be started by 'program_flash'
2) FSBL needs explicitly referred together with boot.bin: 'program_flash -f BOOT.bin -flash_type qspi_dual_parallel -fsbl fsbl-zcu102-zynqmp.elf -cable type xilinx_tcf url TCP:127.0.0.1:3121'
Thanks,
Martin
08-30-2017 06:25 AM
You're welcome!
All the best,
Herbert