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

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842019/FSBL#FSBL-WhatisFSBL

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841798/Build+FSBL

https://www.xilinx.com/video/soc/understanding-the-zynq-fsbl.html

 

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:

1. FSBL

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

 

Conclusion

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.