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:
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 zynq-uboot> 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:
Download the uboot from the
Xilinx wiki launch XMD and navigate to the Hardware platform folder in your SDK workspace.
Run the following XMD commands: connect arm hw
ps7_post_config 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 Open a serial port with BAUD rate 115200
In XMD, download and run the u-boot.elf file using the commands below:
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>
Was this Answer Record helpful?