// 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 ${fileaddr} ${filesize}; #else hab_auth_img_or_fail ${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