# SPDX-License-Identifier: GPL-2.0+ make_FIT_image() { local kernel_its=$output_dir/arch/$arch/boot/kernel_fdt.its cat < $kernel_its /dts-v1/; / { description = "Kernel + FDT image for $board board"; #address-cells = <1>; images { kernel { description = "Linux kernel"; data = /incbin/("$output_dir/arch/$arch/boot/$image_kernel"); type = "kernel"; arch = "$arch"; os = "linux"; compression = "none"; load = <$LOADADDR>; entry = <$LOADADDR>; hash-1 { algo = "crc32"; }; hash-2 { algo = "sha1"; }; }; EOF local dtb for dtb in $DTBS ; do local src=${dtb/:*/} local dst=${dtb/*:/} dst=${dst/*\//} cat <> $kernel_its fdt-$dst { description = "Flattened Device Tree blob $dst"; data = /incbin/("$output_dir/arch/$arch/boot/dts/$src"); type = "flat_dt"; arch = "$arch"; compression = "none"; hash-1 { algo = "crc32"; }; hash-2 { algo = "sha1"; }; }; EOF done local config=$(echo $DTBS | sed 's/.*[:/]//') cat <> $kernel_its }; configurations { default = "conf-$config"; EOF for dtb in $DTBS ; do local dst=${dtb/*:/} dst=${dst/*\//} cat <> $kernel_its conf-$dst { description = "Boot Linux kernel with $dst blob"; kernel = "kernel"; fdt = "fdt-$dst"; }; EOF done cat <> $kernel_its }; }; EOF PATH="$output_dir/scripts/dtc:$PATH" mkimage -f $kernel_its ${kernel_its/its/itb} } image_file=$output_dir/arch/$arch/boot/kernel_fdt.itb