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.

[参考译文] CC2745R10-Q1:CC2745 编程 HSM

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

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1563877/cc2745r10-q1-cc2745-program-hsm

器件型号:CC2745R10-Q1
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

尊敬的 TI 工程师:

我目前正在使用外部 SWD 工具对 CC2745 进行编程。 我能够对闪存、CCFG 和 SCFG 进行编程。 现在需要对 HSM 进行编程。 根据官方程序、.bin文件cc27xxx10_hsm_fw_v3.0.0.bin () 用于更新。 但是、由于此.bin文件是加密的、因此我不能确定如何使用外部工具来执行 HSM 更新或如何解析该文件。

我们已考虑使用另一种方法
simplelink_lowpower_f3_sdk_xx\examples\nortos\LP_EM_CC2745R10_Q1\hsm\hsmfwupdate
要生成 HSM 更新映像并按如下方式执行更新:

  1. 构建 HSM 更新工程映像。

  2. 将映像编程到闪存中。

  3. 下电上电并运行工程以更新 HSM。

  4. 擦除闪存。

  5. 对应用文件(包括闪存/CCFG 等)进行编程。

  6. 验证所有编程存储器。

我们想使用上述方法更新 HSM、但我们无法确定此方法是否有效。

我想问是否可以使用此方法对 HSM 进行编程。或者是否有更新 HSM 的替代方法、例如使用 SACI 命令。

感谢您的支持。

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

    您好:

    [引述 userid=“661017" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1563877/cc2745r10-q1-cc2745-program-hsm
    • 构建 HSM 更新工程映像。

    • 将映像编程到闪存中。

    • 下电上电并运行工程以更新 HSM。

    • 擦除闪存。

    • 对应用文件(包括闪存/CCFG 等)进行编程。

    • 验证所有编程存储器。

    [/报价]

    这是一种有效的方法。  

    但是、由于此.bin文件已加密、我不确定如何使用外部工具执行 HSM 更新或如何解析文件。

    可以、此二进制文件会加密、但在加载后会在器件上进行解密。 但是、如果要使用 SACI、可以使用以下命令流:

    1. 给芯片上电、发送 SACI_CMD_MISC_NO_OPERATION、其序列号大于 1(它可以为零,但最好从数字> 0 开始)。
      1. 通过读取响应来验证命令是否成功、并验证序列号是否与发送的序列号匹配
    2. SACI_CMD_FLASH_VERIFY_MAIN_SECTORS
      1. 如果闪存不为空白、请继续执行第 3 步。
    3. SACI_CMD_FLASH_ERASE_CHIP
    4. SACI_CMD_PROG_MAIN_CCUAL
    5. SACI_CMD_FLASH_PROG_CCFG_SECTOR
    6. SACI_CMD_FLASH_VERIFY_CCFG_SECTOR
    7. SACI_CMD_FLASH_PROG_SCFG_SECTOR
    8. SACI_CMD_FLASH_VERIFY_SCFG_SECTOR
    9. SACI_CMD_BLDR_APP_RESET_DEVICE
      1. 我们必须在配置 HSM FW 之前进行复位。
    10. SACI_CMD_MISC_NO_OPERATION(重复步骤 1)
      1. 通过读取响应来验证命令是否成功、并验证序列号是否与发送的序列号匹配
      2. 如果未成功、则 SACI 通信未就绪
    11. SACI_CMD_HSM_FW_PROVISION

    请让我知道这是否适合您!

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    感谢您的答复。 我现在尝试使用您提供的 SACI 过程来对 HSM 进行编程。 我cc27xxx10_hsm_fw_v3.0.0.bin 使用将数据从(长度 0x13640)发送到 CC2745SACI_CMD_HSM_FW_PROVISION (HUI DATA)。 执行后,我收到了消息 HSM_FW_VER_INVALID 但我不明白这意味着什么。

    之后、我读取了 HSM 信息并获得了版本号 4.5.7 。 我想与您确认我的程序是否正确、以及如何解决 HSM_FW_VER_INVALID 消息。

    此外、我是否可以在编程后验证 HSM、或者检查版本号是唯一的方法?

    此致、

    哈利

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

    您好:

    让我联系研发部门 请允许我花一些时间获取反馈。

    此致、

    Nima Behmanesh

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

    您好:

    联系 R&D 后、您能否在执行过程之前验证器件是否为空白(包括器件上没有 HSM 固件)?

    这可以通过执行两次背对背芯片擦除来完成。 此外、在运行该过程之前、您可以读取 HSM 固件版本。 如果某个版本回复、则芯片不为空。

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    我已经解决了上述问题。 我现在已确认已SACI_CMD_HSM_FW_PROVISION成功执行。

    我有一个问题:完成上述过程后、我尝试使用SACI_CMD_GET_SECBOOT_HSMFW_UPDATE_STATUS并收到结果 STATUS_INVALID_SB_CONFIG (0x6):安全启动配置无效

    您能否告知这是否会产生任何影响、或者是否可以忽略?

    感谢你的帮助。

    此致、

    哈利

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

    嗨、Nima、

    对不起,我想问:编程后的 HSM,我使用SACI_CMD_GET_SECBOOT_HSMFW_UPDATE_STATUS和得到的状态STATUS_INVALID_SB_CONFIG (0x6): Secure Boot configuration is invalid. 这会造成什么影响吗?

    此致、

    哈利

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

    您好:

    您是否正在使用安全启动? 如果不是这样,我不相信这会有任何影响。

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    感谢您的回复、我想询问这种类型的错误消息是否正常、或者是否有解决此问题的方法。 由于我使用官方代码进行编程、因此不确定将来是否会使用安全启动。

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

    嗨、Nima、

    由于我们的客户仍在等待响应、因此我们希望了解与STATUS_INVALID_SB_CONFIG (0x6)之相关的风险以及可能的解决方案。
    再次感谢您的支持。

    此致、

    哈利

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

    嗨、Nima、

    我尝试使用 XDS110 Uniflash 可在上执行验证 CC2745 、但我遇到了以下错误信息: “引脚复位后、目标器件未进入 SACI。“
    您能建议如何解决此问题吗? 谢谢你。

    此致、

    哈利

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

    您好:

    该器件是 XDS110ET 还是 XDS110?

    您使用的是哪个版本的 Uniflash?  

    CC2745 上是否有有效的映像?

    您是否介意附加错误的屏幕截图?

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    1. 首先、我想知道是否有任何解决方案STATUS_INVALID_SB_CONFIG (0x6)可避免对 IC 的潜在影响。

    2. 我当前正在使用的 Web 版本 Uniflash 9.3.0.5423 通信 XDS110 调试探针 。 我能够读取 CC2745 的存储器、但在执行其他操作时会遇到错误消息。

    此致、

    哈利

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“661017" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1563877/cc2745r10-q1-cc2745-program-hsm/6054131。] 由于我正在使用官方代码进行编程、因此我不确定将来是否会使用安全启动。

    此错误代码取决于您是否使用安全启动。

    由于您未使用安全启动、并且使用了 SACI 命令来更新 HSM 固件(而不是 ROM)、因此应该使用:
    SACI_CMD_HSM_GET_SYS_信息。

    否则、如果您使用 ROM API 并使用安全启动、则可以使用:
    SACI_CMD_GET_SECBOOT_ HSMFW_UPDATE_STATUS

    由于您当前未使用安全启动、请尝试使用 SACI_CMD_HSM_GET_SYS_INFO、而不是 SACI_CMD_GET_SECBOOT_HSMFW_UPDATE_STATUS。

    我目前正在使用的 Web 版本 Uniflash 9.3.0.5423 通信 XDS110 调试探针 。 我能够读取 CC2745 的存储器、但在执行其他操作时会遇到错误消息。

    您正在使用哪些其他操作来查看错误?

    此致、

    Nima Behmanesh

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

    你好、Nima、

    感谢您的答复。
    这些函数时、我会使用它们 “执行空白检查“ “读取 HSM 信息“ ,我总是得到一个错误。
    系统 “读取存储器“ “重置“ 正常工作。
    似乎任何功能都需要 SACI 命令 导致出现此错误消息。

    此致、

    哈利