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!

AR# 68657

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

Description

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.

Solution

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:

http://www.wiki.xilinx.com/Zynq+Releases

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
con
after 500
 
#Reset A53, load and run FSBL
targets -set -filter {name =~ "Cortex-A53 #0"}
rst -processor
dow fsbl_a53.elf
con
 
#Give FSBL time to run
after 5000
stop
 
#Other SW...
dow u-boot.elf
dow bl31.elf
con
after 5000
stop
 
dow -data BOOT.bin 0x8000
con

 

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
Devices
  • Zynq UltraScale+ MPSoC
Page Bookmarked