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

#if CONFIG_CMD_REMOTEPROC
#include <environment/ti/k3_rproc.env>
#endif

default_device_tree=k3-j721s2-common-proc-board.dtb
findfdt=
	setenv name_fdt ${default_device_tree};
	if test $board_name = j721s2; then			\
		setenv name_fdt k3-j721s2-common-proc-board.dtb; fi;
	if test $board_name = am68-sk; then
		setenv name_fdt k3-am68-sk-base-board.dtb; fi;
	setenv fdtfile ${name_fdt}
name_kern=Image
console=ttyS2,115200n8
args_all=setenv optargs earlycon=ns16550a,mmio32,0x02880000
	${mtdparts}
run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}

boot=mmc
mmcdev=1
bootpart=1:2
bootdir=/boot
#if CONFIG_TARGET_J721S2_R5_EVM
addr_mcur5f0_0load=0x89000000
name_mcur5f0_0fw=/lib/firmware/j7-mcu-r5f0_0-fw
#endif
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;
partitions=uuid_disk=${uuid_gpt_disk};
	name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
get_kern_mmc=load mmc ${bootpart} ${loadaddr}
	${bootdir}/${name_kern}
get_fit_mmc=load mmc ${bootpart} ${addr_fit}
	${bootdir}/${name_fit}
partitions=uuid_disk=${uuid_gpt_disk};
	name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}

rproc_fw_binaries= 2 /lib/firmware/j721s2-main-r5f0_0-fw 3 /lib/firmware/j721s2-main-r5f0_1-fw 4 /lib/firmware/j721s2-main-r5f1_0-fw 5 /lib/firmware/j721s2-main-r5f1_1-fw 6 /lib/firmware/j721s2-c71_0-fw 7 /lib/firmware/j721s2-c71_1-fw


