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.
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
There is a TCL script added here (xsct_script.tcl) that will preform the following tasks based on the HDF file passed to it:
The script has only been tested on Zynq Ultrascale, on zynqmp fsbl, pmufw, hello_world, and DRAM tests. Users would need to updated the script to add other applications |
To test, download the script above, and source in XSCT 2018.3
To build:
source xsct_script.tcl build_script -hw <path to HDF> -apps <list of apps to be built> |
Users, can also pass a -force to force the script to overwrite any existing applications. For example:
build_script -hw <path to HDF> -apps <list of apps to be built> -force |
If users want to easily share, or store all the file used here, then there use the package option:
build_script -hw <path to HDF> -apps <list of apps to be built> -package |
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:
# Set up connection #if this is a remote connection. Then use something like: #connect -url TCP:XIRSTEPHENM32:3121 #or, if local, then just use connect # Add the Microblaze PMU to target targets -set -nocase -filter {name =~ "PSU"} mwr 0xFFCA0038 0x1FF # Download PMUFW to PMU target -set -filter {name =~ "MicroBlaze PMU"} dow zynqmp_pmufw/executable.elf con # Configuring PSU targets -set -nocase -filter {name =~ "PSU"} source psu_init.tcl psu_init after 500 psu_post_config after 500 psu_ps_pl_reset_config after 500 psu_ps_pl_isolation_removal after 500 # write bootloop and release A53-0 reset targets -set -nocase -filter {name =~ "PSU"} mwr 0xffff0000 0x14000000 mwr 0xFD1A0104 0x380E # Download Hello World to A53 #0 targets -set -filter {name =~ "Cortex-A53 #0"} dow hello_world/executable.elf con after 500 stop |
Follow the steps below to run the generated script here:
This script also supports the creation of a BOOT.BIN file from the auto-generated boot images.
source xsct_script.tcl build_hw -hw <path to HDF> -apps <insert apps here> -boot |
For example:
source xsct_script.tcl build_hw -hw design_1_wrapper -apps zynqmp_fsbl zynqmp_pmufw -boot |
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.