This version (20 Mar 2023 12:38) was approved by Iulia Moldovan.The Previously approved version (31 Jan 2023 08:10) is available.Diff

How to build the Zynq boot image BOOT.BIN

The boot image BOOT.BIN is built using the bootgen tool which requires several input files.

Instructions on how to build the Xilinx Shell Archive (XSA) handover file can be found here:

All further steps are lengthy explained on the Xilinx Wiki Page

Use script to build BOOT.BIN

For ease of use, we provide a bash shell script which allows building BOOT.BIN from system_top.xsa and u-boot.elf


The script can be downloaded from here:

NOTE: After downloading the script you need to make it executable

$ chmod +x


usage: system_top.xsa u-boot.elf [output-archive]
  • Path to system_top.xsa and u-boot.elf are required parameters
  • An optionally 3rd name parameter can be given to tar.gz the output directory (name.tar.gz)
  • Build output is located in a local directory named: output_boot_bin
  • This script requires Xilinx Vitis and bootgen in the PATH
    • A simple way is to source vivado settings[32|64].sh:
$ source /opt/Xilinx/Vivado/202x.x/
  • When using cygwin, you can add the following in the ~/.bashrc configuration file:
export PATH=$PATH:/cygdrive/c/Xilinx/Vivado/202x.x/bin
export PATH=$PATH:/cygdrive/c/Xilinx/Vitis/202x.x/bin

There is also a version of script that works in Windows Powershell: build_boot_bin.ps1

NOTE: u-boot.elf
For those who don't want to build u-boot themselves.
The u-boot.elf can be extracted from the project folder on the SD Card image, bootgen_sysfiles.tgz

resources/tools-software/linux-software/build-the-zynq-boot-image.txt · Last modified: 20 Mar 2023 12:38 by Iulia Moldovan