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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Observer mnsgs
Observer
2,592 Views
Registered: ‎05-23-2017

QSPI flashing of zcu102 (rev1.0) through JTAG

Jump to solution

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

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Observer mnsgs
Observer
3,990 Views
Registered: ‎05-23-2017

Re: QSPI flashing of zcu102 (rev1.0) through JTAG

Jump to solution

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

View solution in original post

0 Kudos
4 Replies
Voyager
Voyager
2,576 Views
Registered: ‎06-24-2013

Re: QSPI flashing of zcu102 (rev1.0) through JTAG

Jump to solution

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

-------------- Yes, I do this for fun!
0 Kudos
Observer mnsgs
Observer
2,546 Views
Registered: ‎05-23-2017

Re: QSPI flashing of zcu102 (rev1.0) through JTAG

Jump to solution

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

0 Kudos
Highlighted
Observer mnsgs
Observer
3,991 Views
Registered: ‎05-23-2017

Re: QSPI flashing of zcu102 (rev1.0) through JTAG

Jump to solution

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

View solution in original post

0 Kudos
Voyager
Voyager
2,526 Views
Registered: ‎06-24-2013

Re: QSPI flashing of zcu102 (rev1.0) through JTAG

Jump to solution

You're welcome!

 

All the best,

Herbert

-------------- Yes, I do this for fun!
0 Kudos