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.