The Module 2 of the MiniZed Path to Programmable is focused on software development in xilinx fpga. The previous minized SW development ZYNQ blog can be read here ZYNQ-SW Module 2 Minized Blog3 --lab4 & lab5

The Hardware related blogs are here Summary of Module 1 Path to Programmable ZYNQ HW blogs

The Software related blogs are here Summary of Module 2 Path to Programmable ZYNQ SW blogs



ZYNQ SW Module Lab 6


Aim: Developing Zynq Software with Xilinx SDK Lab 6 First Stage Boot Loader (FSBL)


Lab 6 Objectives:


• How to generate the FSBL

• What the FSBL application includes

• How to recognize some of the initialization sequences


What is FSBL?

First Stage Bootloader (FSBL) for Zynq UltraScale+ MPSoC configures the FPGA with hardware bitstream (if it exists) and loads the Operating System (OS) Image or Standalone (SA) Image or 2nd Stage Boot Loader image from the non-volatile memory (NAND/SD/eMMC/QSPI) to Memory (DDR/TCM/OCM) and takes A53/R5 out of reset. It supports multiple partitions, and each partition can be a code image or a bitstream. Each of these partitions, if required, will be authenticated and/or decrypted.

FSBL is loaded into OCM and handed off by CSU BootROM after authenticating and/or decrypting (as required) FSBL.


More reading Material on FSBL


This is my first time working with the xilinx FSBL and using the bootloader for zynq.

Using the standard template to run the xilinx FSBL


Building the xilinx FSBL


Looking into compiler settings for the Debug configuration


Understanding the main code of the FSBL


Fig: DDR Initialization Check  can be seen here



ZYNQ SW Module Lab 7


Aim: Developing Zynq Software with Xilinx SDK Lab 7 Boot from Flash

In this lab I created a boot image and boot an application from non-volatile memory. A complete boot-up requires at least three things:


2. Bitstream (Optional)

3. Application


Using the Test_Peripherals application from previous development for booting from Flash memory


Creating a new boot image and set the output format to MCS


Setting up to program the Flash memory


Successfully programmed the flash memory


Testing with the serial port the results after booting from Flash memory



These two labs were quite useful as I learned to create boot image of an application and also boot the applicaiton from Flash memory Hardware. The instructions to run the create and run the boot image was clear in the tutorial and pretty easy to achieve.