Other Parts Discussed in Thread: AM263P4, SYSCONFIG, AM2634
器件型号: AM263P4
主题中讨论的其他器件: SysConfig、 AM2634

我已经使用上面的流程图大致介绍了 AM263P4 的完整安全启动流程:
-
上电
-
R5 RBL 和 HSM RBL 将运行
-
R5 SBL 通过引导模式将 SBL 从外部闪存加载到 L2 (0x70002000) 中
-
HSM RBL 使用 Keywriter 注入的 SMPK 和 SMEK 来验证签名并解密加载到 L2 中的 SBL。 如果验证通过、它首先将 SBL 的 IVT 和初始化代码复制到 TCMA (0x20000)、然后在 ROM 地址 0x0 处翻转(掩码)R5 RBL、并将 SBL 的 IVT 和初始化代码重新映射到地址 0x0(该地址实际上成为 RAM 地址)。 其余的 SBL 程序继续在 0x70002000 处运行。

-
SBL 成功运行后、SBL 从闪存中的指定位置读取 HSM 固件、并将其加载到 L2 RAM 中的指定位置(可在 SysConfig 中配置)。 SBL 会调用
Hsmclient_loadHSMRtFirmware函数来加载 HSM 固件。 此时、HSM RBL 使用 Keywriter 注入的 SMPK 和 SMEK 来验证和解密加载到 L2 中的 HSM 固件。 如果验证通过、HSM RBL 会将 HSM 程序移动到 HSM 内核的 RAM 区域(存储器视图/虚拟地址 0x20000-0x60000)。 然后、它优先于(屏蔽)ROM 中的 HSM RBL (0x0-0x40000)、并将 HSM 程序重新映射到虚拟地址区域 0x0-0x40000(该区域现在实际上成为 RAM)、然后运行该区域、确保 HSM 程序开始从 RAM 地址 0x0 执行。
问题:
-
上述流程是否正确? 如果有任何问题、请指定。在此流程中、SBL 和 HSM 固件是否先加载到 L2 RAM 中、然后进行验证、最后重新映射到指定的位置? 还是先将它们加载到 L2 RAM 中、然后重新映射到指定的位置、然后进行验证?
-
无论 SBL 和 HSM 是否分开、上述流程是否相同?

