#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-j721e-common-proc-board.dtb
findfdt=
	setenv name_fdt ${default_device_tree};
	if test $board_name = j721e; then
		setenv name_fdt k3-j721e-common-proc-board.dtb; fi;
	if test $board_name = j7200; then
		setenv name_fdt k3-j7200-common-proc-board.dtb; fi;
	if test $board_name = j721e-eaik || test $board_name = j721e-sk; then
		setenv name_fdt k3-j721e-sk.dtb; 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}

#if CONFIG_TARGET_J721E_R5_EVM
addr_mcur5f0_0load=0x89000000
name_mcur5f0_0fw=/lib/firmware/j7-mcu-r5f0_0-fw
#elif CONFIG_TARGET_J7200_R5_EVM
addr_mcur5f0_0load=0x89000000
name_mcur5f0_0fw=/lib/firmware/j7200-mcu-r5f0_0-fw
#endif

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;
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}

#if CONFIG_TARGET_J7200_A72_EVM
do_main_cpsw0_qsgmii_phyinit=1
init_main_cpsw0_qsgmii_phy=gpio set gpio@22_17;
	gpio clear gpio@22_16
main_cpsw0_qsgmii_phyinit=
	if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1 && test ${dorprocboot} -eq 1 && test ${boot} = mmc; then
		run init_main_cpsw0_qsgmii_phy;
	fi;
#elif CONFIG_TARGET_J721E_A72_EVM
init_main_cpsw0_qsgmii_phy=gpio set gpio@22_17;
	gpio clear gpio@22_16
main_cpsw0_qsgmii_phyinit=
	if test $board_name = J721EX-PM1-SOM || test $board_name = J721EX-PM2-SOM || test $board_name = j721e; then
		do_main_cpsw0_qsgmii_phyinit=1; else
		do_main_cpsw0_qsgmii_phyinit=0; fi;
	if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1 && test ${dorprocboot} -eq 1 && test ${boot} = mmc; then
		run init_main_cpsw0_qsgmii_phy;			\
	fi;
#endif

#if CONFIG_TARGET_J721E_A72_EVM
rproc_fw_binaries=2 /lib/firmware/j7-main-r5f0_0-fw 3 /lib/firmware/j7-main-r5f0_1-fw 4 /lib/firmware/j7-main-r5f1_0-fw 5 /lib/firmware/j7-main-r5f1_1-fw 6 /lib/firmware/j7-c66_0-fw 7 /lib/firmware/j7-c66_1-fw 8 /lib/firmware/j7-c71_0-fw
#endif

#if CONFIG_TARGET_J7200_A72_EVM
rproc_fw_binaries=2 /lib/firmware/j7200-main-r5f0_0-fw 3 /lib/firmware/j7200-main-r5f0_1-fw
#endif
