mmcdev=0
mmcrootfstype=ext4 rootwait
finduuid=part uuid ${boot} ${bootpart} uuid
args_mmc=run finduuid;setenv bootargs console=${console}
	${optargs}
	root=PARTUUID=${uuid} rw
	rootfstype=${mmcrootfstype}
#ifndef CONFIG_BOOTSTD
loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
#endif
bootscript=echo Running bootscript from mmc${mmcdev} ...;
	source ${loadaddr}
bootenvfile=uEnv.txt
importbootenv=echo Importing environment from mmc${mmcdev} ...;
	env import -t ${loadaddr} ${filesize}
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/dtb/${fdtfile}
get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/dtb/${name_fdt}
envboot=if mmc dev ${mmcdev}; then
	if mmc rescan; then
		echo SD/MMC found on device ${mmcdev};
		if test -n "${loadbootscript}" && run loadbootscript; then
			run bootscript;
		else
			if run loadbootenv; then
				echo Loaded env from ${bootenvfile};
				run importbootenv;
			fi;
			if test -n $uenvcmd; then
				echo Running uenvcmd ...;
				run uenvcmd;
			fi;
		fi;
	fi;
  fi;
mmcloados=
	if test ${boot_fdt} = yes || test ${boot_fdt} = try; then
		if run get_fdt_mmc; then
			bootz ${loadaddr} - ${fdtaddr};
		else
			if test ${boot_fdt} = try; then
				bootz;
			else
				echo WARN: Cannot load the DT;
				fi;
		fi;
	else
		bootz;
	fi;
mmcboot=if mmc dev ${mmcdev}; then
	devnum=${mmcdev};
	devtype=mmc;
	if mmc rescan; then
		echo SD/MMC found on device ${mmcdev};
		if run loadimage; then
			run args_mmc;
			if test ${boot_fit} -eq 1; then
				run run_fit;
			else
				run mmcloados;
			fi;
		fi;
	fi;
  fi;

init_mmc=run args_all args_mmc
get_overlay_mmc=
	fdt address ${fdtaddr};
	fdt resize 0x100000;
	for overlay in $name_overlays;
	do;
	load mmc ${bootpart} ${dtboaddr} ${bootdir}/dtb/${overlay} &&
	fdt apply ${dtboaddr};
	done;
get_kern_mmc=load mmc ${bootpart} ${loadaddr}
	${bootdir}/${name_kern}
get_fit_mmc=load mmc ${bootpart} ${addr_fit}
	${bootdir}/${name_fit}
partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
