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.

[参考译文] CC1352P7:CC1352P7:安全 BIM OAD 验证失败

Guru**** 2392905 points
Other Parts Discussed in Thread: CC1352R, CC1352P7, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1213947/cc1352p7-cc1352p7-secure-bim-oad-verifications-fails

器件型号:CC1352P7
Thread 中讨论的其他器件:CC1352R、、 SysConfig

我们的产品具有 CC1352P7而非 CC1352R 的新版本。

两个版本都使用相同的源代码(使用不同的链接器脚本 和 driverlib)为 P7和 R 构建专用映像。这样做没有问题。

然而、OAD (片外)在 CC1352P7型号上带来了问题。 就会很好地工作。

 下载映像后、器件会重新启动、BIM 会验证映像。  BIM 对于这两个变体也具有相同的源。

在 R 上、所有运行正常、但是在 P7上、此验证失败。

OAD 映像 由相同的脚本和相同的私钥在我们的构建服务器上生成。

R 和 P7 在 OAD 方面是否有差异? 为什么会出现这种情况?

谢谢。

Marijn.

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

    尊敬的 Marijn:

    我有几个问题。

    两个版本使用相同的源代码(使用不同的链接器脚本 和 driverlib)为 P7和 R 构建专用映像。这很有效

    您所说的"它"到底是什么意思?  

    当验证失败时、您会看到什么? 它是由特定函数返回的特定状态吗?

    此致、

    SID  

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

    尊敬的 Sid:

    我的意思是、从同一个源 (使用不同的链接器脚本和 driverlib)构建 R 和 P7的映像会为这两个变体生成工作映像和 BIM。 此软件在 R 和 P7上运行正常。

    在 R 型号上、OAD 更新对带符号的映像按预期工作

    在 P7上、OAD 不工作。 它会下载映像、重新启动、并且仍会 启动旧映像(意味着它 不会复制新映像)

    我还做了一些进一步的测试、OAD 映像下载到外部闪存中工作正常。  

    BIM 可以找到映像、但 ECDSA 验证失败。  

    双 VerifyImage_ECC 函数 返回 SECURE_FW_ECC_STATUS_INVALID_signature。

    我从外部闪存中提取了该图像、与原始图像相比、该图像是正确的。

    此外、当我禁用签名检查时、图像将 开始复制到内部 AN 并正常工作。

    因此、失败似乎是 SHA2哈希函数或 ECDSA_verif 本身。

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

    尊敬的 Marijn:  

    我在 DeviceFamily_CC13x2和 DeviceFamily_CC13x2x7之间的 BIM 和 OAD_offchip 项目源代码中看不到任何差异、但定义 MAX_ONCHIP_FLASH_PAGES 不会导致问题。  

    如果您获取的状态为 secure_fw_ecc_status_invalid_signature。  为 P7器件生成 OAD 二进制映像时、是否定义了预定义符号"安全性"?

    此致、

    SID

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

    尊敬的 Sid:

    是的、我从来源知道没有"真实"的区别。 这是什么是如此奇怪。 虽然他们有不同的 driverlib...

    是的、 安全性是在应用程序源中定义的。 在查看生成的十六进制时、安全标头也会显示在图像标头中。

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

    尊敬的 Sid:

    问题已解决。 它与 NVS 驱动程序有关、 在本例中、NVS 驱动程序是 在链接器脚本中定义的、但 SysConfig 则是因为 SDK 升级也在代码中定义。

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

    谢谢更新 Marijn。