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.

[参考译文] AM263P4:安全启动:单独校准部分刷写

Guru**** 2448780 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1494283/am263p4-secure-boot-individual-calibration-section-flashing

器件型号:AM263P4
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

您好:

我们的目标是在 AM263P 上启用安全启动(目前在 LaunchPad 硬件上开发)。 到目前为止、我已经了解了:

TI Academy

- SDK

-(相关) Keywriter 信息

-安全启动/HSM 文档可通过安全资源在受限安全部分找到。

然而、我们的一个系统要求是能够刷写/重新刷写校准部分、例如传感器偏移值。  

据我目前所知、这将导致安全启动过程出现问题、因为这依赖于刷写完整(x509签名)应用程序映像、然后在运行之前通过 HsmRT 进行身份验证。

Currentlly、Flashwriter 接受二进制"blob"(在本例中为 Full Application .mcelf);将这个已满"blob"刷写到单个闪存地址(在 Uniflash 中指定为偏移量)。 会忽略每个段的加载地址、仅使用运行地址将相关程序段加载到其各自的 RAM 位置。 每次启动时都会进行 HsmRT 身份验证(完整映像的身份验证)、因此即使我们有一个能够仅刷写校准段的自定义闪存写入器、这也会更改映像内容、因此哈希验证将失败。  

简而言之、我们总是需要刷写包含所有可加载段的应用程序、除非我们不启用 HS-SE -除非我的理解不正确?

一些问题:

1)完成 eFuse 编程后、如果应用映像验证失败、HsmRT 如何阻止应用程序启动?

2) HsmRT 如何执行哈希验证? 应用程序映像是在验证之前复制到 RAM 中(从而限制最大映像大小)、还是通过从闪存复制块来实现?

3)关于 HsmRT 是否可供我们使用的文件不是很清楚。 例如、源1

源2:

由此、我想可以编辑 HS-SE 的 HsmRT 映像、但不能编辑 HS-HsmRT 映像 FS (TI 提供)。  在这种情况下、对于 HS-SE、可能会修改 HsmRT 行为以执行基于段的校验和/哈希验证、而不是完整映像验证。 此假设是否正确?

4)如果上述内容正确、我们是否可以在 HS-SE FS 器件(未编程电子保险丝)上运行 HsmRT 以进行测试?

5) HsmRT 需要哪些步骤/func 调用才能完全完成应用程序映像身份验证?

谢谢、
RENs

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

    有人在这里给出建议吗? 谢谢、Rens

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid="640733" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1494283/am263p4-secure-boot-individual-calibration-section-flashing

    1)完成 eFuse 编程后、如果应用映像验证失败、HsmRT 如何阻止应用程序启动?

    2) HsmRT 如何执行哈希验证? 应用程序映像是在验证之前复制到 RAM 中(从而限制最大映像大小)、还是通过从闪存复制块来实现?

    [/报价]

    1.如果映像验证失败、则不会引导映像、基本上 HSMRT 将向 SBL 发送 NACK、这不允许继续执行 SBL、您可以查看 SBL OSPI 示例代码以进一步了解。

    2.虽然我无法在这里公开分享信息,因为这是 NDA 信息,但您可以查看 HSM RT 固件项目.c 文件来了解流程。 SDK 1支持复制这两种方法。 SBL OSPI MCELF 2. SBL OSPI MCELF 快速引导、请参阅 SDK 中的 SBL 示例。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid="640733" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1494283/am263p4-secure-boot-individual-calibration-section-flashing

    3)关于 HsmRT 是否可供我们使用的文件不是很清楚。 例如、源1

    源2:

    由此、我想可以编辑 HS-SE 的 HsmRT 映像、但不能编辑 HS-HsmRT 映像 FS (TI 提供)。  在这种情况下、对于 HS-SE、可能会修改 HsmRT 行为以执行基于段的校验和/哈希验证、而不是完整映像验证。 此假设是否正确?

    [/报价]

    是的、将设备转换为 HSSE 后、您可以修改 HSMRT 图像和源代码。

    客户无法使用 HSFS 器件固件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    4)如果上述内容正确、我们能否在 HS-SE FS 器件(未编程电子保险丝)上运行 HsmRT 进行测试?

    否、TI 不提供 HSFS HSM_RT 映像、建议在 HSSE 器件上使用 HSMSRT 开发流程。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    5) HsmRT 需要哪些步骤/函数调用才能完全完成应用程序映像身份验证?

    请参阅 SBL OSPI 示例以了解详细信息。

    请参阅 API:

    bootloader_parseAndLoadMultiCoreELF
    此 API 负责图像解析和身份验证。

    mcu_plus_sdk_am261x_10_00_01_10/source/drivers/bootloader/bootloader.c

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

    好的、谢谢 Nilabh。