各位专家好,
我正在使用 i.MX95 平台,并启用ROLLBACK_INDEX_IN_CONTAINER 的回滚保护功能。
我在local.conf文件中引入了以下变量:
export ROLLBACK_INDEX_IN_CONTAINER = "1"该值会在整个构建过程中传递,构建日志证实mkimage_imx8被调用时使用了“1”。
构建eMMC 启动映像时,解析生成的镜像显示容器软件版本已正确更新。
if [ 1 ]; then \
./../mkimage_imx8 -soc IMX9 -cntr_version 2 -sw_version 1 -c \
-ap bl31.bin a55 0x8A200000 \
-ap u-boot-hash.bin a55 0x90200000 \
-ap tee.bin a55 0x8C000000 \
-out u-boot-atf-container.img; \
然而,在构建FlexSPI 启动镜像( imx-boot-imx95-19x19-verdin-fspi.bin-flash_a55_flexspi )时,解析该镜像仍然报告默认的软件版本。
./mkimage_imx8 -soc IMX9 -parse imx-boot-imx95-19x19-verdin-fspi.bin-flash_a55_flexspi
SOC: IMX9
Input container binary to be parsed: imx-boot-imx95-19x19-verdin-fspi.bin-flash_a55_flexspi
*********************************
* *
* APP CONTAINER 1 *
* *
*********************************
Length: 0X320 (800)
Tag: 0X87
Version: 0X2
Flags: 0X10
Num images: 6
Fuse version: 0
SW version: 0X0
Sig blk offset: 0X310我在 iMX95/soc.mak 中注意到一个有趣的地方,因为在构建 flash_a55_flexspi 时没有包含 sw_version。
flash_a55_flexspi: $(MKIMG) $(AHAB_IMG) $(MCU_IMG) $(SPL_A55_IMG) $(OEI_IMG_M33) fcb.bin u-boot-atf-container.img
./$(MKIMG) -soc IMX9 -cntr_version $(CTNR_VERSION) $(XSPI_FAST_HASH) -dev flexspi -append $(AHAB_IMG) -c $(OEI_OPT_M33) -msel $(MSEL) \
-m33 $(MCU_IMG) 0 $(MCU_TCM_ADDR) \
-ap $(SPL_A55_IMG) a55 $(SPL_LOAD_ADDR_M33_VIEW) $(V2X_DUMMY) -fcb fcb.bin $(FCB_LOAD_ADDR) -out flash.bin
$(call append_container,u-boot-atf-container.img,1)
$(call append_fcb)我的问题是:
如果有人已成功在 i.MX95 上为 FlexSPI 启动映像启用ROLLBACK_INDEX_IN_CONTAINER ,能否分享一下预期流程或所需的任何其他配置?
提前感谢!
顺祝商祺!
阿伦·库马尔
FlexSPI 镜像不是 AHAB 格式的另一种变体,而是采用了一种组合过程,即先生成引导容器,然后附加 U-Boot/ATF 容器。您的-sw_version 1已在u-boot-atf-container.img上设置;但是,包含 SM/M33、OEI、SPL 和 FCB 的 APP 容器( flash_a55_flexspi首先创建)没有传递-sw_version选项,因此该容器仍然显示SW 版本:0。ROLLBACK_INDEX_IN_CONTAINER用于生成辅助 U-Boot/ATF APP 容器,但它没有传递给flash_a55_flexspi创建的主 APP 容器。如果第一个 FlexSPI APP 容器需要相同的软件版本,则还必须将-sw_version $(ROLLBACK_INDEX_IN_CONTAINER)添加到flash_a55_flexspi中的 mkimage_imx8 调用中。
如果目标是真正实现 AHAB 防回滚强制执行,则需要验证和配置的关键设置是fuse_version和-fuse_version ,而不仅仅是sw_version 。S PSDK 的 i.MX95 防回滚示例明确指出,OEM 防回滚使用 AHAB 容器 YAML 中指定的fuse_version ,然后通过 ELE 的OEM_FW_FUSE提交过程提交该版本。
此致,
志明