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.

[参考译文] AM2432:RBL 在 HS-CRC 模式下引导之前是否检查 SBL 映像 FS 或签名

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1517862/am2432-does-rbl-checks-sbl-image-crc-or-signature-before-booting-in-hs-fs-mode

器件型号:AM2432

工具/软件:

据我所知、AM243x 有两个启动位置。 一个是主 SBL 0x0、另一个是备用 SBL 0x400000。

如果主 SBL 处的 SBL 映像像 booflash 映像中间的一些地址那样损坏、 AM243x RBL 是否有使用 CRC 或其他方式检查主映像完整性的机制? 然后回退到备份 SBL 位置并启动它?

我是说、 在从主 FS 位置引导 SBL 映像之前、HS-SBL 模式下是否会出现任何完整映像 CRC 校验或其他某种类型的检查?

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

    尊敬的 Aravind:

    是的、ROM 代码会在将映像加载到片上 RAM 之前执行映像完整性检查。 请参阅 TRM 的4.2.3节"引导过程流程"、其中提到了该流程。

    此致、
    会面。

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

    在 HS-CRC 或其他验证方法下、AM243x 似乎不会使用 FS 或其他验证方法验证映像的完整性;它仅检查映像标头。
    我执行了一个实验、在地址处删除引导闪存(主 SBL)中的64KB 扇区 0x20000 、然后触发重新引导。 此后、AM243x 没有回退到备用 SBL。 AM243x 处于挂起状态。


    您在讨论的是以下引导流程

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/BOOTFLOW_GUIDE.html

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

    不是、我指的是 TRM 的第4.2.3节: https://www.ti.com/lit/ug/spruim2h/spruim2h.pdf?ts = 1748423994825和 ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FAM2434

    我执行了一项实验、删除了地址处的引导闪存(主 SBL)中的64KB 扇区 0x20000 、然后触发了重新引导。 此后、AM243x 没有回退到备用 SBL。 AM243x 处于挂起状态。

    您能告诉我您正在哪个 MCU+SDK 版本上对此进行测试吗?

    此致、

    会面。

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

    我们使用的是以下 SDK 版本

    我们看到的 SDK 版本是9.0.0.35、MCU 是 AM2432  

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

    您好:

    我们当前的 SDK 版本是9.0.0.35、MCU 是 AM2432
     

    然后预计会出现该问题。 截至此版本、SDK 使用随机密钥为 HSFS 的图像签名、从而导致 ROM 跳过完整性检查。

    此问题通过以下提交来修复启动 SDK v9.1的问题:

    https://github.com/TexasInstruments/mcupsdk-core/commit/89c780b1d1

    此致、

    Prashant

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

    想知道、 AM243x 将如何绕过映像完整性检查? 有寄存器可以执行该操作吗?
    除此之外、AM243x ROM 引导加载程序如何进行完整性检查? 它检查的标题中有什么参数? 您能否分享标题结构? 是否沿割台执行完整性检查?
    请让我知道以上几点。

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

    我们要了解的关键点是:

    对于 FS 图像大小写、  
    1)当 ROM 检查完整性时,它到底是怎么做的?  我们想知道在什么情况下、ROM 将回退到0x400000地址。  
    2)另一个问题是我们如何防止加载 SBL、它通过了 ROM 的完整性检查、但无法启动。 在完整性检查期间、是否计算了映像的 SHA?  
    3)我也不清楚 ROM 是如何跳过完整性检查的,而不是像你上面指出的错误那样回退到备份地址的。 如果是这种情况、是否意味着我们可以对任何随机密钥签名、这将导致它绕过检查以便能够从 ROM 引导?   

    对于 HS-SE 图像外壳、  
    1) ROM 是否也可以跳过完整性检查?  
    2)什么是标准在这里使 ROM 回退到0x400000?  
    3)我们是否可以在接受 SBL 映像之前利用 SYSFW 的 API 来检查映像的完整性?  如果是、您能帮助指出该示例或说明吗?  

    谢谢、  
    Hong  

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

    您好:

    对于 HSFS 情况:

    1)完整性检查涉及将不同二进制文件计算出的 SHA512哈希值与 X.509证书中所含二进制文件的预期 SHA512哈希值进行比较。 仅当使用 ROM 取消生成的密钥对证书签名时、才会执行此完整性检查、否则只会在二进制文件各自的加载地址加载二进制文件。

    2)如果完整性检查通过、则 ROM 没有跳转到冗余或备份引导的任何概念。 ROM 将加载 SBL 并将 R5F 内核复位为其入口点。 如果 SBL 无法引导、则这仅是 SBL 故障。 这里没有 ROM 可以执行的操作。

    3) 仅当 ROM 取消生成的密钥用于签署证书时才执行此完整性检查,否则只会在二进制文件各自的加载地址加载。

    对于 HSSE 案例:

    1)没有 安全启动始终在 HSSE 器件上执行。

    2)如果身份验证失败、则 ROM 会尝试从冗余引导或备份引导进行引导。

    3)没有

    此致、

    Prashant

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

    非常感谢、Prashant。  

    这些信息非常有用、  
    Hong