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

#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
