Preparing a BOOT.bin file using Xilinx SDK
The BOOT.bin file required to boot the Zynq can be created using the Xilinx SDK. It must at least contain the First Stage Boot Loader (FSBL).
In order to be useful, the boot image should also contain the Secondary Program Loader (SPL). In most cases the SPL will be the U-Boot boot loader created by Yocto.
In addition, the boot loader will usually also contain the bit file to be loaded into the PL of the Zynq, although this one could be loaded by the U-Boot boot loader or by the Linux operating system.
Create the FSBL
Open the Xilinx SDK. On a Linux system (adjust paths accordingly):
source /opt/xilinx/SDK/2017.4/settings64.sh
xsdk
Set the workspace to the directory of your project. If not already open, open your project:
> File > Open Projects from File System
Directory...: <directory of the SDK of your project>
Folder: <project>_hw_platform_0 "Eclipse Project"
Create a new Application Project:
> File > New > Application Project
Project name: FSBL
OS Platform: standalone
Hardware Platform: zynq_top_hw_platform_0
Processor: ps7_cortexa9_0
Language: C
Board Support Package: Create New "FSBL_bsp"
> Next
Available Templates: Zynq FSBL
> Finish
It might be useful to set the debug output of the FSBL in order to get some messages when booting:
select the top-level of the project "FSBL" and open the context menu (right-mouse click):
> File > Properties
> C/C++ Build > Settings > Symbols
> Defined symbols (-d)
add FSBL_DEBUG_INFO
Selecting "Apply" should automatically rebuild the project. The result is a file called "FSBL.elf" in the FSBL/Debug sub-directory of your workspace.
Create the Boot Image
You can now create the boot image:
> Xilinx Tools > Create Boot Image
In the "Boot image partitions" sections, add in that order:
- the file "Debug/FSBL.elf"as "bootloader"
- the ".bit" as "datafile"
- the "u-boot.elf" file from /tmp/deploy/images/zedboard-zynq7/ as "datafile"
You might want to store the description you entered by using the "Create new BIF file" button, so that you can use BIF the file the next time with the "Import from existing BIF file" button.
When you are done push the "Create Image" button at the bottom of the window. The file "BOOT.bin" will be created in the FSBL/bootimage sub-directory of your workspace.
Notes
The instructions above apply to the Zynq
SoC. The Zynq
MPSoC needs additional files to be included into the boot image.
Boot the Zynq SoC using the SD card:
Insert the SD card into the SD reader of your Zynq board. Select booting from SD. Power cycle or reset the Zynq
SoC.
--
RalfSpiwoks - 2018-05-25