cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Adventurer
Adventurer
6,027 Views
Registered: ‎07-24-2018

How to make bootable SD card for Zynq 7000 series PL only project?

Jump to solution

I have inherited a hardware only project from a former student designed for the Zynq 7000 series FPGA and targeting the Pynq board.  The hardware is setup to do a simple pass through from the hdmi in stream to hdmi out.  I was only given a Vivado 2016.1 project which I can generate a bitstream, launch in the SDK, program the FPGA and run in debug mode successfully.  However, I have been tasked with making this hardware only project bootable from a sd card for evalutation (note: I'll be swapping out other image processing IP cores for the passthrough later so the sd card allows for quick visual assessment to ensure everything is working right).  

 

I've found both of the following links as guides:

https://github.com/kratsg/meta-l1calo/wiki/Zynq-7:-Prepare-and-Boot-Hardware

https://www.xilinx.com/html_docs/xilinx2018_2/SDK_Doc/SDK_tasks/task_creatingabootimage.html

 

However, I did't have the necessary files required in link 1 and with link 2 I was able to create BOOT.bin, a .bif file and a u-boot.elf but after loading this to an sd card the system doesn't work.  

 

Any advice or links to guides would be greatly appreciated.  If any clarification is needed to figure out which step I'm messing up on please let me know.

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Community Manager
Community Manager
6,162 Views
Registered: ‎07-23-2012

Re: How to make bootable SD card for Zynq 7000 series PL only project?

Jump to solution
Do you want to create a baremetal boot image or a Linux boot image?

If it is Linux then you can refer to "Booting Linux from the SD Card" section of https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_1/ug1165-zynq-embedded-design-tutorial.pdf

In case if you want to create and boot baremetal boot image then you can follow the same instructions and exclude U-boot.elf and image.ub from the boot image.

In case if you hit any issues, please refer to https://www.xilinx.com/support/answers/59476.html
-----------------------------------------------------------------------------------------------
Please mark the post as "Accept as solution" if the information provided answers your query/resolves your issue.

Give Kudos to a post which you think is helpful.

View solution in original post

6 Replies
Highlighted
Community Manager
Community Manager
6,163 Views
Registered: ‎07-23-2012

Re: How to make bootable SD card for Zynq 7000 series PL only project?

Jump to solution
Do you want to create a baremetal boot image or a Linux boot image?

If it is Linux then you can refer to "Booting Linux from the SD Card" section of https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_1/ug1165-zynq-embedded-design-tutorial.pdf

In case if you want to create and boot baremetal boot image then you can follow the same instructions and exclude U-boot.elf and image.ub from the boot image.

In case if you hit any issues, please refer to https://www.xilinx.com/support/answers/59476.html
-----------------------------------------------------------------------------------------------
Please mark the post as "Accept as solution" if the information provided answers your query/resolves your issue.

Give Kudos to a post which you think is helpful.

View solution in original post

Highlighted
Adventurer
Adventurer
5,980 Views
Registered: ‎07-24-2018

Re: How to make bootable SD card for Zynq 7000 series PL only project?

Jump to solution

Thank you for the quick response and the direction.  I was still unable to get my system to boot from an SD card after following your linked tutorial.  I've collected my process in the steps below and have attached the block design of the system in case you can see something I'm clearly doing wrong:

 

My project is meant to be bare metal with no Linux

Pynq Z1 Board
Vivado 2016.1
micro SD card used - SanDisk Ultra Plus 16GB HC I

 

Process:

Opened project>Generate Bitstream
Export Hardware Including Bitstream
Launch SDK

Hooked up hdmi source and output and set the jumper to boot from SD card

(Note: If I program FPGA and Run System Debugger on local main.elf the system works)

 

In 'Create the First Stage Boot Loader Executable File' I followed all directions with one exception:

(Step 5)When creating the new Application Project, 'system_hw_platform' was not an available choice - I selected
'system_wrapper_hw_platform_0' which I believe was created when I programmed the FPGA

 

At Step 4 in the main tutorial, 'Create Boot Image', per your instructions I didn't include a u-boot.elf since I'm not using Linux.
I added the fsbl.elf file created above with a partition type of 'bootloader'

I then added the BOOT.bin and output.bif files to my SD card and booted the Pynq but no hdmi out - only the LD13 light came on

I also added the fsbl.elf file to the SD card and still no signal on the hdmi out.

 

I double checked by re-programming the FPGA and running the system debugger to make sure all my connections were still good and the system worked again.

 

*I also reformatted the sd card to make sure it wasn't write protected or had any issues like that.

0 Kudos
Highlighted
Community Manager
Community Manager
5,970 Views
Registered: ‎07-23-2012

Re: How to make bootable SD card for Zynq 7000 series PL only project?

Jump to solution
Can you please share your .bif file? Does it include FSBL, .bit and the elf file of HDMI application?
-----------------------------------------------------------------------------------------------
Please mark the post as "Accept as solution" if the information provided answers your query/resolves your issue.

Give Kudos to a post which you think is helpful.
0 Kudos
Highlighted
Adventurer
Adventurer
5,956 Views
Registered: ‎07-24-2018

Re: How to make bootable SD card for Zynq 7000 series PL only project?

Jump to solution

The three files I've included on my sd card are:

BOOT.bin

fsbl.elf

output.bif

 

It appears that my output.bif is only referencing fsbl.elf and system_wrapper.bit.  It's contents are:

 

//arch = zynq; split = false; format = BIN
the_ROM_image:
{
	[bootloader]C:\Users\David\Desktop\571_pynq_version\pynq_demo.xpr\base\base.sdk\fsbl\Debug\fsbl.elf
        C:\Users\David\Desktop\571_pynq_version\pynq_demo.xpr\base\base.sdk\system_wrapper_hw_platform_0\system_wrapper.bit
}

  

0 Kudos
Highlighted
Adventurer
Adventurer
5,926 Views
Registered: ‎07-24-2018

Re: How to make bootable SD card for Zynq 7000 series PL only project?

Jump to solution

I'm sure you can tell by the *.bif file that I was missing the main.elf file.  I forgot to add it will creating the boot image in SDK and after doing that the bare metal system is working perfect from sd boot.  Thanks for all the help!

 

For anyone in the future that has the same  issue the guide in:

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_1/ug1165-zynq-embedded-design-tutorial.pdf

provided everything I needed - just remember for a bare metal boot to include the fsbl.elf, then system_wrapper.bit AND the main.elf file created for you project by the SDK under the 'Create Boot Image' step in the 'Boot image partitions' box.

0 Kudos
Highlighted
1,385 Views
Registered: ‎01-30-2020

Re: How to make bootable SD card for Zynq 7000 series PL only project?

Jump to solution

hi, 

i'm working on a same project dispaly a "pictures" on a SD card ==> to HDMI monitor. but i don't know how i can do that. i'm asking if your project is in github ??

0 Kudos