TCL script to auto-generate a jtag boot script based on HDF file for Zynq Ultrascale

In this brief demo, we will show how to use the HSI to extract info from a HDF file, and how this can be used to create a XSCT file that can be used to boot over JTAG. This is ideal for when users want to preform a board bringup,

and might have to make some updates to the HDF and test on HW.

HSI introduction:

Users can see the wiki here, for an introduction into how to use the HSI to create applications from command line. Users should conult the XSCT user guide for a complete list

of API

Using HSI to create JTAG Boot script:

There is a TCL script added here (xsct_script.tcl) that will preform the following tasks based on the HDF file passed to it:

  • extract board info
  • extract device family
  • cross check applications on target device
  • create / compile applications if not already existing
    • Users can add a -force
  • create a jtag boot script based on the applications created
    • If there is no fsbl application then the script will use the psu_init.tcl

Creating the JTAG Boot script:

To test, download the script above, and source in XSCT 2018.3

To build:

Users, can also pass a -force to force the script to overwrite any existing applications. For example:

If users want to easily share, or store all the file used here, then there use the package option:

This will create a folder called packaged_files, and will populate this folder with all the files used in the generated boot script.

This will create the jtag_boot.tcl file, similar to below:

Testing the JTAG Boot script:

Follow the steps below to run the generated script here:

  • Set boot mode to JTAG mode. See page 232
  • Power on the Board
  • Source the jtag_boot.tcl from the same directory it was created in

Creating a BOOT.BIN file:

This script also supports the creation of a BOOT.BIN file from the auto-generated boot images.


For example:


This will automatically generate an fsbl, pmufw. Then a BIF file will be generated, and bootgen will be called to create the BOOT.BIN file.