您好!
我正在使用 SD 卡使用 AM64x SKEVM 板、并 使用 Yocto 构建映像。
都尝试启用 bootcount 功能。
我已添加以下行:
#define CONFIG_BOOTCOUNT_LIMIT #define CONFIG_BOOTCOUNT_ENV
以及:
"bootlimit=4\0" \ "altbootcmd= echo Rollback to previous rootfs" \ "if test ${bootpart} = 1:2; " \ "then setenv bootpart 1:3; " \ "else setenv bootpart 1:2; " \ "fi; setenv bootcount 0; saveenv; bootcmd\0" \
至 EXTRA_ENV_AM642_Board_SETTING_MMC 器件
包含在 include/configs/am64x_evm.h 文件中。
我停止了自动引导、并且确实看到添加了引导计数变量。
然后、我尝试测试功能:
我已经添加了变量 upgrade_available、将其设置为1并将引导部件更改为错误的一个(例如1:6、不存在)、继续引导过程、并产生了这个错误:
U-Boot SPL 2021.01-g15769936a5 (Feb 20 2023 - 18:54:55 +0000) EEPROM not available at 80, trying to read at 81 SYSFW ABI: 3.1 (firmware rev 0x0015 '21.9.1--v2021.09a (Terrific Lla') SPL initial stack usage: 13392 bytes Trying to boot from MMC2 Starting ATF on ARM64 core... NOTICE: BL31: v2.5(release):08.03.00.002-dirty NOTICE: BL31: Built : 19:53:47, Mar 14 2023 U-Boot SPL 2021.01-g15769936a5 (Mar 16 2023 - 09:47:30 +0000) SYSFW ABI: 3.1 (firmware rev 0x0015 '21.9.1--v2021.09a (Terrific Lla') Trying to boot from MMC2 U-Boot 2021.01-g15769936a5 (Mar 16 2023 - 09:47:30 +0000) SoC: AM64X SR1.0 Model: Texas Instruments AM642 SK Board: AM64-SKEVM rev E3 DRAM: 2 GiB MMC: mmc@fa00000: 1 In: serial@2800000 Out: serial@2800000 Err: serial@2800000 Failed to lookup gpio gpio@38_0: -22 Net: eth2: ethernet@8000000 Hit any key to stop autoboot: 0 => setenv bootpart 1:6 => setenv upgrade_available 1 => saveenv Saving Environment to FAT... OK => boot switch to partitions #0, OK mmc1 is current device SD/MMC found on device 1 Failed to load 'boot.scr' 1011 bytes read in 2 ms (493.2 KiB/s) Loaded env from uEnv.txt Importing environment from mmc1 ... ** Invalid partition 6 ** ** Invalid partition 6 ** ** Invalid partition 6 ** Bad Linux ARM64 Image magic! => pri bootlimit bootlimit=4 => pri bootcount bootcount=1
在使用 fw_setenv 命令后、我也无法看到新变量或修改后的变量。 我正在从引导分区加载 uboot.env、我的 importbootenv 变量如下所示:
importbootenv=echo Importing environment from mmc${mmcdev} ...; fatload mmc ${mmcdev} ${loadaddr} uboot.env;env import -t ${loadaddr} ${filesize}
我是否缺少一些东西来正确配置它?
谢谢。
Shmulik.