June 13, 2024

Zynq - the Zynq FSBL - an introduction

What I intend to do is to find the sources for the FSBL.
Then I want to build those sources "as-is".
Then I want to rearrange those sources to suit my tastes.

There are probably several ways to get source code for this thing. I am almost positive for example that U-Boot for the Zynq includes a FSBL, but I am not going that route.

What is the FSBL?

Note that three different loaders have to run to get an operating system like linux or my Kyu RTOS loaded and running:

"Why all of this?" -- is what you might ask. Well the on chip bootrom doesn't know what DRAM your board has been built with, so it uses the OCM (on chip memory), which is quite ample (192K of 256K can be used for the executable code of the FSBL). The FSBL will be board specific and will know what kind of DRAM is there -- it configures that, then loads U-Boot (which won't fit into OCM). The U-Boot can do anything.

OCM is "on chip memory".

Resources

Do a search on Zynq FSBL and you get a lot of hits. The video (from 2014) is good. By Rob Armstrong who has a clear voice.

Note that these resources mention using Vitis to build the FSBL. I have Vitis (and Vivado) installed, so this implies that if I dig around I should find FSBL sources to at least examine.

Various sources

On my system I find:
/u1/Projects/ebaz/Petalinux/u-boot-xlnx
/u1/Projects/ebaz/XDC/AR51786_2015_1/project_1/project_1.sdk/zynq_fsbl
And I am sure I can find more if I dig around through the stuff I have downloaded over the years. I have the above already on my system, but some searching led me to this: This contains the FSBL as one of many interesting things that Xilinx makes available, so I am going to use this as my starting point.
Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org