100 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
# SPDX-License-Identifier: GPL-2.0+
 | 
						|
#
 | 
						|
# script to generate FIT image source for K3 Family boards with
 | 
						|
# ATF, OPTEE, SPL and multiple device trees (given on the command line).
 | 
						|
# Inspired from board/sunxi/mksunxi_fit_atf.sh
 | 
						|
#
 | 
						|
# usage: $0 <dt_name> [<dt_name> [<dt_name] ...]
 | 
						|
 | 
						|
[ -z "$ATF" ] && ATF="bl31.bin"
 | 
						|
 | 
						|
if [ ! -f $ATF ]; then
 | 
						|
	echo "WARNING ATF file $ATF NOT found, resulting binary is non-functional" >&2
 | 
						|
	ATF=/dev/null
 | 
						|
fi
 | 
						|
 | 
						|
[ -z "$TEE" ] && TEE="bl32.bin"
 | 
						|
 | 
						|
if [ ! -f $TEE ]; then
 | 
						|
	echo "WARNING OPTEE file $TEE NOT found, resulting might be non-functional" >&2
 | 
						|
	TEE=/dev/null
 | 
						|
fi
 | 
						|
 | 
						|
cat << __HEADER_EOF
 | 
						|
/dts-v1/;
 | 
						|
 | 
						|
/ {
 | 
						|
	description = "Configuration to load ATF and SPL";
 | 
						|
	#address-cells = <1>;
 | 
						|
 | 
						|
	images {
 | 
						|
		atf {
 | 
						|
			description = "ARM Trusted Firmware";
 | 
						|
			data = /incbin/("$ATF");
 | 
						|
			type = "firmware";
 | 
						|
			arch = "arm64";
 | 
						|
			compression = "none";
 | 
						|
			os = "arm-trusted-firmware";
 | 
						|
			load = <0x70000000>;
 | 
						|
			entry = <0x70000000>;
 | 
						|
		};
 | 
						|
		tee {
 | 
						|
			description = "OPTEE";
 | 
						|
			data = /incbin/("$TEE");
 | 
						|
			type = "tee";
 | 
						|
			arch = "arm64";
 | 
						|
			compression = "none";
 | 
						|
			os = "tee";
 | 
						|
			load = <0x9e800000>;
 | 
						|
			entry = <0x9e800000>;
 | 
						|
		};
 | 
						|
		spl {
 | 
						|
			description = "SPL (64-bit)";
 | 
						|
			data = /incbin/("spl/u-boot-spl-nodtb.bin");
 | 
						|
			type = "standalone";
 | 
						|
			os = "U-Boot";
 | 
						|
			arch = "arm64";
 | 
						|
			compression = "none";
 | 
						|
			load = <0x80080000>;
 | 
						|
			entry = <0x80080000>;
 | 
						|
		};
 | 
						|
__HEADER_EOF
 | 
						|
 | 
						|
for dtname in $*
 | 
						|
do
 | 
						|
	cat << __FDT_IMAGE_EOF
 | 
						|
		$(basename $dtname) {
 | 
						|
			description = "$(basename $dtname .dtb)";
 | 
						|
			data = /incbin/("$dtname");
 | 
						|
			type = "flat_dt";
 | 
						|
			arch = "arm";
 | 
						|
			compression = "none";
 | 
						|
		};
 | 
						|
__FDT_IMAGE_EOF
 | 
						|
done
 | 
						|
 | 
						|
cat << __CONF_HEADER_EOF
 | 
						|
	};
 | 
						|
	configurations {
 | 
						|
		default = "$(basename $1)";
 | 
						|
 | 
						|
__CONF_HEADER_EOF
 | 
						|
 | 
						|
for dtname in $*
 | 
						|
do
 | 
						|
	cat << __CONF_SECTION_EOF
 | 
						|
		$(basename $dtname) {
 | 
						|
			description = "$(basename $dtname .dtb)";
 | 
						|
			firmware = "atf";
 | 
						|
			loadables = "tee", "spl";
 | 
						|
			fdt = "$(basename $dtname)";
 | 
						|
		};
 | 
						|
__CONF_SECTION_EOF
 | 
						|
done
 | 
						|
 | 
						|
cat << __ITS_EOF
 | 
						|
	};
 | 
						|
};
 | 
						|
__ITS_EOF
 |