This article will discuss the steps needed to download and compile a Bootable (SD) Linux Image for the ZCU102 using the OSL flow.
...
- mkdir repo/my_dt
- cd repo/my_dt
- git clone https://github.com/Xilinx/device-tree-xlnx
- cd device-tree-xlnx
- git checkout xilinx-v2020.1
- cd ../../../
- Create a .tcl file with the following contents:
Code Block | ||
---|---|---|
| ||
proc gen_dtb {hdf} { open_hw_design $hdf set_repo_path ./repo create_sw_design device-tree -os device_tree -proc psu_cortexa53_0 generate_target -dir my_dts } |
...
Creating the FIT image:
Code Block | ||
---|---|---|
| ||
/dts-v1/; / { description = "U-Boot fitImage for plnx_aarch64 kernel"; #address-cells = <1>; images { kernel@0 { description = "Linux Kernel"; data = /incbin/("./linux-xlnx/arch/arm64/boot/Image"); type = "kernel"; arch = "arm64"; os = "linux"; compression = "none"; load = <0x80000>; entry = <0x80000>; hash@1 { algo = "sha1"; }; }; fdt@0 { description = "Flattened Device Tree blob"; data = /incbin/("./my_dts/system.dtb"); type = "flat_dt"; arch = "arm64"; compression = "none"; hash@1 { algo = "sha1"; }; }; ramdisk@0 { description = "ramdisk"; data = /incbin/("./petalinux-user-image-plnx_aarch64.cpio.gz"); type = "ramdisk"; arch = "arm64"; os = "linux"; compression = "none"; hash@1 { algo = "sha1"; }; }; }; configurations { default = "conf@1"; conf@1 { description = "Boot Linux kernel with FDT blob + ramdisk"; kernel = "kernel@0"; fdt = "fdt@0"; ramdisk = "ramdisk@0"; hash@1 { algo = "sha1"; }; }; conf@2 { description = "Boot Linux kernel with FDT blob"; kernel = "kernel@0"; fdt = "fdt@0"; hash@1 { algo = "sha1"; }; }; }; }; |
- u-boot-xlnx/tools/mkimage -f fitimage.its fitimage.itb
Load the BOOT.BIN and the fitImage.itb on the SD card and boot. Stop at uboot, and
- fatload mmc 0 0x3000000 0x10000000 fitimage
- bootm 0x30000000x10000000
Users, can also update add the uboot u- boot-xlnx/include/configs/Xilinx_zynqmp.h to add this:
.scr to the SD Card from here: