#include <env/ti/ti_common.env>
#include <env/ti/mmc.env>
#include <env/ti/k3_dfu.env>

findfdt=
	if test $board_name = am64x_gpevm; then
		setenv name_fdt ti/k3-am642-evm.dtb; fi;
	if test $board_name = am64x_skevm; then
		setenv name_fdt ti/k3-am642-sk.dtb; fi;
	if test $name_fdt = undefined; then
		echo WARNING: Could not determine device tree to use; fi;
	setenv fdtfile ${name_fdt}
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=-

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;
