This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-AM64:启用引导计数支持

Guru**** 1079480 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1206871/sk-am64-enable-bootcount-support

器件型号:SK-AM64

您好!  

我正在使用 SD 卡使用 AM64x SKEVM 板、并 使用 Yocto 构建映像。  

都尝试启用 bootcount 功能。

正如我在该主题上看到的: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/769365/linux-beaglebk-enable-u-boot-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.