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.

[参考译文] PROCESSOR-SDK-AM64X:OTP - MMR - X509系统固件扩展-更改密钥

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1336365/processor-sdk-am64x-otp---mmr---x509-system-firmware-extensions---changing-keys

器件型号:PROCESSOR-SDK-AM64X
主题中讨论的其他器件:UNIFLASH

您好!

我正在尝试弄清楚 OTP 和 X509证书、我有几个问题。 这是一个很需要消化的东西,我想确定我知道我在做什么之前,我做了一些我不能 撤销. 感谢您的耐心等待。

1. OTP MMR:是否不仅仅有3 MMRS (9,10,11) MMR 9&10可以用于 PCIe 和 USB,但 MAC 会往哪里去?

2. x509系统固件扩展:脚本"gen_keywr_cert.sh"生成 x509 Keywriter 扩展证书二进制,但什么生成 x509系统固件扩展证书? 如何编程系统固件扩展?

3. X509 Keywriter 扩展密钥:在 OTP 中似乎有6个,但我们只生成4个,很好,实际上5个与 aes256.key  (见示例 x509模板)

  • 已加密 SMPK 已签名 AES 扩展 =(bmek.key、bmpk.pem、smek.key、smpk.pem)
  • 加密 BMPK 签名 AES 扩展 =(bmek.key、bmpk.pem、smek.key、smpk.pem)
  • AES 加密的 SMPKH  =(bmek.key、bmpk.pem、smek.key、smpk.pem)
  • AES 加密的 SMEK  =(bmek.key、bmpk.pem、smek.key、smpk.pem)
  • AES 加密的 BMPKH  =(bmek.key、bmpk.pem、smek.key、smpk.pem)
  • AES 加密 BMEK  =(bmek.key、bmpk.pem、smek.key、smpk.pem)

4. 如果使用脚本生成证书二进制文件,那么证书的用途是什么? 是否可以手动填充、然后可以运行另一个脚本而不运行上述脚本? (请参阅示例 x509模板)

5.在运行命令"/structure_ext_otp_data.sh"和"/gen_keywr_cert.sh"时、是否会添加到证书、还是生成新证书? 我不确定这个过程的工作原理、即不断生成证书来对每个 MMR 进行编程。

6.什么设置键并阻止更改键? 递增 Keyrev、还是对密钥进行写保护? 如果我更新 keyrev、我以后是否可以对其他密钥进行编程、那么只需对它们进行写保护?

7.写入密钥时、能否稍后对 OPT MMR 进行编程?

谢谢!

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

    这是我认为应该发生的事情、

    1.运行"gen_keywr_cert.sh"来写入密钥。 设置 WP 位、使证书的后续写入不会覆盖密钥。

    1.1运行 Uniflash 刷写器件、以 对 密钥和写保护位进行编程。

    2.运行脚本 "/built_ext_otp_data.sh"和"/gen_keywr_cert.sh"以写入 OTP VID PID/OTP

    2.1运行 Uniflash 刷写器件以对 USB PID 和 VID 进行编程

    3.运行脚本 "/built_ext_otp_data.sh"和"/gen_keywr_cert.sh"以写入 OTP VID PID/OTP

    3.1运行 Uniflash 刷写器件、对 PCIe PID/PCIe VID 进行编程

    4. 运行脚本 "/built_ext_otp_data.sh"和"/gen_keywr_cert.sh"以写入 MAC0和 MAC1

    4.1运行 Uniflash 来刷写器件以对 MAC0和 MAC1进行编程

    5. 此时,验证启动日志中是否显示"Authentication passed"(通过身份验证)。 如果可以通过某种方法验证密钥和扩展数据、则应在执行下一步之前执行此操作。

    6. 运行 "gen_keywr_cert.sh"以写入密钥版本和密钥计数。 这将终止 OTP 的使用。 此时一切都应该进行编程。

    Uniflash 是指 UART、OSPI、JTAG、USB-DFU 或 JTAG/DEV 引导。