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.

[参考译文] LP-AM243:LP-AM243上的 UART Uniflash 程序

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1378617/lp-am243-uart-uniflash-procedure-on-lp-am243

器件型号:LP-AM243
主题中讨论的其他器件:UNIFLASH

工具与软件:

你好。
我按照"AM64X_AM243X OTP Keywriter 用户指南"中的说明创建了 tiboot3.bin。
我有两个问题。
Q1:当我运行 UART Uniflash 命令时、器件是否已转换为 HS-SE?

python3 ... /。。 /。。 /。。 /tools/boot/uart_uniflash.py -p /dev/ttyUSB0 --cfg= /keywr_sbl_ .cfg

问题2:这里写的是哪个文档的"第4.2节"? 我应该参考哪份文档?



第4.2节"不存在于"AM64X_AM243X OTP Keywriter 用户指南"中。

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

    您好!

    第4.2节"不存在于"AM64X_AM243X OTP Keywriter 用户指南"中。

    它旨在参考第6.2节

    此致、

    Prashant

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

    您好、Prashant

    我在使用按照 AM64X_AM243X OTP Keywriter 用户指南中的说明创建的 tiboot3.bin 执行 UART 引导时收到错误。

    USB DFU 在我的 PC 上不可用。
    因此、我尝试使用 UART 来刷写 tiboot3.bin。
    是否需要发送 tiboot3来刷写 UART?

    请告诉我使用 FS 将 HS-UART 转换为 HS-SE 的过程。

    此致
    Yukinobu

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

    您好!

    使用 Teraterm 通过 UART 引导 tiboot3.bin 看起来不错、因此这不是问题。

    我可以知道您正在使用的 openssl 版本吗? 请确保您使用的是 OpenSSL v1.1.x

    ❯ openssl version
    OpenSSL 1.1.1v  1 Aug 2023

    此致、

    Prashant

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

    你好。

    请让我确认一下 openssl 版本。
    AM64X_AM243X OTP Keywriter 用户指南显示 openssl 版本是3.1.2或3.2.1、并且我已安装3.2.1。



    但是 openssl v1.1.x 是正确的版本吗?

    是否有任何其他软件与 AM64X_AM243X OTP Keywriter 用户指南和 openssl 中描述的版本不同?



    附录:
    我将 openssl 更新为1.1.x 版,但情况不变。



    通过 UART 传输 tiboot3.bin 时出错。
    如何在 UART 上无错误地进行传输?  



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

    您好!

    抱歉、我认为您使用的是以前的版本。 如果您使用的是最新的 Keywriter v09_01_00、则应仅使用《用户指南》中提到的 OpenSSL v3.x.x。

    通过 UART 传输 tiboot3.bin 时出错。
    如何在 UART 上无错误地进行传输?  [报价]

    您能否共享用于生成 Keywriter 证书的命令?

    此致、

    Prashant

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

    你好。

    我正在使用的 OTP 密钥编写器是 otp_keywriter_am243x_09_01_00-windows-installer.exe。

    密钥编写器证书是使用以下命令创建的:

    ./ gen_keywr_cert.sh --mSv 0xC0FFE -t tifek/ti_fek_public.pem

    此命令与 AM64X_AM243X_OTP_AM09_01_00.pdf 中 Keywriter_User_Guide_的命令相同。



    此致、

    Yukinobu

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

    您好!

    您使用的是定制电路板还是 TI AM243x-LP 电路板?

    您能否也分享 Sysfw 日志?

    此致、

    Prashant

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

    你好。
    感谢您的支持。

    是的、我使用的是 TI AM243x LaunchPad。

    抱歉、我不知道 SYSFW 日志的位置。
    SYSFW 日志在哪里?

    此外、我是否需要运行任何命令来获取 SYSFW 日志?

    此致、

    Yukinobu

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

    尊敬的 Yukinobu:

    SYSFW 日志转储到 UART1端口上。 您可以参考" 6.5 Keywriter 日志和调试 "和" 8.2 OTP Keywriter 日志 "。

    此致、

    Prashant

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

    Prashant、您好!
    我很抱歉、但请告诉我。
    我的 LP-AM243x 只有 UART0、UART1在哪里?
    我是否需要任何选项?


    此致、
    Yukinobu

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

     Prashant、您好!

    我找到了 UART1的位置。 但是、我无法连接到 J13、因为我没有 FTDI 线缆。
    因此、我无法共享 SYSFW 日志。
    是否有其他方法来调查此事?

    通过 UART 传输 tiboot3.bin 失败、
    我无法将其转换为 HS-SE。
    我在检查安全启动时遇到问题。
    很抱歉、请帮我解决这个问题。

    此致、
    Yukinobu

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

    尊敬的 Yukinobu:

    感谢您的耐心等待!!

    我今天亲手操作了 AM243x-LP PROC109A 板、可以看到 OTP Keywriter 出现故障。 我可以知道您的主板版本吗?

    此致、

    Prashant

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

     Prashant、您好!

    在哪里可以找到该主板的版本号?
    我不知道修订版号写在哪里。

    我能够借用 FTFI 电缆。
    我已经获得了 YSFW 日志、并将与您分享这些日志。

    ・x409031
    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:  0x0
    Error in programming MSV
    debug_response:  0x2000000
    [u32] bch + msv:  0x0
    
    * 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
    
    

    用于传输的 tiboot3.bin 是使用用户指南中所述的过程创建的。
    1. / gen_keywr_cert.sh --mSv 0xC0FFE -t tifek/ti_fek_public.pem
    2 python……/… /。。 /。。 /。。 /tools/bin2c/bin2c.py final_certificate.bin keycert.h KEYCERT
    3 gmake -sJ clean profile=调试
    gmake -sJ PROFILE=调试

    此致、
    Yukinobu

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

    尊敬的 Yukinobu:

    感谢您分享日志!! 但我认为该问题仅与"电路板修订"有关。

    您会发现版本会像这样印在板上

    此致、

    Prashant

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

     Prashant、您好!

    我的板编号是 PROC109A。

    此致、
    Yukinobu

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

    尊敬的 Yukinobu:

    这就是失败的原因!!

    OTP Keywriter 与 PROC109A 电路板修订版开包即用不兼容。 原因是 OTP Keywriter 在默认情况下配置 GPIO0_53以启用 VPP (之前的修订版就是这种情况)。 但是、在此 PROC109A 修订版中、GPIO0_53已与 VPP 断开连接、因此 Keywriter 不工作、因为从未启用 VPP。

    PROC109A 原理图建议在接头 J22上插入一个外部跳线以启用 VPP、如图所示

    因此、要使 OTP Keywriter 与 PROC109A 一起工作、您必须执行以下操作:

    • 在 Keywriter 源代码中注释"keywriter_setVpp()"调用。
      diff --git a/sbl_keywriter/am243x-evm/r5fss0-0_nortos/main.c b/sbl_keywriter/am243x-evm/r5fss0-0_nortos/main.c
      index 08c3c75..d7b52ac 100644
      --- a/sbl_keywriter/am243x-evm/r5fss0-0_nortos/main.c
      +++ b/sbl_keywriter/am243x-evm/r5fss0-0_nortos/main.c
      @@ -58,8 +58,8 @@ int main()
           DebugP_log("\r\n");
           DebugP_log("Starting Keywriting\r\n");
       
      -    keywriter_setVpp();
      -    DebugP_log("Enabled VPP\r\n");
      +    // keywriter_setVpp();
      +    // DebugP_log("Enabled VPP\r\n");
       
           keywriter_processKeyConfig();
       
      
    • 照常构建 Keywriter。
    • 根据建议插入外部跳线。
    • 运行 Keywriter。
    • 成功后、移除跳线以禁用 VPP。

    此致、

    Prashant

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

     Prashant、您好!

    OTP Keywriter 二进制传输成功。


    您现在可以继续。
    非常感谢您的支持。

    如果您遇到任何其他问题、请再次支持我。

    此致、
    Yukinobu

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

    尊敬的 Yukinobu:

    真的很高兴知道 Keywriter 终于工作了!!

    我认为现在该器件已成功转换为 HSSE。 如有疑问、您可以通过以下常见问题解答查看器件类型

    (+)[常见问题解答][AM6XX]:如何检查器件类型是 HS-SE、FS 还是 GP? -处理器论坛-处理器- TI E2E 支持论坛

    如果您有任何进一步的疑问、请告诉我、否则我将关闭此主题。

    此致、

    Prashant

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

     Prashant、您好!

    我检查了器件类型、它是 HS-SE FS、未转换为 HS-SE。


    c:\ti\mcu_plus_sdk_am243x_09_02_01_05\tools\boot\socid_parser>python uart_boot_socid.py -d am64x --string="02000000011a0000616d3634780000000000000048534653000002000000020002a6000000000000b018658ad99dc903c8c9bfb27b12751099920a042ad1dfea7b7ba57369f15546de285edde6a7b39a8bdc40a27b237f8fb1e57f245e80b929c1e28b024aa2ecc6ad0bc40b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"00000000000000000000001a722215db138f69c8bd56f1f551a04cf4bbb797dc5839feacd92f79727fcfc0"
    -----------------------
    SoC ID Header Info:
    -----------------------
    NumBlocks            : 2
    -----------------------
    SoC ID Public ROM Info:
    -----------------------
    SubBlockId           : 1
    SubBlockSize         : 26
    DeviceName           : am64x
    DeviceType           : HSFS
    DMSC ROM Version     : [0, 2, 0, 0]
    R5 ROM Version       : [0, 2, 0, 0]
    -----------------------
    SoC ID Secure ROM Info:
    -----------------------
    Sec SubBlockId       : 2
    Sec SubBlockSize     : 166
    Sec Prime            : 0
    Sec Key Revision     : 0
    Sec Key Count        : 0
    Sec TI MPK Hash      : b018658ad99dc903c8c9bfb27b12751099920a042ad1dfea7b7ba57369f15546de285edde6a7b39a8bdc40a27b237f8fb1e57f245e80b929c1e28b024aa2ecc6
    Sec Cust MPK Hash    : ad0bc40b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    Sec Unique ID        : 1a722215db138f69c8bd56f1f551a04cf4bbb797dc5839feacd92f79727fcfc0
    


    因此、我再次传输了 OTP Keywriter 二进制、但它给了我一个错误。

    我以为我已经取得了进展,但我感到失望。
    很抱歉、请再次支持我们。

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

    尊敬的 Yukinobu:

    。 / gen_keywr_cert.sh --mSv 0xC0FFE -t tifek/ti_fek_public.pem

    似乎您已使用此命令生成证书。 如果愿意、这只对 MSV 字段进行编程、不会转换器件。 您需要对密钥以及正确的 keycnt、keyrev 进行编程、以将器件转换为 HSSE。

    您可以使用" 5.2.2一次性编程所有内容 "。 由于您已经对 MSV 进行了编程、因此请跳过选项"--mSv"并对其他所有内容进行编程。 请注意、这将对 TI 虚拟密钥进行编程。

    此致、

    Prashant

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

     Prashant、您好!

    我最终能够将器件转换为 HS-SE。
    非常感谢您的支持。

    -----------------------
    SoC ID Header Info:
    -----------------------
    NumBlocks            : 2
    -----------------------
    SoC ID Public ROM Info:
    -----------------------
    SubBlockId           : 1
    SubBlockSize         : 26
    DeviceName           : am64x
    DeviceType           : HSSE
    DMSC ROM Version     : [0, 2, 0, 0]
    R5 ROM Version       : [0, 2, 0, 0]
    -----------------------
    SoC ID Secure ROM Info:
    -----------------------
    Sec SubBlockId       : 2
    Sec SubBlockSize     : 166
    Sec Prime            : 0
    Sec Key Revision     : 1
    Sec Key Count        : 2
    Sec TI MPK Hash      : b018658ad99dc903c8c9bfb27b12751099920a042ad1dfea7b7ba57369f15546de285edde6a7b39a8bdc40a27b237f8fb1e57f245e80b929c1e28b024aa2ecc6
    Sec Cust MPK Hash    : 1f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189760dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527d
    Sec Unique ID        : 1a722215db138f69c8bd56f1f551a04cf4bbb797dc5839feacd92f79727fcfc0
    
    

    此致、
    Yukinobu