cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Visitor
Visitor
294 Views
Registered: ‎04-07-2020

Simple FPGA LED blink working -- how to make it "permanent" (i.e., run through power cycles)

Jump to solution

Starting to play with a Z-Turn board, I could make an "LED blink" design work.  Purely on FPGA fabric, however I had to use a Block Design to bring in the PS.  This is because the only clock source (going into the Zynq) in that board is the PS_CLK signal;  there is no clock source going to the PL pins directly.

As my next step, I would like to flash/program the board so that when I power cycle, the board boots up and executes the LED blink design.   Presumably, I will want to program the QSPI with my design + whatever "boilerplate" (for the lack of a better term) code required to boot / have the bootloader extract the bitstream and program the FPGA.  (I don't need the OS running, I don't mind erasing the OS that I assume is there — I'm not worried about the PS side right now;  if I need to include a simple do-nothing infinite-loop in main() in baremetal mode, that's fine)

Any pointers to tutorials/videos/instructions on this?

Thanks,
Cal-linux
--

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
216 Views
Registered: ‎10-30-2017

Hi @Cal-linux ,

you need to create FSBL (boot loader) in SDK/Vitis targeting the HDF file generated from Vivado. Create a Bootable image using FSBL and Bit stream using Boogen tool. program the Bootable image (assume Boot.bin) on to QSPI or copy to SD card and then boot the device.

Please refer following for more details.

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

Best Regards,

Srikanth

View solution in original post

Tags (1)
2 Replies
Highlighted
Moderator
Moderator
217 Views
Registered: ‎10-30-2017

Hi @Cal-linux ,

you need to create FSBL (boot loader) in SDK/Vitis targeting the HDF file generated from Vivado. Create a Bootable image using FSBL and Bit stream using Boogen tool. program the Bootable image (assume Boot.bin) on to QSPI or copy to SD card and then boot the device.

Please refer following for more details.

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

Best Regards,

Srikanth

View solution in original post

Tags (1)
Highlighted
Visitor
Visitor
184 Views
Registered: ‎04-07-2020

Hi Srikanth,

Thanks for your reply, it has been helpful.

I seem to be stuck halfway through the workflow.  Going with chapter 2 of UG1165 I got to the "What Just Happened" on page 28.  This is what I see:

[···]$ ls workspace/LED_blink/
bitstream export hw logs platform.spr ps7_cortexa9_0 resources zynq_fsbl

[···]$ ls workspace/LED_blink/zynq_fsbl/
executable.elf Xilinx.spec fsbl_handoff.S image_mover.d zynq_fsbl_bsp  {plus a bunch of .c, .h, and .o files)

The "What's Next" for me should be creating the boot image, right?  (the What's Next according to the document is to start writing C programs for the PS, which I think I should not need to do — at this time, at least)

It would seem like my next step is to skip to page 93 of UG1165  (Example Project: Booting Linux from QSPI Flash).  Except that I do not have anything running on the PS, let alone an OS.

I seem to be lost with the steps between where I am and the step on page 96  (menu Xilinx → Create Boot Image).

Any additional hints or pointers?

Thanks,
Cal-linux
--

0 Kudos