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!

AR# 62731

2014.4 - SDK Flashwriter - Flashwriter does not program QSPI Flash if an offset is given


When programming the QSPI Flash on any Zynq device, If I define an offset then an error similar to the following is shown on the console:

In:    serial
Out:   serial
Err:   serial
zynq-uboot> sf probe 0 0 0
SF: Detected S25FL128S_64K with page size 512 Bytes, erase size 128 KiB, total 32 MiB
ERROR: Unknown Error

 How can this be addressed?


This issue has been addressed in Vivado 2015.1 but the specified OFFSET can only be a multiple of the erase size (128KiB in the example above).

To work around this issue in Vivado 2014.4, you can use the uboot to directly program the QSPI by following the steps below:


  1. Download the uboot from the Xilinx wiki
  2. launch XMD and navigate to the Hardware platform folder in your SDK workspace.
    Run the following XMD commands:
    • connect arm hw
    • source ps7_init.tcl
    • ps7_init
    • ps7_post_config
  3. In XMD copy the image (.bin/.mcs) to the DDR using the following command:
    • dow -data <image file> 0x08000000
    • Note: An offset is used here as the u-boot.elf will be at the base address of the DDR
  4. Open a serial port with BAUD rate 115200
  5. In XMD, download and run the u-boot.elf file using the commands below:
    • dow u-boot.elf
    • run
  6. In the serial port, stop the u-boot, and use the SF commands to place the bin file at the correct location in QSPI:
    • sf probe 0 0 0
    • sf write 0x08000000 <offset> <bytes>
    • This will copy #<bytes> from the external memory at location 0x08000000 into the external flash at <offset>


AR# 62731
Date 03/25/2015
Status Active
Type General Article
  • Zynq-7000
  • Vivado Design Suite - 2014.4
  • Vivado Design Suite - 2014.3