2023-04-26 16:05:01 +00:00
|
|
|
// 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;
|
2023-06-26 14:31:36 +00:00
|
|
|
bootcmd=
|
|
|
|
if test "${bootcount}" -gt "${bootlimit}"; then
|
|
|
|
run altbootcmd;
|
|
|
|
else
|
|
|
|
if test "${ustate}" = 1; then
|
|
|
|
setenv upgrade_available 1;
|
|
|
|
saveenv;
|
|
|
|
fi;
|
|
|
|
run mmcboot;
|
|
|
|
fi;
|
2023-04-26 16:05:01 +00:00
|
|
|
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
|
2023-09-20 10:49:08 +00:00
|
|
|
loadimage=load mmc ${mmcdev}:${gpt_partition_entry}
|
2023-04-26 16:05:01 +00:00
|
|
|
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;
|
2023-09-20 10:49:08 +00:00
|
|
|
#ifdef CONFIG_SYS_BOOT_LOCKED
|
|
|
|
hab_auth_img ${fileaddr} ${filesize};
|
|
|
|
#else
|
|
|
|
hab_auth_img_or_fail ${fileaddr} ${filesize};
|
|
|
|
#endif
|
2023-04-26 16:05:01 +00:00
|
|
|
run mmcargs;
|
2023-09-20 10:49:08 +00:00
|
|
|
if bootm; then
|
2023-04-26 16:05:01 +00:00
|
|
|
;
|
|
|
|
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
|