使用 LS1043AE 的定制板无需 OP-TEE 即可正常安全启动。尝试将 OP-TEE 引入系统和控制台输出时,卡在以下位置:
注意:2 GB DDR4,32 位,CL=11,ECC 关闭
注意:BL2:v2.4(版本):LSDK-21.08-1-ga08bfddba-dirty
通知:BL2:构建时间:2026年8月31日 22:39:20
注意:正在初始化和配置 高效密码学标准(SEC) 模块。
注意:高效密码学标准\(SEC\) 已初始化并配置完成。
注意:正在验证 RSA
注意:正在验证哈希值
注意:正在验证 RSA
注意:正在验证哈希值
注意:正在验证 RSA
注意:正在验证哈希值
注意:BL2:正在启动 BL31
注意:BL31:v2.4(发布版):LSDK-21.08-1-ga08bfddba-dirty
通知:BL31:版本:2026年8月31日 22:39:48
通知:欢迎来到 ls1043aerb BL31 阶段
根据谷歌/Gemini的说法,他们认为GIC存在问题。ATF 和 OP-TEE 似乎使用的是 64k 页对齐,但在 uboot dts 中却是 4k 页对齐。我不认为这是个问题,或者至少目前还不是。因为它似乎根本没有初始化 OP-TEE。
有什么想法?
你的 u-boot 似乎有问题。
请问您能否尝试在启用 OPTEE 的情况下,启动普通的 u-boot(非安全模式)?
我不介意尝试一下,但是这个测试的目的是什么呢?你目前认为uboot可能存在什么问题?既然不用 optee 也能正常工作,我很好奇可能出了什么问题,或者我应该检查哪些方面?
我首先会检查以下内容:
fiptool info fip.bin
并确认 BL31、BL32/OP-TEE 和 BL33 都存在。如果 BL32 缺失或 BL31 没有使用 SPD=opteed 构建,则永远不会输入 OP-TEE。
我最强烈的假设是:启用 OP-TEE 时,BL31 的构建/配置有所不同,并且在 OP-TEE 横幅或 BL32 条目之前,BL31 平台/SPD 设置早期阶段会卡住。我首先会在 GIC/平台设置周围对 BL31 进行插桩,并验证 FIP/SPD=opteed/BL32=tee.bin/secure-boot CSF 布局,然后检查 LS1043A NXP_ROM_RSVD=0x8000 问题。
所以我用调试模式编译了 atf,在程序静默挂起之前看到的最后一条信息是:
信息:BL31:正在初始化 BL32
所以如果我理解你的建议没错的话,我现在应该重点关注 OP-TEE,对吗?
是的,请先使用正常启动(非安全启动)验证 OP-TEE,以确保您的 OP-TEE 构建和部署过程没有问题。
我相信我之前用错了 tee.bin 文件。
我之前使用的是手动构建 OP-TEE 时生成的 tee.bin 文件,而不是我需要生成的 objcopy 版本。这样似乎可以启动系统并进入 Linux 系统。
我还有一些关于 optee 的内核日志消息需要查看,但由于这个问题已经解决,我将关闭此帖。