# RAUC U-Boot Environment Variables for NAND
ubiload_nand=ubi part ubi; ubi read ${loadaddr} kernel_${SELECTED_SLOT}
setbootargs=setenv bootargs "console=ttyS0,115200 earlyprintk ubi.mtd=4 root=ubi0:rootfs_${SELECTED_SLOT} rootfstype=ubifs rauc.slot=${SELECTED_SLOT}"
BOOT_ORDER=a b
BOOT_a_LEFT=3
BOOT_b_LEFT=3
boot_dflt=test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "a b"; test -n "${BOOT_a_LEFT}" || setenv BOOT_a_LEFT 3; test -n "${BOOT_b_LEFT}" || setenv BOOT_b_LEFT 3; setenv BOOT_DEV; setenv BOOT_SLOT;
boot_scr=run boot_loadvars;run boot_dflt; run boot_slotloop; run boot_save;
boot_testa=if test ${BOOT_a_LEFT} -gt 0; then setexpr BOOT_a_LEFT ${BOOT_a_LEFT} - 1; echo "Found valid slot A, ${BOOT_a_LEFT} attempts remaining"; setenv BOOT_DEV rootfs_a; setenv SELECTED_SLOT a; fi
boot_testb=if test ${BOOT_b_LEFT} -gt 0; then setexpr BOOT_b_LEFT ${BOOT_b_LEFT} - 1; echo "Found valid slot B, ${BOOT_b_LEFT} attempts remaining"; setenv BOOT_DEV rootfs_b; setenv SELECTED_SLOT b; fi
boot_save=if test -n "${BOOT_DEV}"; then run boot_savevars ; else echo "No valid slot found, resetting tries to 3"; setenv BOOT_a_LEFT 3; setenv BOOT_b_LEFT 3; run boot_savevars; reset; fi
boot_savevars=nand write ${loadaddr} 0x00140000 0x4000
boot_loadvars=nand read ${loadaddr} 0x00140000 0x4000; env import -c ${loadaddr} 0x4000
boot_slotloop=for BOOT_SLOT in "${BOOT_ORDER}"; do if test "x${BOOT_DEV}" != "x"; then echo ""; elif test "x${BOOT_SLOT}" = "xa"; then run boot_testa; elif test "x${BOOT_SLOT}" = "xb"; then run boot_testb; fi; done
bootcmd=run setloadaddr; run boot_scr; run setbootargs; run ubiload_nand; bootm ${loadaddr}
