Build the boot image BOOT.BIN#
The boot image BOOT.BIN
is built using the
AMD Xilinx Bootgen tool
which requires several input files.
All further steps are lengthy explained on the AMD Xilinx wiki pages:
For ease of use, we provide a bash shell script which allows building BOOT.BIN from system_top.xsa and u-boot.elf.
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 carriers#
This section applies to the Zynq-based carriers from our list, but not limited to them only.
The build_boot_bin.sh
script can be downloaded from
here.
The script can take 3 parameters:
the path to the
system_top.xsa
file (mandatory).the path to the
u-boot.elf
file (mandatory); see the note below.the
name
of the tar.gz output archive (name
.tar.gz) (optional); see the note below.
~$
build_boot_bin.sh system_top.xsa u-boot.elf [output-archive]
The build output 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.
Note
For those who don’t want to build the u-boot themselves or want to provide the .tar.gz output archive, both can be extracted from the bootgen_sysfiles.tgz located in the project folder of the Kuiper Linux image.
See the beginning of SD Card flashing for instructions on how to obtain the image.
There is also a version of script that works in Windows Powershell: build_boot_bin.ps1.
For ZynqMP carriers#
This section applies to the ZynqMP-based carriers, usually ZCU102 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 build_zynqmp_boot_bin.sh
script can be downloaded from
here
The script can take 4 parameters:
the path to the
system_top.xsa
file (mandatory)the path to the
u-boot.elf
file (mandatory); see the note belowthe third parameter is either (mandatory):
download
(will git clone the ATF repository)or
bl31.elf
or
<path-to-arm-trusted-firmware-source>
(the file system path to the ATF source code repository); see note below
the
name
of the tar.gz output archive (name
.tar.gz) (optional); see the note below.
~$
build_zynqmp_boot_bin.sh system_top.xsa u-boot.elf (download | bl31.elf | <path-to-arm-trusted-firmware-source>) [output-archive]
The build output 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.
Note
For those who don’t want to build the u-boot or bl31.elf themselves or want to provide the .tar.gz output archive, they can be extracted from the bootgen_sysfiles.tgz located in the project folder of the Kuiper Linux image.
u-boot.elf may have a different name, rename that .elf file to u-boot.elf before using.
See the beginning of SD Card flashing for instructions on how to obtain the image.