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.

[参考译文] AM62P:安全启动密钥写入

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1498468/am62p-secure-boot-keywrite

部件号:AM62P
主题: SysConfig 中讨论的其他器件

工具/软件:

DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
DMSC Firmware revision 0x9
DMSC ABI revision 3.1

Starting Keywrite  getversioncheck
keys Certificate found: 0x43c18800
Keywriter Debug Response:0x42000000
Error occured...

您好的团队、

我正在使用 AM62p 客户电路板、需要实现安全启动。 这是我的 keywite tiboot3.bin 的输出。 我仍然可以在 eMMC 和 SD 卡模式下启动电路板、因此我认为它没有成功写入电子保险丝。 您能告诉我可能的原因吗?

此外、我自己的电路板使用 GPIO (通过 CSL_REG32_WR ())直接控制 vpp、并可以在我自己的 vpp 引脚中测试高电平输出。

感谢您的支持。

此致、Kong XiangXu

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

    您好:

    您能否分享从 MAIN_UART1端口捕获的 TIFS 日志?

    谢谢!

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

    0x420002
            0x820024
                    0x4003007
                             0x4400926
                                      0x409031
                                              0x800023
                                                      #
                                                       # Decrypting extensions..
                                                                                #
                                                                                 MPK Options:  0x0
                                                                                                  MEK Options:  0x0
                                                                                                                   MPK Opt P1:  0x0
                                                                                                                                   MPK Opt P2:  0x0
                                                                                                                                                   MEK Opt   :  0x0
                                                                                                                                                                   SMPKH extension programming disabled
                                                                                                                                                                                                       SMEK extension programming disabled
                            EXT OTP extension programming disabled
                                                                  * BCH code & MSV: fe0fac8b
    
                                                                                            KEY CNT extension programming disabled
    
                                                                                                                                  KEY REV extension programming disabled
    
                                                                                                                                                                        SWREV extension programming disabled
    
                                                                                                                                                                                                            FW CFG REV extension programming disabled
    

    Starting Keywriter
    Starting Keywrite
    tca624open
    Enabled VPP
    DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    Starting Keywrite  getversioncheck
    keys Certificate found: 0x43c18700
    Keywriter Debug Response:0x42000000
    Error occured...
       

    我在 tiam62p 官方板上试过,结果也是一样的错误   

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

    这些日志不是完整的日志、因为它们应如下所示:

    #
    # Decrypting extensions..
    #
    
    MPK Options:  0x0
    MEK Options:  0x0
    MPK Opt P1:  0x0
    MPK Opt P2:  0x0
    MEK Opt   :  0x0
    * SMPKH Part 1 BCH code: e050cadb
    
    * SMPKH Part 2 BCH code: c099dd36
    
    * SMPK Hash (part-1,2):
    
    1f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189700
    
    60dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527d00
    
    * SMEK BCH code: a0c6de4e
    
    * SMEK Hash: 92785809a3dfefea57f6bbed642d730ba5d05e601222a72e815bf01ceb3a50f96ab85d282425f684436fabd4c7da624b791da411615035314103cc64e611f532
    
    * BMPKH Part 1 BCH code: c00807d5
    
    * BMPKH Part 2 BCH code: 60311e36
    
    * BMPK Hash (part-1,2):
    
    07b5fd6f33cdba0c745bcc07e50805639713ec517614eac89754da1138d24dac00
    
    5f1600a593b7100f0e1ca3c3a49e59b3622ab0651e08c0ffd2c88b04465cf7c900
    
    * BMEK BCH code: a0da286f
    
    * BMEK Hash: f5fbda1d62b46374de68e763ecd5a72227e7be73ca0d54a6d986ceb784b1bb0d06b6d95a8b399d421e41b7d3e7076220cd3992df255be068bd8924e86ae3a02d
    
    EXT OTP extension disabled
    * BCH code & MSV: fe0fac8b
    
    * KEY CNT: 03030000
    
    * KEY REV: 01010000
    
    SWREV extension disabled
    
    FW CFG REV extension 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 disabled
    [u32] SWREV-SBL:  0x1
    [u32] SWREV-SYSFW  :  0x1
    
    * FW CFG REV: 
    [u32] SWREV-FW-CFG-REV:  0x1
    SWREV SEC BCFG extension disabled
    [u32] SWREV-FW-CFG-REV:  0x1
    
    * EXT OTP: 
    EXT OTP extension 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

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

    日志表明 TIFS 无法对 MSV 进行编程、因为它已被编程、并且新证书没有重新编程 MSV 的覆盖标志。

    另外、我必须提到、这两个错误都发生在一次性"成功编程密钥"之后。

    您可能只编程了 MSV、但没有编程将设备转换为 HSSE 所需的密钥和其他字段。

    请立即跳过 MSV 编程并对密钥、keycnt 和 keyrev 字段进行编程。

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

    如何跳过编程 MSV 并对密钥、keycnt 和 keyrev 字段进行编程?

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

    有关生成证书的不同选项、请参阅"Keywriter 证书生成"文档页面(Certificate_Generation .html)。

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

    .. only:: am62px_tag
    
        Keywriter application has been validated with boot modes - **UART**, **OSPI** on |hw|.
    
        .. note::
     
            Keywriter support for dev boot mode will be supported in future releases.
    

    我注意到、这些文档说它仅支持 UART 和 ospi、但我正在使用 SD 卡(通过替换 tiboot3.bin)来引导 Keywriter、这是否可能是上述错误的原因?

    顺便说一句,我从文档的指令,并使用下面的方法"单拍模式:通过单一证书编程",但在最后我得到了相同的结果。

    如果单次触发模式不是 您所说的跳过编程 MSV 和编程键、键盘和键盘转字段、您能给我一个更详细的解决方案吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我注意到、文档说它仅支持 UART 和 ospi、但我正在使用 SD 卡(通过替换 tiboot3.bin)来引导 Keywriter、这是否可能是上述错误的原因?

    这不是问题的原因。 可以通过任何 ROM 支持的引导介质来引导 Keywriter 二进制。

    如果单次触发模式不是 您所说的跳过编程 MSV 并对密钥、keycnt 和 keyrev 字段进行编程、您能给我一个更详细的解决方案吗?

    我的意思只是单次拍摄、但没有 MSV 选项、就像这样:

    ❯ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    

    请注意、上述命令使用虚拟密钥。 如果您有自定义密钥、则需要将路径传递给这些密钥。

    使用此命令生成的证书会将 SoC 转换为 HSSE。

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

    $ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem      --sr-sbl 1 --sr-sysfw 1 --sr-sysfw-ovrd --sr-sbl-ovrd --sr-bcfg 1 --sr-bcfg-ovrd     --ext-otp ext_otp_data.bin --ext-otp-indx 0 --ext-otp-size 32     -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key     -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key     --keycnt 2 --keyrev 1
    # Using SWREV_SBL: 0x000000000001
    # Using SWREV_SYSFW: 0x000000000001
    # Using SWREV_SEC_BRDCFG: 0x0000000000000001
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt ext_otp using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668    secondary_cert.bin
    
     我移动了 MSV 命令、但仍然得到相同的结果。

    上面是我使用的命令。

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

    您可能不想使用" --ext-otp ext_otp_data.bin --ext-otp-indx 0 --ext-otp-size 32"选项、因为它会使用某些数据对扩展 OTP 行0进行编程、这些数据可能不是您想要的。

    在任何情况下、如果出现故障、请共享 TIFS 日志。

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

    0x420002
            0x820024
                    0x4003007
                             0x4400926
                                      0x409031
                                              0x800023
                                                      #
                                                       # Decrypting extensions..
                                                                                #
                                                                                 MPK Options:  0x0
                                                                                                  MEK Options:  0x0
                                                                                                                   MPK Opt P1:  0x0
                                                                                                                                   MPK Opt P2:  0x0
                                                                                                                                                   MEK Opt   :  0x0
                                                                                                                                                                   SMPKH extension programming disabled
                                                                                                                                                                                                       SMEK extension programming disabled
                            EXT OTP extension programming disabled
                                                                  * BCH code & MSV: fe0fac8b
    
                                                                                            KEY CNT extension programming disabled
    
                                                                                                                                  KEY REV extension programming disabled
    
                                                                                                                                                                        SWREV extension programming disabled
    
                                                                                                                                                                                                            FW CFG REV extension programming disabled
    
                                       * KEYWR VERSION:  0x20000
    
                                                                #
                                                                 # Programming Keys..
                                                                                     #
    
                                                                                      * MSV:
                                                                                             [u32] bch + msv:  0x8BAC0FFE
                                                                                                                         Error: override not specified
                                                                                                                                                      debug_response:  0x40000000
                                                                                                                                                                                 Error in programming MSV
                                                                                                                                                                                                         debug_response:  0x42000000
                      [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:
                                                                                                                                                                BMPKH extension programming disabled
                                                                                                                                                                                                    BMEK extension programming disabled
    
                         * SMPKH, SMEK:
                                        SMPKH extension programming disabled
                                                                            SMEK extension programming disabled
    
                                                                                                               * KEYCNT:
                                                                                                                         [u32] keycnt:  0x0
                                                                                                                                           KEY CNT extension programming disabled
                                                                                                                                                                                 [u32] keycnt:  0x0
    
                                                                                                                                                                                                   * KEYREV:
                                                                                                                                                                                                             [u32] keyrev:  0x0
                 KEY REV extension programming disabled
                                                       [u32] keyrev:  0x0
    
    

    mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/am62px$ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668	secondary_cert.bin
    5383	primary_cert.bin
    7051	../x509cert/final_certificate.bin
    # SHA512 Hashes of keys are stored in verify_hash.csv for reference..

    /mcu_plus_sdk_am62px_09_01_00_39/source/sbl_keywriter/scripts/cert_gen/x509cert

    顺便说一句、上面的路径中生成了 x509cert 文件夹、这很奇怪、但我按照 OTP Keywriter 指南中的说明操作:"这将生成一个名为 keycert.h 的 C 头文件、请确保将 keycert.h 置于 script/x509cert 文件夹中、因为编译时需要包含该文件夹"、并将整个文件夹复制到 mcu_plus_sdk_am62_09_sbl_09_01_source_security。  

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

    这些日志表明 MSV 仍在进行编程。 这意味着不会使用跳过 MSV 选项的证书生成 Keywriter 二进制文件。

    您是否在证书生成后构建了 Keywriter?

    请注意、C 头文件(keycert.h)作为证书生成命令的一部分在预期位置(source/security/sbl_keywriter/keywr_bin/am62px/keycert.h)自动生成。 因此、您只需生成证书并仅编译 Keywriter、如下所示:

    ❯ pwd
    /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/am62px
    ❯ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668    secondary_cert.bin
    5383    primary_cert.bin
    7051    ../x509cert/final_certificate.bin
    # SHA512 Hashes of keys are stored in verify_hash.csv for reference..
    ❯ cd ../../../../sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang
    ❯ make -s PROFILE=debug clean all
    Cleaning: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out ...
    Generating SysConfig files ...
    Running script...
    Validating...
    Generating Code (example.syscfg)...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_dpl_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_dpl_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_open_close.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_open_close.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_pinmux_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_power_clock_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_open_close.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_open_close.h...
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../main.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../keywriter_utils.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../board.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_drivers_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_drivers_open_close.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_board_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_board_open_close.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_dpl_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_pinmux_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_power_clock_config.c
    .
    Linking: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out ...
    Linking: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out Done !!!
    .
    Boot image: am62px:wkup-r5fss0-0:nortos:ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_keywriter.debug.hs_fs.tiimage ...
    Boot image: am62px:wkup-r5fss0-0:nortos:ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_keywriter.debug.hs_fs.tiimage Done !!!
    .
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是我的 keycert.h、我认为7051U 可能太长了。

    这不是问题。 证书大小限制针对单个证书(primary_cert.bin 和 secondal_cert.bin)、而不是最终证书(final_certificate.bin)。

    您能否通过检查`keycert.h`的时间戳来检查其是否已更新:

    ❯ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668    secondary_cert.bin
    5383    primary_cert.bin
    7051    ../x509cert/final_certificate.bin
    # SHA512 Hashes of keys are stored in verify_hash.csv for reference..
    ❯ /usr/bin/ls -l ../../../keywr_bin/am62px/keycert.h
    -rw-r--r-- 1 p-shivhare p-shivhare 54269 Apr 11 11:47 ../../../keywr_bin/am62px/keycert.h

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

    /mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/am62px$ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668	secondary_cert.bin
    5383	primary_cert.bin
    7051	../x509cert/final_certificate.bin
    # SHA512 Hashes of keys are stored in verify_hash.csv for reference..
    mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/am62px$ /usr/bin/ls -l ../../../keywr_bin/am62px/keycert.h
    -rw-r--r-- 1 a a 54269 Apr 11 14:28 ../../../keywr_bin/am62px/keycert.h
    

    Eyes我的命令似乎发生了变化。

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

    这很好。

    如何引导生成的`tiboot3.bin` Keywriter 二进制?

    您能否提供如下所示的虚拟定制打印件并检查它是否出现在 UART 上? 这应该会确认您正在引导最后构建的 Keywriter 二进制。

    diff --git a/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/main.c b/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/main.c
    index 9c18800..3a80330 100644
    --- a/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/main.c
    +++ b/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/main.c
    @@ -144,6 +144,7 @@ int main()
         DebugP_log("Enabled VPP\r\n");
     
         Sciclient_getVersionCheck(1);
    +    DebugP_log("Dummy log!!\r\n");
     
     	keywriter_processKeyConfig();
     
    

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

    谢谢! 我发现二进制文件更新不正确。

    Starting Keywriter
    Starting Keywrite
    tca624open
    Enabled VPP
    Dummy log!! Hi Prashant:)
    
    DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    Starting Keywrite  getversioncheck
    keys Certificate found: 0x43c17580
    Keywriter Debug Response:0x0
    Success Programming Keys
    Starting Keywrite keywriter_processkeyconfig
    

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

    DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    Starting Keywrite  getversioncheck
    keys Certificate found: 0x43c16c00
    Keywriter Debug Response:0x800
    Error occured...
    
    

    我们的客户电路板没有 MAIN_UART1端口。

    下面是我如何通过 GPIO A24控制 VPP:

    void keywriter_setVpp()
    {   
    	CSL_REG32_WR(0x000F41E4,0x20000007);
    	CSL_REG32_WR(0x00601014,0x08000000);
    	CSL_REG32_WR(0x00601018,0x08000000);
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们的客户电路板没有 MAIN_UART1端口。

    TIFS 日志可通过以下函数从存储器缓冲区读取并转储到同一 UART0上:

    void dump_tifs_logs()
    {
        #define TIFS_LOGS_BUFFER_ADDR 0x4405F000
        #define TIFS_LOGS_BUFFER_SIZE 0x1000
    
        uint8_t* ptr = (uint8_t*)TIFS_LOGS_BUFFER_ADDR;
    
        DebugP_log("\r\n--TIFS_LOGS--\r\n");
    
        for(int32_t i = 0; i < TIFS_LOGS_BUFFER_SIZE; i++)
        {
            DebugP_log("%c", *ptr);
            ptr++;
        }
    
        DebugP_log("\r\n--TIFS_LOGS--\r\n");
    }

    请集成该功能并共享完整日志。

    谢谢!

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

                                         * BMPKH, BMEK:
                                                        Error in programming BMPKH part 1
                                                                                         debug_response:  0x800

    日志中没有太多内容。 我认为可能是 VPP 未正确启用的情况、因此 TIFS 无法对 BMPK 进行编程。

    该电路板的原理图是否与 Keywriter 成功运行的上一个电路板不同?

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

    否、成功的是 TI 的电路板。 当今的问题来自我们自己设计的电路板。

    另外,你能给我一些详细的解释 MSV,可以跳过它的所有键盘写入过程?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否、成功的是 TI 的主板。 今天的问题来自我们自己设计的主板。

    在这种情况下、VPP 应该是问题的原因。 请确保执行以下步骤:

    若要通过 GPIO 控制 VPP、请确保:

    • 相关的 GPIO 引脚在 SysConfig 中配置。 这是自动生成引脚多路复用代码所必需的。
    • `keywriter_setVpp`函数中使用了相关的 GPIO。

    作为参考、请参阅以下响应、其中客户通过 GPIO 成功控制了 VPP

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1339680/processor-sdk-am62x-am6231-hs-fs-varinant-otp-keywritter-support-for-convert-hs-fs-device-into-secure-device/5127460#5127460

    另外、你能给我一些关于 MSV 的详细解释吗?可以跳过所有密钥编写过程吗?

    请参阅以下主题:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1413189/am6421-opt-keywriter-msv-programming

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

    void keywriter_setVpp()
    {   
    	CSL_REG32_WR(0x000F41E4,0x20000007);
    	CSL_REG32_WR(0x00601014,0x08000000);
    	CSL_REG32_WR(0x00601018,0x08000000);
    }

    更重要的是我如何通过 GPIO A24控制 VPP。  您能帮我 检查一下吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    上面是我如何通过 GPIO A24控制 VPP。  您能帮我 检查吗?

    您是否可以参考我之前响应中共享的线程、而不是直接操作寄存器、首先在 SysConfig 中配置 GPIO 引脚、然后使用 GPIO 驱动程序 API 将该引脚驱动至高电平。