2201723_zh-CN

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

2201723_zh-CN

2201723_zh-CN

在 i.MX RT 双图像设置中,HAB 身份验证成功,但出现警告(不支持的引擎 - DCP)1050

你好,
我正在为 i.MX RT1050 MCU 开发安全启动实现,并希望实现双映像身份验证 ——一个用于第二阶段引导加载程序,另一个用于应用程序映像,两者都位于外部闪存中。

设置概述

  • SRK、IMG 和 CSF 证书使用恩智浦安全配置工具 (SPT) 生成。

  • 第二阶段引导加载程序由 ROM 使用 HAB 进行签名和验证。

  • 应用程序映像在启动加载程序后存储在外部闪存中,可独立更新(如通过 USB 或 OTA)。

  • 第二态引导加载程序会调用ROM HAB 应用程序接口(API),以在执行前验证应用程序映像。

    实施细节

    两个镜像(引导加载程序 + 应用程序)都使用相同的 SRK/CSF 密钥集签名。
    在第二阶段引导加载程序中,我调用了 HAB 身份验证,如下所示:

    load_addr = (uint32_t) hab_authenticate_image_no_dcd(1,ivt_offset,image_start,字节);

    hab_image_entry_f hab_authenticate_image_no_dcd (uint8_t cid、uint32_t ivt_t 起始、大小_t 字节)
    {
    返回 g_habrvtTree-> authenticate_image_no_dcd (cid、ivt_offset、(void **) & 开始,(size_t *) &
    字节,空值);}

    身份验证有效 — 该函数返回有效的重置处理程序地址,以确认图像已成功验证。

    问题:HAB 警告(不支持的引擎 - DCP)

    验证成功后,我使用 hab_rvt_report_status() 和 hab_rvt_report_event() 查询 HAB 状态和事件日志。
    虽然身份验证通过了,但我始终收到HAB 警告,而不是 HAB_SUCCESS。

    输出示例:

    Hab rvt 报告状态 = 0x69,配置 = 0xcc,状态 = 0x99
    报告事件 #0-> 0xf0
    [HAB EVENT #0](44 字节):
    DB 00 2C 43 69 0A C0 00 CA 00 24 00 02 C5 1B 00...

    根据HAB4 文档对这一事件进行解码时,它表示

    • 0x69 → 警告

    • 0x0A → 不支持的引擎

    • 0xC0 → 在 hab_rvt.run_csf() 中记录的事件

    • 序列 02 C5 1B 00 映射到

      • 图像密钥验证索引

      • 协议:HAB_PCL_CMS

      • 发动机DCP

      • 默认配置

    由此我明白,ROM 报告 "警告 "是因为它试图在 CSF 执行期间使用 DCP 引擎,但 DCP 在我的第二阶段引导加载器上下文中没有正确初始化或可用。

    我的尝试

    我使用 SDK 驱动程序手动初始化了 DCP:

     
    DCP_Init(DCP,&config);

    (启用所有通道和默认设置)

    但是,警告仍然存在 - 验证成功,但事件日志仍然报告 "不支持引擎 (DCP)"。

    问题

    1. 初级 HAB 验证SSB 过程中,ROM 如何初始化和使用 DCP?

    2. 手动调用 HAB ROM 应用程序接口时,会出现这种警告吗?

    3. 是否有可能从自定义引导加载程序调用 ROM HAB 身份验证 API 并实现 HAB_SUCCES S(无警告),还是在初始启动环境之外使用 ROM HAB API 时会出现此警告



Re: HAB authentication succeeds with WARNING (Unsupported Engine – DCP) on i.MX RT dual image setup1

你好@BiHDeveloper

感谢您的联系!

在深入研究之前,您能否手动修改 BD 文件,将 Header_Engine 设为 "any"?然后把结果告诉我

diego_charles_2-1762816138764.png

编辑:更新bd文件后,如上所示,再次版本镜像,注意SPT在版本映像时自动生成BD文件按钮。为了避免这种情况,您可以在项目工作区手动运行 build_image 脚本。然后将新图像写入处理器。

如果您发现任何变化,请告诉我。

迪亚戈



Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 05:27 PM
Updated by: