AR# 68657


Zynq UltraScale+ MPSoC: How to use u-boot to program a "known to work" QSPI flash?


This Answer Record covers how to quickly test u-boot over JTAG to see if it can program a QSPI flash which is marked as known to work in (Xilinx Answer 65463) but not yet supported by XSDK and Vivado.


1) Build the FSBL for A53-0 targeting your own board.

2) Use the ATF and u-boot.elf pre-built from the latest released image on the wiki:

3) Build a bootable image BOOT.bin.

4) Use the below script (it might require modification to point to your files) to download and start u-boot and download BOOT.bin to DDR (all via JTAG).

#Disable Security gates to view PMU MB target
targets -set -filter {name =~ "PSU"}
#By default, JTAG security gates are enabled
#This disables security gates for DAP, PLTAP and PMU.
mwr 0xffca0038 0x1ff
after 500
#Load and run PMU FW
targets -set -filter {name =~ "MicroBlaze PMU"}
dow xpfw.elf
after 500
#Reset A53, load and run FSBL
targets -set -filter {name =~ "Cortex-A53 #0"}
rst -processor
dow fsbl_a53.elf
#Give FSBL time to run
after 5000
#Other SW...
dow u-boot.elf
dow bl31.elf
after 5000
dow -data BOOT.bin 0x8000


5) At the u-boot console, input the following commands:

sf probe 0 0 0
sf erase 0 size_of_BOOT.bin
sf write 0x8000 0 size_of_BOOT.bin
AR# 68657
Date 10/24/2017
Status Active
Type General Article
People Also Viewed