#include <environment/ti/ti_armv7_common.env>
#include <environment/ti/mmc.env>
#include <environment/ti/k3_dfu.env>

findfdt=
	if test $board_name = am64x_gpevm; then
		setenv name_fdt k3-am642-evm.dtb; fi;
	if test $board_name = am64x_skevm; then
		setenv name_fdt k3-am642-sk.dtb; fi;
	if test $name_fdt = undefined; then
		echo WARNING: Could not determine device tree to use; fi;
name_kern=Image
console=ttyS2,115200n8
args_all=setenv optargs earlycon=ns16550a,mmio32,0x02800000 ${mtdparts}
run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}

boot=mmc
mmcdev=1
bootpart=1:2
bootdir=/boot
rd_spec=-
init_mmc=run args_all args_mmc
get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${name_fdt}
get_overlay_mmc=
	fdt address ${fdtaddr};
	fdt resize 0x100000;
	for overlay in $name_overlays;
	do;
	load mmc ${bootpart} ${dtboaddr} ${bootdir}/${overlay} &&
	fdt apply ${dtboaddr};
	done;
get_kern_mmc=load mmc ${bootpart} ${loadaddr}
	${bootdir}/${name_kern}
get_fit_mmc=load mmc ${bootpart} ${addr_fit}
	${bootdir}/${name_fit}
partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}

args_usb=run finduuid;setenv bootargs console=${console}
	${optargs}
	root=PARTUUID=${uuid} rw
	rootfstype=${mmcrootfstype}
init_usb=run args_all args_usb
get_fdt_usb=load usb ${bootpart} ${fdtaddr} ${bootdir}/${name_fdt}
get_overlay_usb=
	fdt address ${fdtaddr};
	fdt resize 0x100000;
	for overlay in $name_overlays;
	do;
	load usb ${bootpart} ${dtboaddr} ${bootdir}/${overlay} && fdt apply
	${dtboaddr};
	done;
get_kern_usb=load usb ${bootpart} ${loadaddr}
	${bootdir}/${name_kern}
get_fit_usb=load usb ${bootpart} ${addr_fit}
	${bootdir}/${name_fit}
usbboot=setenv boot usb;
	setenv bootpart 0:2;
	usb start;
	run findfdt;
	run init_usb;
	run get_kern_usb;
	run get_fdt_usb;
	run run_kern;
