Create the First Stage Boot Loader

The First Stage Bootloader (FSBL) is a critical part of the boot process for the OcPoC.

Introduction

The first stage boot loader loads the clocking information, and then the bitstream onto the FPGA prior to the Kernel being loaded onto the FPGA. Though the FSBL doesn't need to be changed very often, if there is anything that you originally program in one clock domain and change clock domains in a later build, then failing to update the FSBL could lead to unexpected behavior and will possibly damage the board.

Creating a new FSBL

If Xilinx SDK (XSDK) is not already open with the current hardware, follow these preliminary steps:

  1. Open Vivado
  2. Export Hardware & Bitstream
  3. Launch Xilinx SDK

After you have Xilinx SDK open, follow these steps to create a FSBL:

  1. Navigate to File > New > Application Project
  2. Give the project a new name, like FSBL
  3. Click Next
  4. Select Zynq FSBL and click Finish
  5. Wait a few minutes to allow the project to build
  • In the event that it doesn't successfully build - close XSDK, and Vivado
  1. Click the drop down for the fsbl project (not fsbl_bsp)
  2. Click the drop down on src
  3. Open lscript.ld
  4. Select the Add Memory button in the main workspace, and add the following address:
NameBase AddressSize
ps7_ddr_0_S_AXI_BASEADDR0x001000000x1FF00000
  1. Save the project and XSDK will automatically rebuild the FSBL
  2. The fsbl.elf file will be stored in: <Project_name.sdk>/fsbl/debug

What’s Next

Now you can customize your device tree or go on to generate your boot.bin file.