bootcmd=mmc dev ${mmcdev}; if mmc rescan; then env exists dofitboot || setenv dofitboot 0;env exists doraucboot || setenv doraucboot 0;run spiprobe; if test ${doraucboot} = 1; then run raucboot; elif run loadimage; then run mmcboot; else run netboot; fi; fi; 
bootdelay=2
baudrate=115200
loadaddr=0x40480000
image=Image
console=ttymxc0
fdt_addr=0x48000000
fdto_addr=0x49000000
bootenv_addr=0x49100000
fdt_file=oftree
bootenv=bootenv.txt
mmc_load_bootenv=fatload mmc ${mmcdev}:${mmcpart} ${bootenv_addr} ${bootenv}
ipaddr=192.168.3.11
serverip=192.168.3.10
netmask=255.255.255.0
ip_dyn=no
mtdparts=30bb0000.spi:3840k(u-boot),128k(env),128k(env_redund),-(none)
mtdids=nor0=30bb0000.spi
prepare_mcore=setenv mcore_clk clk-imx8mp.mcore_booted;
spiprobe=true
emmc_dev=2
sd_dev=1
mmcdev=2
mmcpart=1
mmcroot=2
mmcautodetect=yes
mmcargs=setenv bootargs ${mcore_clk} console=${console},${baudrate} root=/dev/mmcblk${mmcdev}p${mmcroot} fsck.repair=yes rootwait rw
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
mmc_load_overlay=fatload mmc ${mmcdev}:${mmcpart} ${fdto_addr} ${overlay}
mmc_apply_overlays=fdt address ${fdt_addr}; if test ${no_extensions} = 0; then setenv extension_overlay_addr ${fdto_addr}; setenv extension_overlay_cmd 'fatload mmc ${mmcdev}:${mmcpart} ${fdto_addr} ${extension_overlay_name}'; extension scan; extension apply all; fi; if test ${no_overlays} = 0; then for overlay in $overlays; do; if run mmc_load_overlay; then fdt resize ${filesize}; fdt apply ${fdto_addr}; fi; done;fi;
 mmcboot=echo Booting from mmc ...; run spiprobe; if test ${no_bootenv} = 0; then if run mmc_load_bootenv; then env import -t ${bootenv_addr} ${filesize}; fi; fi; run mmcargs; run fit_test_and_run_boot; if run loadfdt; then run mmc_apply_overlays; booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi;
 nfsroot=/nfs
netargs=setenv bootargs ${mcore_clk} console=${console},${baudrate} root=/dev/nfs ip=${nfsip} nfsroot=${serverip}:${nfsroot},v3,tcp
net_load_bootenv=${get_cmd} ${bootenv_addr} ${bootenv}
net_load_overlay=${get_cmd} ${fdto_addr} ${overlay}
net_apply_overlays=fdt address ${fdt_addr}; if test ${no_extensions} = 0; then setenv extension_overlay_addr ${fdto_addr}; setenv extension_overlay_cmd '${get_cmd} ${fdto_addr} ${extension_overlay_name}'; extension scan; extension apply all; fi; if test ${no_overlays} = 0; then for overlay in $overlays; do; if run net_load_overlay; then fdt resize ${filesize}; fdt apply ${fdto_addr}; fi; done;fi;
 netboot=echo Booting from net ...; run spiprobe; if test ${ip_dyn} = yes; then setenv nfsip dhcp; setenv get_cmd dhcp; else setenv nfsip ${ipaddr}:${serverip}::${netmask}::eth0:on; setenv get_cmd tftp; fi; if test ${no_bootenv} = 0; then if run net_load_bootenv; then env import -t ${bootenv_addr} ${filesize}; fi; fi; run netargs; ${get_cmd} ${loadaddr} ${image}; if ${get_cmd} ${fdt_addr} ${fdt_file}; then run net_apply_overlays; booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi;
raucdev=2
imx_boot_offset=0x40
efi_boot_targets=usb0 mmc1 mmc2
raucslot=system0
raucbootpart=1
raucrootpart=5
raucbootpart0=1
raucrootpart0=5
raucbootpart1=2
raucrootpart1=6
raucargs=setenv bootargs console=${console},${baudrate} root=/dev/mmcblk${raucdev}p${raucrootpart} rauc.slot=${raucslot} rootwait rw
loadraucimage=fatload mmc ${raucdev}:${raucbootpart} ${loadaddr} ${image}
loadraucfdt=fatload mmc ${raucdev}:${raucbootpart} ${fdt_addr} ${fdt_file}
loadraucfdto=fatload mmc ${raucdev}:${raucbootpart} ${fdto_addr} ${overlay}
loadrauc_bootenv=fatload mmc ${raucdev}:${raucbootpart} ${bootenv_addr} ${bootenv}
rauc_apply_overlays=fdt address ${fdt_addr}; if test ${no_extensions} = 0; then setenv extension_overlay_addr ${fdto_addr}; setenv extension_overlay_cmd 'fatload mmc ${raucdev}:${raucbootpart} ${fdto_addr} ${extension_overlay_name}'; extension scan; extension apply all; fi; if test ${no_overlays} = 0; then for overlay in $overlays; do if run loadraucfdto; then fdt resize ${filesize}; fdt apply ${fdto_addr}; fi; done;fi;
raucemmcboot=echo Booting A/B system from eMMC...; if run loadrauc_bootenv; then env import -t ${bootenv_addr} ${filesize}; fi; if run loadraucimage; then run raucargs; run fit_test_and_run_boot; if run loadraucfdt; then run rauc_apply_overlays; booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load device tree; fi; else echo WARN: Cannot load kernel image; fi;
raucboot=test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "system0 system1"; test -n "${BOOT_system0_LEFT}" || setenv BOOT_system0_LEFT 3; test -n "${BOOT_system1_LEFT}" || setenv BOOT_system1_LEFT 3; setenv raucstatus; for BOOT_SLOT in "${BOOT_ORDER}"; do if test "x${raucstatus}" != "x"; then echo Skipping remaing slots!; elif test "x${BOOT_SLOT}" = "xsystem0"; then if test ${BOOT_system0_LEFT} -gt 0; then echo "Found valid slot A, ${BOOT_system0_LEFT} attempts remaining"; setexpr BOOT_system0_LEFT ${BOOT_system0_LEFT} - 1; setenv raucbootpart ${raucbootpart0}; setenv raucrootpart ${raucrootpart0}; setenv raucslot system0; run raucargs; setenv raucstatus success; fi; elif test "x${BOOT_SLOT}" = "xsystem1"; then if test ${BOOT_system1_LEFT} -gt 0; then echo "Found valid slot B, ${BOOT_system1_LEFT} attempts remaining"; setexpr BOOT_system1_LEFT ${BOOT_system1_LEFT} - 1; setenv raucbootpart ${raucbootpart1}; setenv raucrootpart ${raucrootpart1}; setenv raucslot system1; run raucargs; setenv raucstatus success; fi; fi; done; if test -n "${raucstatus}"; then env delete raucstatus; saveenv; run raucemmcboot; else echo "WARN: No valid slot found"; setenv BOOT_system0_LEFT 3; setenv BOOT_system1_LEFT 3; env delete raucstatus; saveenv; reset; fi;
bootretry=-1
fit_create_overlay_conf_spec=fdt address ${loadaddr}; fdt get value default_fit_conf /configurations/ default; overlay_specs="${loadaddr}:#${default_fit_conf}"; for overlay in ${overlays}; do overlay_specs=${overlay_specs}#${overlay}; done; env set bootm_fit_conf_spec ${overlay_specs};
fit_test_and_run_boot=if test ${dofitboot} = 1; then if test ${no_overlays} = 0; then run fit_create_overlay_conf_spec; bootm ${bootm_fit_conf_spec};else bootm; fi; fi;
efi_bootcmd=for target in ${efi_boot_targets}; do run efi_bootcmd_${target}; done;
efi_bootcmd_mmc1=devnum=1; run efi_mmc_boot;
efi_bootcmd_mmc2=devnum=2; run efi_mmc_boot;
efi_bootcmd_usb0=devnum=0; run efi_usb_boot;
efi_mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_efi_boot_part; fi;
efi_usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_efi_boot_part; fi;
scan_dev_for_efi_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do run scan_dev_for_efi_boot; done; setenv devplist;
scan_dev_for_efi_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; run scan_dev_for_efi;
scan_dev_for_efi= run boot_efi_bootmgr; if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi;
boot_efi_bootmgr=env set dfu_alt_info "${devtype} ${mmcdev}=${mmcpart} raw ${imx_boot_offset} 0x2000"; efidebug boot add 0 Boot0000 ${devtype} ${devnum}:${distro_bootpart} capsule1.bin; efidebug boot next 0; setenv -e -nv -bs -rt -v OsIndications =0x04; bootefi bootmgr;
boot_efi_binary=env set dfu_alt_info "${devtype} ${mmcdev}=${mmcpart} raw ${imx_boot_offset} 0x2000"; efidebug boot add 0 Boot0000 ${devtype} ${devnum}:${distro_bootpart} capsule1.bin; efidebug boot next 0; setenv -e -nv -bs -rt -v OsIndications =0x04; fatload ${devtype} ${devnum}:${distro_bootpart} ${loadaddr} efi/boot/bootaa64.efi; bootefi ${loadaddr} ${fdtcontroladdr};


