Sorry, you need to enable JavaScript to visit this website.

Zedboard QSPI FSBL with Bare Metal Application and bitstream

5 posts / 0 new
skateillini's picture
Zedboard QSPI FSBL with Bare Metal Application and bitstream

Hi All.

I am wondering if anyone has a bare-metal application plus bitstream booting successfully from QSPI (using ISE14.1)?

I have an application that consists of both bare-metal implementation and Programmable Logic. To date, I have been using the SDK tools to download the bistream, and then using SDK->Project Explorer->Right Click on Program->Run As->Launch on Hardware.

I would now like to have the .bit and .elf included in the QSPI so that the board can boot from it.

Here's what I've done to date:
1a. Added and successfully built a Zynq FSBL project.
1b. I have not made ANY code changes to FSBL source code... but I wonder if that is necessary to somehow tell the FSBL which bitstream and elf to use.

2a. SDK->Xilinx Tools->Create Boot image.
2b. In the above menu, I select the FSBL elf file as the fsbl.elf of step#1.
2c. In the above menu, I add (2) partitions. First, the bitstream from the design. Second, the bare-metal application .elf.
2d. I then select an output file location.
2e. The output of step #2 creates a .mcs file.

3a. SDK->Xilinx Tools->Program Flash
3b. I select the .mcs file created in step #2 and select 'Enter'.
3c. This starts the process (shown in the console) but it ends up crashing after about 30 seconds with the following Windows Error message. "zynq_flash.exe has encountered a problem and needs to close"

Looking at the console, no errors are shown, and the console says it erases the QSPI 100%, but there are not any messages about programming the QSPI.

Any suggestions are much appreciated, thanks!

-------Console output below---------
JTAG chain configuration
Device ID Code IR Length Part Name
1 4ba00477 4 Cortex-A9
2 03727093 6 XC7Z020

CortexA9 Processor Configuration
User ID.............................0x00000000
No of PC Breakpoints................6
No of Addr/Data Watchpoints.........1
BOOT_MODE REG = 0x00000000
Info:Firmware image : C:\Xilinx\14.1\14.1\ISE_DS\ISE\data\cse\cseflash\zynq7000\qspi_single.bin.
Downloading Program -- C:\Xilinx\14.1\14.1\ISE_DS\ISE\data\cse\cseflash\zynq7000\qspi_single.bin
section, .text: 0xfffc4800-0xfffd230f
section, .rodata: 0xfffd2310-0xfffd4628
section, .data: 0xfffd462c-0xfffd4e6f
section, .u_boot_cmd: 0xfffd4e70-0xfffd503b
section, .bss: 0xfffd5040-0xfffd729f
Setting PC with Program Start Address 0xfffc4800
Info:Performing Erase operation.

100% Info:Erase operation completed successfully.

zedhed's picture
RE: Zedboard QSPI FSBL with Bare Metal Application and bitstream

Hi skateillini,

Despite the promising success message seen at the console, I don't think that the programming operation accomplishes much of anything for ZedBoard target with 14.1 and 14.2 tools. Hopefully, this is corrected in the 14.3 tools release but there is a workaround that you can use in the meantime.

Take a look at the reference design entitled "ZedBoard Configuration and Booting Guide v14.1" found in the reference design section:

In this design you should find an example of how U-Boot can be used to copy your boot.bin contents to DDR3 memory and copy that data down to the QSPI flash.

You should then be able to boot the PS and configure the PL using the bitstream contained in boot.bin file.



skateillini's picture
Thank you!!!

Thank you!!!

The instructions on page 28 of the "ZedBoard Configuration and Booting Guide v14.1" enabled me to burn the BOOT.BIN file into the QSPI. It works perfectly (and wow, it boots quick. Less than 1 second!).

farukb's picture
Link does not work

Hi Kevin when I click the ling you've posted it says "coming soon" where else I can fing the document,

TroutChaser's picture
Reference Designs Link

This link should work: