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.

[参考译文] SK-AM62B:安全引导说明

Guru**** 1821780 points
Other Parts Discussed in Thread: SK-AM62B
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1430108/sk-am62b-secure-boot-clarifications

器件型号:SK-AM62B

工具与软件:

我已经使用我生成的密钥成功地将密钥写入 SK-AM62B 开发板。 我还将 SMPK 集成到 Yocto 编译(SDK 9)中、以生成已签名的引导映像。 除了在串行引导模式下、电路板不会启动、在该模式下我无法加载引导加载程序。 我已经尝试从 eMMC 和 SD 卡引导新映像、这可能是因为串行端口上没有输出、也可能是个三角形。

具体问题:

  1. 安全启动故障是什么样子的? 是否有办法将签名故障与其他引导加载程序故障区分开来?
  2. 我已经写了 SMEK。 引导加载程序是否需要加密才能启动? 从其他发布来看、似乎未加密的二进制文件仍然可以启动?
  3. 是否有办法测试 tiboot3映像以验证其是否签名正确?
  4. 在对此进行故障排除时、是否有任何建议的后续步骤?

这很紧迫、因为我需要尽快向工厂提供签名的图像和 Keywriter。

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

    我相信我已经找到了一些问题的答案:

    1. 安全启动失败不向串行端口输出任何数据
    2. 即使写入了加密密钥、未加密的映像也将正确启动

    此外、我还发现 SDK 生成多个映像、并且 对于 k3r5构建、变量 SYSFW_suffix 必须设置为"hs"(注意:不是"hs-se")、以便选择签名的映像。

    对于问题3、我希望在将映像加载到器件之前、可以通过某种方法从 tiboot3中提取密钥哈希以便验证映像。

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

    我们是否在运行 OTP 密钥编程时从 R5/M4捕获了两个日志?

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

    0x4F8B0000
    0x4F80001C
    0x4003007
    0x4400907
    0x20800000
    0x20800001
    0x4F8A00FF
    0x4F8B0001
    0x4F80001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x420021
    0x820024
    0x40000C
    0x800023
    0x4F8A00FF
    0x4F8B0001
    0x4F80001C
    0x420002
    0x820024
    0x4003007
    0x4400907
    FWL Bit  0x4
    Exception addr  0x45B09000
    FWL Exception  0x1008000
    0x90000
    0x400A78
    0x0
    0xFF923D4
    0x8
    
    0x4F8A0000
    0x4F8B0000
    0x4F80001C
    0x4003007
    0x4400907
    0x20800000
    0x20800001
    0x4F8A00FF
    0x4F8B0001
    0x4F80001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x4C40001C
    0x420021
    0x820024
    0x40000C
    0x800023
    0x4F8A00FF
    0x4F8B0001
    0x4F80001C
    0x420002
    0x820024
    0x4003007
    0x4400907
    FWL Bit  0x4
    Exception addr  0x45B09000
    FWL Exception  0x1008000
    0x90000
    0x400A78
    0x0
    0xFF923D4
    0x8
    
    0x409031
    0x800023
    #
    # Decrypting extensions..
    #
    MPK Options:  0x0
    MEK Options:  0x0
    MPK Opt P1:  0x0
    MPK Opt P2:  0x0
    MEK Opt   :  0x0
    * SMPKH Part 1 BCH code: 6034e3f5
    
    * SMPKH Part 2 BCH code: 40584524
    
    * SMPK Hash (part-1,2):
    
    55327281682de63ace8cfa2e31326394b20cdab8bb28031692dcede3ea6e0cfe00
    
    ebe2228de6a7c45703ae57fc38ec1770a707a869dc3448bb3a8420ea4f6c4b2800
    
    * SMEK BCH code: 20993d5f
    
    * SMEK Hash: 9f1b5696c0d7e2213ebcaa6096e668389990a2d2308b1e2ae6a4d9351006246087e32155ffbb7fee949209012f74dbacab11e84e46a4e42c79abf6e0378bdaca
    
    * BMPKH Part 1 BCH code: c0f85f85
    
    * BMPKH Part 2 BCH code: 0096bcf5
    
    * BMPK Hash (part-1,2):
    
    ad929e3a8d6afddf45c69bad6e54dda4223a49dd47ead194afb307e544da69b200
    
    208120952d77fcbff93f6cc0975c96c74ec7f8fe63c7d9732784b086577e081800
    
    * BMEK BCH code: e007d412
    
    * BMEK Hash: 511e1d80319e9c68fd265f0f545b9eb448d43bf0a4f926463f46ec3d852fe18d917886254c491021dded5e8e6583f1158027f5c18f5ae8c6e1fcae482f3356cc
    
    EXT OTP extension programming disabled
    * BCH code & MSV: fe0fac8b
    
    * KEY CNT: 03030000
    
    * KEY REV: 01010000
    
    SWREV extension programming disabled
    
    FW CFG REV extension programming disabled
    
    * KEYWR VERSION:  0x20000
    
    #
    # Programming Keys..
    #
    
    * MSV:
    [u32] bch + msv:  0x0
    Programmed 2/2 rows successfully
    [u32] bch + msv:  0x8BAC0FFE
    
    * SWREV:
    [u32] SWREV-SBL:  0x1
    [u32] SWREV-SYSFW  :  0x1
    SWREV extension programming disabled
    [u32] SWREV-SBL:  0x1
    [u32] SWREV-SYSFW  :  0x1
    
    * FW CFG REV:
    [u32] SWREV-FW-CFG-REV:  0x1
    SWREV SEC BCFG extension programming disabled
    [u32] SWREV-FW-CFG-REV:  0x1
    
    * EXT OTP:
    EXT OTP extension programming disabled
    
    * BMPKH, BMEK:
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    
    * SMPKH, SMEK:
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    
    * KEYCNT:
    [u32] keycnt:  0x0
    Programmed 2/2 rows successfully
    [u32] keycnt:  0x2
    
    * KEYREV:
    [u32] keyrev:  0x0
    Programmed 2/2 rows successfully
    [u32] keyrev:  0x1
    

    M4串行输出的详细信息在此处提供。

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

    更新:我有一个要启动的映像。 在使用 Yocto 的 SDK 中、我必须做一些更改才能获得正确的映像。

    我还在寻找编号问题的答案、还有一个新问题:

    5."hs"和"hs-fs"图像之间的区别是什么? 在没有写入密钥的情况下、hs-fs 设备上的"hs"映像不会爬虫是正确的吗?

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

    最好知道您能够安全启动已签名的二进制
    1/. ROM 执行的二进制完整性检查将会因签名错误而失败、并且用户代码根本不会引导
    2/. 为确保安全启动、可选择使用 SMEK 进行二进制加密
    3/. 一种选择是在目标上引导它
    4/. 捕获密钥编程日志、通过 ROM 从转换后的 HS-SE 上的 UART 引导记录 SoC_UID 转储、并比较这两个日志的 SMPK-H。
    5/. 两个不同的 TIFS 二进制文件链接到两个 tiboot3.bin 中(HS-SE 与 HS-TIFS FS)。 tiboot3.bin 无法替换为 HS-SE 与 HS-DAC FS
    此致!
    -hong

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

    对于#3、由于 x509证书是 tiboot3.bin 中的第一个文件、因此可以使用 openssl 检查证书:

    openssl x509 -noout -text -in tiboot3.bin

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

    是的、openssl 是脱机执行 x509证书操作的选项之一。
    此致!
    -hong