#!/bin/sh # # script to generate FIT image source for 64-bit sunxi boards with # ARM Trusted Firmware and multiple device trees (given on the command line) # # usage: $0 [ [&2 echo "Please read the section on ARM Trusted Firmware (ATF) in board/sunxi/README.sunxi64" >&2 BL31=/dev/null fi cat << __HEADER_EOF /dts-v1/; / { description = "Configuration to load ATF before U-Boot"; #address-cells = <1>; images { uboot@1 { description = "U-Boot (64-bit)"; data = /incbin/("u-boot-nodtb.bin"); type = "standalone"; arch = "arm64"; compression = "none"; load = <0x4a000000>; }; atf@1 { description = "ARM Trusted Firmware"; data = /incbin/("$BL31"); type = "firmware"; arch = "arm64"; compression = "none"; load = <0x44000>; entry = <0x44000>; }; __HEADER_EOF cnt=1 for dtname in $* do cat << __FDT_IMAGE_EOF fdt@$cnt { description = "$(basename $dtname .dtb)"; data = /incbin/("$dtname"); type = "flat_dt"; compression = "none"; }; __FDT_IMAGE_EOF cnt=$((cnt+1)) done cat << __CONF_HEADER_EOF }; configurations { default = "config@1"; __CONF_HEADER_EOF cnt=1 for dtname in $* do cat << __CONF_SECTION_EOF config@$cnt { description = "$(basename $dtname .dtb)"; firmware = "uboot@1"; loadables = "atf@1"; fdt = "fdt@$cnt"; }; __CONF_SECTION_EOF cnt=$((cnt+1)) done cat << __ITS_EOF }; }; __ITS_EOF