blob: 93de8669109d906cc8cd3eab202af7185c909da7 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0+
#ifdef CONFIG_SYS_BOOT_LOCKED
#define SETUP_BOOT_MENU setup_boot_menu=setenv bootmenu_0 eMMC=run bootcmd
#else
#define SETUP_BOOT_MENU setup_boot_menu= \
if test "${mmcdev}" = 1; then \
setenv emmc_priority 0; \
setenv sd_priority 1; \
else setenv emmc_priority 1; \
setenv sd_priority 0; \
fi; \
setenv bootmenu_${emmc_priority} eMMC=run boot_emmc; \
setenv bootmenu_${sd_priority} SD=run boot_sd;
#endif
altbootcmd=
echo Performing rollback...;
if test "${mmcpart_committed}" = 1; then
setenv mmcpart 2;
setenv mmcpart_committed 2;
else
setenv mmcpart 1;
setenv mmcpart_committed 1;
fi;
setenv bootcount 0;
setenv upgrade_available;
setenv ustate 3;
saveenv;
run bootcmd;
boot_emmc=setenv mmcdev_wanted 1; run persist_mmcdev; run bootcmd;
boot_sd=setenv mmcdev_wanted 0; run persist_mmcdev; run bootcmd;
bootcmd=
if test "${bootcount}" -gt "${bootlimit}"; then
run altbootcmd;
else
if test "${ustate}" = 1; then
setenv upgrade_available 1;
saveenv;
fi;
run mmcboot;
fi;
bootdelay=2
bootlimit=3
bootm_size=0x10000000
commit_mmc=
if test "${ustate}" = 1 -a "${mmcpart}" != "${mmcpart_committed}"; then
setenv mmcpart_committed ${mmcpart};
saveenv;
fi;
console=ttymxc0
loadbootpart=mmc partconf 1 boot_part
loadimage=load mmc ${mmcdev}:${gpt_partition_entry}
loadpart=gpt setenv mmc ${mmcdev} rootfs-${mmcpart_committed}
mmcargs=
setenv bootargs console=${console},${baudrate} root=/dev/mmcblk${mmcdev}p${gpt_partition_entry} rootwait rw SM_ROOT_DEV=${mmcdev} SM_ROOT_PART=${gpt_partition_entry} SM_BOOT_PART=${boot_part}
mmcboot=
echo Booting...;
echo mmcdev: ${mmcdev};
run commit_mmc;
echo mmcpart: ${mmcpart_committed};
run loadpart;
echo gptpart: ${gpt_partition_entry};
run loadbootpart;
if run loadimage; then
;
else
run altbootcmd;
fi;
#ifdef CONFIG_SYS_BOOT_LOCKED
hab_auth_img_or_fail ${fileaddr} ${filesize};
#else
hab_auth_img ${fileaddr} ${filesize};
#endif
run mmcargs;
if bootm; then
;
else
run altbootcmd;
fi;
mmcdev=1
mmcpart=1
mmcpart_committed=1
persist_mmcdev=
if test "${mmcdev}" != "${mmcdev_wanted}"; then
setenv mmcdev "${mmcdev_wanted}";
saveenv;
fi;
setup_boot_menu=
if test "${mmcdev}" = 1; then
setenv emmc_priority 0;
setenv sd_priority 1;
else
setenv emmc_priority 1;
setenv sd_priority 0;
fi;
setenv bootmenu_${emmc_priority} eMMC=run boot_emmc;
setenv bootmenu_${sd_priority} SD=run boot_sd;
SETUP_BOOT_MENU