2290510_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2290510_zh-CN

2290510_zh-CN

i.MX8MP 平台开启 CAAM + trusted keys 后 warm reboot 稳定性问题咨询

NXP社区技术人员,大家好

       在 i.MX8MP 平台上做系统稳定性测试时,遇到一个与 CAAM 相关的 warm reboot 小概率卡住问题,想请教是否有相关经验或建议的配置方式。

测试环境说明

  • SoC:i.MX8MP

  • 系统:Yocto Linux(init 启动方式)

  • 内核版本:6.6.52

  • 存储:eMMC

  • 测试方式:系统启动后,通过脚本进行连续 reboot 压力测试

现象描述

  1. 关闭 CAAM 相关功能时

    • 连续 reboot 测试超过 500 次

    • 系统均可正常启动

    • 未出现卡死或启动异常

  2. 开启 CAAM 及 trusted/encrypted keys 相关功能后

    • reboot 测试中 约 1/100 ~ 1/200 的概率

    • 系统在启动阶段卡住

    • 串口停留在早期初始化日志

    • 异常时可观察到类似日志

    3、异常时可观察到类似日志

         <1>内核卡住log

[    2.159151] caam 30900000.crypto: caam pkc algorithms registered in /proc/crypto
[    2.166628] caam 30900000.crypto: rng crypto API alg registered prng-caam
[    2.173441] caam 30900000.crypto: registering rng-caam
[    2.180670] Executing RNG SELF-TEST with wait
[    2.259240] mmc2: new HS400 Enhanced strobe MMC card at address 0001
[    2.266720] mmcblk2: mmc2:0001 DV4032 29.1 GiB
[    2.274171]  mmcblk2: p1 p2 p3
[    2.279584] mmcblk2boot0: mmc2:0001 DV4032 4.00 MiB
[    2.286069] mmcblk2boot1: mmc2:0001 DV4032 4.00 MiB
[    2.293040] mmcblk2rpmb: mmc2:0001 DV4032 16.0 MiB, chardev (234:0)
[   60.410412] imx-sdma 30bd0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[   60.420874] imx-sdma 30bd0000.dma-controller: Falling back to sysfs fallback for: imx/sdma/sdma-imx7d.bin
[  121.822422] imx-sdma 30bd0000.dma-controller: external firmware not found, using ROM firmware
[  123.010384] random: crng init done

     <2> 在 reboot 过程中,也偶尔能看到:

caam_jr ... Device is busy

     <3> 相关内核配置

CONFIG_CRYPTO=y
CONFIG_CRYPTO_DEV_FSL_CAAM=y
CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
CONFIG_TRUSTED_KEYS=y
CONFIG_TRUSTED_KEYS_CAAM=y
CONFIG_ENCRYPTED_KEYS=y
CONFIG_DM_CRYPT=y

关闭 CAAM(或 trusted/encrypted keys),warm reboot 稳定性恢复正常

Re: i.MX8MP 平台开启 CAAM + trusted keys 后 warm reboot 稳定性问题咨询

你好

在 i.MX8MP 平台上,考虑到您提供的内核 6.6.52 和 CAAM RNG 自检卡住问题,这通常与残余 RNG 初始化状态、作业环权限锁定或 SDMA 固件加载超时引起的连锁反应有关。以下是针对该问题的分析建议和配置解决方案:

1。核心原因分析 CAAM 状态机未 RESET:热重启不会 RESET 所有 SoC 寄存器。如果 CAAM 在重启之前很忙(例如,caam_jr...设备在日志中处于繁忙状态),重启后 RNG 的硬件状态机可能处于不确定的中间状态。任务环权限问题:如果使用高度保证启动 (HAB) 或 OP-TEE,BootROM 或 ATF 可能会锁定某些任务环 (JR)。在热重启期间,如果未正确释放 JR 寄存器,Linux 内核将在执行 RNG 自测并等待阶段无限期等待,因为它无法获得硬件响应。

2.建议的优化和解决方案

答:内核配置和驱动程序调整禁用同步自检:尝试在 CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API 中禁用强制等待机制,或者在 U-启动 中预初始化 RNG。

集成 SDMA 固件:将 SDMA 固件编译到内核(CONFIG_EXTRA_FIRMWARE= " imx/sdma/sdma-imx7d.bin ")中,以避免在启动的早期阶段由于文件系统未安装而导致 60 秒的等待时间。这可以大大降低启动过程中的时间风险。

B. 修改 U-启动/ATF RESET 行为(解决方法)热RESET 在 i.MX8M 系列上经常会出现这种残留问题。

C 。DTS 设备树检查 caam_jr 节点的属性。在某些版本中,必须确保任务环分配与安全模式一致:

&crypto {
    status = "okay";
};

&sec_jr0 {
    status = "okay";
};

此致

Re: i.MX8MP 平台开启 CAAM + trusted keys 后 warm reboot 稳定性问题咨询感谢回复!我将对这两个部分进行改动验证,后续反馈情况;
Tags (1)
No ratings
Version history
Last update:
‎01-14-2026 03:24 AM
Updated by: