ZHCAEV6 December   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1编程基础知识
  5. 2引言
    1. 2.1 硬件安全模块
    2. 2.2 ROM 引导加载程序
    3. 2.3 带有 X.509 证书的合并映像
  6. 3闪存内核实现
    1. 3.1 CPU1 固件升级 (HS-FS)
    2. 3.2 密钥预置(HS-FS 至 HS-KP)
    3. 3.3 CPU1 安全固件升级(HS-KP/SE 至 HS-SE)
    4. 3.4 HSM 固件升级(HS-KP/SE 至 HS-SE)
    5. 3.5 SECCFG 代码预置(HS-KP/SE 至 HS-SE)
  7. 4主机应用程序:UART 闪存编程器
    1. 4.1 概述
    2. 4.2 使用 Visual Studio 构建 UART 闪存编程器
    3. 4.3 使用 CMake 构建 UART 闪存编程器
    4. 4.4 数据包格式
    5. 4.5 内核命令
  8. 5示例用法
    1. 5.1 将闪存内核加载到器件中
      1. 5.1.1 硬件设置
      2. 5.1.2 运行 UART 闪存编程器
    2. 5.2 CPU1 器件固件升级(仅限 HS-FS)
    3. 5.3 将 HS-FS 转换为 HS-SE
    4. 5.4 加载基于 RAM 的 HSMRt 映像
    5. 5.5 密钥预置(HS-FS 至 HS-KP)
    6. 5.6 代码预置(HS-KP/SE 至 HS-SE)
  9. 6故障排除
    1. 6.1 一般信息
    2. 6.2 UART 引导
    3. 6.3 应用程序加载
  10. 7总结
  11. 8参考资料

HSM 固件升级(HS-KP/SE 至 HS-SE)

要在 HS-KP 或 HS-SE 器件的 HSM 上执行固件升级,请编译工程的 CP_APP 构建配置。可以通过右键点击工程,将鼠标悬停在 Build Configurations 上并选择 CP_APP 来完成此操作。

要在 HS-KP 或 HS-SE 器件上执行 CPU1 固件升级,会发生以下事件:

  1. UART 启动模式下的 BootROM 接收 UART 闪存内核并启动内核。
  2. CPU1 中的内核接收一个命令数据包,从而接收 HSMRt 映像。
  3. 内核准备作为合并映像的一部分从主机接收 X.509 证书。
  4. 内核确认传入证书具有适当的大小和格式,并得出传入映像的大小。证书暂时存储在 RAM 中。
  5. 内核将 HSMRt 映像存储在共享 LDAx RAM 中,并请求 HSM 进行身份验证。
  6. 内核接收一个命令数据包,从而接收 HSM 闪存应用程序映像。
  7. 内核接收 X.509 映像证书并将其与 HSMRt 分享。
  8. 成功对映像进行身份验证后,HSMRt 通过确认消息进行响应,之后闪存内核开始通过 UART 将数据块导入到 LDAx 存储器中。
  9. 每次接收到 16KB(LDAx 存储器的大小)数据后,闪存内核都会发送 HSM 请求来对数据进行编程以供进一步处理。
  10. 接收到所有数据块并进行编程后,请求 HSMRt 验证在 HSM 活动和休眠存储体中进行编程的代码。当 HSMRt 固件根据证书对编程的映像进行身份验证时,还会对证书进行进一步编程,以便确保在后续的下电上电期间能够成功启动。
  11. 成功完成身份验证后,HSM 会将固件编程到 CPU1 闪存。
    1. 如果器件之前处于 HS-KP,则器件将转换为 HS-SE。

请参阅节 5.6,了解在主机应用程序中执行这些操作的步骤。

警告: 对于 HS-KP 或 HS-SE 器件,DPL 中断 LINK 和 STACK 指针需要分别设置为 LINK2 和 STACK2。要调整该设置,请在 CCS 中打开 syscfg 文件,选择“TI Driver Porting Layer (DPL)”部分下面的 Clock。需要将硬件安全模块部分所述的 Keywriter 二进制映像需要用作 HSMRt。