/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */

script=boot.scr
image=zImage
fdtfile=undefined
fdt_addr=0x18000000
boot_fdt=try
ip_dyn=yes
dfuspi=dfu 0 sf 0:0:10000000:0
dfu_alt_info_spl=spl raw 0x400
dfu_alt_info_img=u-boot raw 0x10000
dfu_alt_info=spl raw 0x400
initrd_high=0xffffffff
splashimage=CONFIG_SYS_LOAD_ADDR
mmcdev=CONFIG_ENV_MMC_DEVICE_INDEX
mmcpart=1
finduuid=part uuid mmc ${mmcdev}:2 uuid
update_sd_firmware=if test ${ip_dyn} = yes; then
		setenv get_cmd dhcp;
	else
		setenv get_cmd tftp;
	fi;
	if mmc dev ${mmcdev}; then
		if ${get_cmd} ${update_sd_firmware_filename}; then
			setexpr fw_sz ${filesize} / 0x200;
			setexpr fw_sz ${fw_sz} + 1;
			mmc write ${loadaddr} 0x2 ${fw_sz};
		fi;
	fi
#ifdef CONFIG_SUPPORT_EMMC_BOOT
emmcdev=2
update_emmc_firmware=if test ${ip_dyn} = yes; then
		setenv get_cmd dhcp;
	else
		setenv get_cmd tftp;
	fi;
	if ${get_cmd} ${update_sd_firmware_filename}; then
		if mmc dev ${emmcdev} 1; then
			setexpr fw_sz ${filesize} / 0x200;
			setexpr fw_sz ${fw_sz} + 1;
			mmc write ${loadaddr} 0x2 ${fw_sz};
		fi;
	fi
#endif
mmcargs=setenv bootargs console=${console},${baudrate} root=PARTUUID=${uuid} rootwait rw
loadbootscript=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script} ||
	load mmc ${mmcdev}:${mmcpart} ${loadaddr} boot/${script};
bootscript=echo Running bootscript from mmc ...; source
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image} ||
	load mmc ${mmcdev}:${mmcpart} ${loadaddr} boot/${image}
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdtfile} ||
	load mmc ${mmcdev}:${mmcpart} ${fdt_addr} boot/${fdtfile}
mmcboot=echo Booting from mmc ...;
	run finduuid;
	run mmcargs;
	if test ${boot_fdt} = yes || test ${boot_fdt} = try; then
		if run loadfdt; then
			bootz ${loadaddr} - ${fdt_addr};
		else
			if test ${boot_fdt} = try; then
				bootz;
			else
				echo WARN: Cannot load the DT;
			fi;
		fi;
	else
		bootz;
	fi;
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs
	ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...;
	run netargs;
	if test ${ip_dyn} = yes; then
		setenv get_cmd dhcp;
	else
		setenv get_cmd tftp;
	fi;
	${get_cmd} ${image};
	if test ${boot_fdt} = yes || test ${boot_fdt} = try; then
		if ${get_cmd} ${fdt_addr} ${fdtfile}; then
			bootz ${loadaddr} - ${fdt_addr};
		else
			if test ${boot_fdt} = try; then
				bootz;
			else
				echo WARN: Cannot load the DT;
			fi;
		fi;
	else
		bootz;
	fi;
findfdt=if test $fdtfile = undefined; then
		if test $board_name = SABREAUTO && test $board_rev = MX6QP; then
			setenv fdtfile imx6qp-sabreauto.dtb;
		fi;
		if test $board_name = SABREAUTO && test $board_rev = MX6Q; then
			setenv fdtfile imx6q-sabreauto.dtb;
		fi;
		if test $board_name = SABREAUTO && test $board_rev = MX6DL; then
			setenv fdtfile imx6dl-sabreauto.dtb;
		fi;
		if test $board_name = SABRESD && test $board_rev = MX6QP; then
			setenv fdtfile imx6qp-sabresd.dtb;
		fi;
		if test $board_name = SABRESD && test $board_rev = MX6Q; then
			setenv fdtfile imx6q-sabresd.dtb;
		fi;
		if test $board_name = SABRESD && test $board_rev = MX6DL; then
			setenv fdtfile imx6dl-sabresd.dtb;
		fi;
		if test $fdtfile = undefined; then
			echo WARNING: Could not determine dtb to use;
		fi;
	fi;
