Build the boot image BOOT.BIN
Caution
This flow is not supported by us in Cygwin! Use Linux terminal or WSL instead.
The boot image BOOT.BIN
is built using the
AMD Xilinx Bootgen tool
which requires several input files.
For ease of use, we provide a bash shell script which allows
building the BOOT.BIN from system_top.xsa
(generated from building the
project) and u-boot.elf
(from the SD card with Kuiper image).
Warning
You need to have the AMD Xilinx Vivado, Vitis and Bootgen tool paths in
the $PATH
environment variable.
Check the Enviroment section of Build an HDL project.
For Zynq
This section applies to the Zynq-based carriers from our list, but not limited to them only.
Make sure that AMD Xilinx Vivado and Vitis are included in the path and a
cross-compiler for arm
exists before running the script.
For more information about cross compilers, see
Building the Zynq Linux kernel and devicetrees from source.
The script used is build_boot_bin.sh, which needs to be downloaded on your computer.
The script can take 3 parameters:
the path to the
system_top.xsa
;the path to the
u-boot.elf
;the
name
of the tar.gz output archive (name
.tar.gz) (optional).
Important
The u-boot can be taken from the bootgen_sysfiles.tgz archive located in the project folder of the ADI Kuiper Linux image from the SD card.
Keep in mind that the u-boot is FPGA-specific!
See the beginning of SD Card flashing for instructions on how to obtain the ADI Kuiper image.
The script can be saved in the folder local to the project (for example, hdl/projects/fmcomms2/zed) and to be run from there.
~$
cd hdl/projects/fmcomms2/zed
~/hdl/projects/fmcomms2/zed$
chmod +x build_boot_bin.sh
~/hdl/projects/fmcomms2/zed$
./build_boot_bin.sh fmcomms2_zed.sdk/system_top.xsa path/to/u-boot.elf [output-archive]
The build output (BOOT.BIN
) can be found in the local directory
output_boot_bin
where you ran the command.
The folder follows the pattern: hdl/projects/$ADI_PART/$CARRIER/output_boot_bin.
For Zynq UltraScale+ MP
This section applies to the ZynqMP-based carriers (Zynq UltraScale+ MPSoC), usually ZCU102 in our systems, but not limited to this one only.
Make sure that AMD Xilinx Vivado and Vitis are included in the path and a
cross-compiler for arm64
exists before running the script.
For more information about cross compilers, see
Building the ZynqMP / MPSoC Linux kernel and devicetrees from source.
The script used is build_zynqmp_boot_bin.sh, which needs to be downloaded on your computer.
The script can take 4 parameters (the last one is optional):
the path to the
system_top.xsa
;the path to the
u-boot.elf
;the path to the
bl31.elf
;the
name
of the tar.gz output archive (name
.tar.gz) (optional).
Important
The u-boot and the bl31.elf can be taken from the bootgen_sysfiles.tgz archive located in the project folder of the ADI Kuiper Linux image from the SD card.
Keep in mind that the u-boot is FPGA-specific!
See the beginning of SD Card flashing for instructions on how to obtain the ADI Kuiper image.
~$
cd hdl/projects/fmcomms2/zcu102
~/hdl/projects/fmcomms2/zcu102$
chmod +x build_zynqmp_boot_bin.sh
~/hdl/projects/fmcomms2/zcu102$
./build_zynqmp_boot_bin.sh fmcomms2_zcu102.sdk/system_top.xsa path/to/u-boot.elf path/to/bl31.elf
The build output (BOOT.BIN
) can be found in the local directory
output_boot_bin
where you ran the command.
The folder follows the pattern: hdl/projects/$ADI_PART/$CARRIER/output_boot_bin.
For Versal
This section applies only to the Versal carriers: VCK190 and VPK180.
Make sure that AMD Xilinx Vivado and Vitis are included in the path and a
cross-compiler for arm64
exists before running the script.
For more information about cross compilers, see
Building the ZynqMP / MPSoC Linux kernel and devicetrees from source.
The script used is build_versal_boot_bin.sh, which needs to be downloaded on your computer.
The script can take 4 parameters:
the path to the
system_top.xsa
;the path to the
u-boot.elf
;the path to the
bl31.elf
;the
name
of the tar.gz output archive (name
.tar.gz) (optional).
Important
The u-boot and the bl31.elf can be taken from the bootgen_sysfiles.tgz archive located in the project folder of the ADI Kuiper Linux image from the SD card.
Keep in mind that the u-boot is FPGA-specific!
See the beginning of SD Card flashing for instructions on how to obtain the ADI Kuiper image.
~$
cd hdl/projects/ad9081_fmca_ebz/vck190
~/hdl/projects/ad9081_fmca_ebz/vck190$
chmod +x build_versal_boot_bin.sh
~/hdl/projects/ad9081_fmca_ebz/vck190$
./build_versal_boot_bin.sh ad9081_fmca_ebz.vck190.sdk/system_top.xsa (download | u-boot.elf) (download | bl31.elf | <path-to-arm-trusted-firmware-source>) [output-archive]
The build output (BOOT.BIN
) can be found in the local directory
output_boot_bin
where you ran the command.
The folder follows the pattern: hdl/projects/$ADI_PART/$CARRIER/output_boot_bin.
More information
(NOT RECOMMENDED) If you’re in for the long story, check out the AMD Xilinx wiki pages.