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-AM62:使用 USB DFU 模式刷写 SK-AM62-LP 时遇到问题

Guru**** 2577385 points
Other Parts Discussed in Thread: SK-AM62-LP, AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1237880/sk-am62-trouble-flashing-sk-am62-lp-using-usb-dfu-mode

器件型号:SK-AM62

您好!  

我们尝试使用 USB DFU 模式以修订版 PROC124E2来刷写我们的开发板 SK-AM62-LP。  

我们使用的主机是 Linux 与 Ubuntu 22.04。  

当按照此处的指南进行操作时: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1127618/faq-sk-am62-how-to-flash-emmc-using-usb-dfu-on-am62x-sk-e2 

此电路板按如下方式进行连接:  

  • 将板载 J17 Micro USB 连接到主机笔记本电脑上的 USB-C 以进行 UART 连接
  • 板载 J15 USB-C 连接到笔记本电脑上的 USB-C、以进行 DFU 闪烁
  • J12 USB-C (PWR)连接到 PD 电容电源
  • Micro SDHC SanDisk 3GB 卡

但是、在我们构建了3个文件(使用更新的"defconfig"文件:"am62x_EVM_R5_usbdfu_defconfig"和 "am62x_EVM_A53_defconfig")后:  

  • tiboot3.bin
  • tispl.bin
  • u-boot.img

并尝试使用"df-util"将它们刷写到电路板中、我们得到以下输出:  

>> sudo dfu-util -R -a bootloader -D tiboot3.bin
dfu-util 0.9

版权所有2005-2009年 Weston Schmidt、Harald Welte 和 OpenMoko Inc.
版权所有2010-2016 Tormod Volden 和 Stefan Schmidt
该程序是自由软件,没有任何担保
请将错误报告给 sourceforge.net/.../

dfu-util:DFU 后缀签名无效
dfu-util:未来的 dfu-util 版本中将需要有效的 dfu 后缀!!
正在打开支持 DFU 的 USB 设备...
ID 0451:6165
运行时器件 DFU 版本0110
正在申请 USB DFU 接口...
正在设置备用设置#0...
确定器件状态:State = dfuIDLE、STATUS = 0
DFUIDLE、继续
DFU 模式器件 DFU 版本0110
设备返回的传输大小512
将数据从 PC 复制到 DFU 器件
下载============================ 100% 332022字节
下载完成。
STATE (6)= dfuMANIFEST-SYNC、STATUS (0)=不存在错误条件
dfu-util:完成后无法读取 DFU 状态。
dfu-util:无法分离
复位 USB 以切换回运行时模式
-------------------------------------------------------

我们在串行 UART 微型 USB 控制台(gtkterm)中没有看到输出。 它是完全空的。  

当我们再次尝试列出 DFU 单元时、电路板没有:  

>> sudo dfu-util -l
dfu-util 0.9

版权所有2005-2009年 Weston Schmidt、Harald Welte 和 OpenMoko Inc.
版权所有2010-2016 Tormod Volden 和 Stefan Schmidt
该程序是自由软件,没有任何担保
请将错误报告给 http://sourceforge.net/p/dfu-util/tickets/
----------------------------------------------------------------------------------------------------

我只能通过对电路板进行下电上电来恢复它。  

下电上电后:  
>> sudo dfu-util -l
dfu-util 0.9

版权所有2005-2009年 Weston Schmidt、Harald Welte 和 OpenMoko Inc.
版权所有2010-2016 Tormod Volden 和 Stefan Schmidt
该程序是自由软件,没有任何担保
请将错误报告给 sourceforge.net/.../

找到 DFU:[0451:6165] ver=0200、devnum=58、cfg=1、intf=0、path="3-5"、 alt=1、name="SockId"、serial="01.00.00.00.00.00.00.0"
找到 DFU:[0451:6165] ver=0200、devnum=58、cfg=1、intf=0、path="3-5"、 alt=0、name="bootloader"、serial="01.00.00.00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

此后、我们无法继续尝试刷写 tispl.bin 文件和 u-boot.img 文件。

我在我们具有 PROC124E2的特定电路板上找不到这么多信息。 我们是否需要此电路板的任何特殊说明?  

需要注意的是、我们尝试使用此处提供的 WIC 映像刷写 SD 卡: https://dev.ti.com/tirex/explore/node?node=A__AdoyIZ2jtLBUfHZNVmgFBQ__am62x-devtools__FUz-xrs__LATEST&search=am62x 

但是、在使用 Balena Etcher 刷写 SD 卡后、根据 https://dev.ti.com/tirex/explore/node?node=A__ABlmxwZfle7AfM3QhRii6w__linux_academy_am62x__XaWts8R__8.3.0.0%20v1&search=am62尝试在 SD 卡引导中使用引导引脚进行引导 

我们也无法使其引导、我们在 Micro USB UART 串行控制台中未看到任何内容(对/dev/ttyUSB0 115200-8-N-1使用 gtkterm)。  

我们有2个问题:  

  • 无法使用 USB DFU 模式刷写 eMMC
  • 除了 UART 引导模式、我们在 UART 连接上没有针对任何类型的引导的串行输出

在 UART 引导模式下、我可以使用字符"C"和其他字符。 进行一些解码后、看起来如下所示:  

----------------
SoC ID 标头信息-------------------------------------------------------

数字块 [2]-------

SOC ID 公共 ROM 信息-------------------------------------------------------

子块 ID :
SubBlockSize :
DeviceName : am62x
设备类型 : HSFS
DMSC ROM 版本 :[0, 1, 0, 1]
R5 ROM 版本 :[0,1,0,1]-------

SOC ID 安全 ROM 信息-------------------------------------------------------

秒子块 ID :2
秒子块大小 : 166
Sec 黄金级 :0
秒密钥版本 :0
秒密钥计数 0
秒 TI MPK 哈希 :d68ecb2c055dff11ade95bd927e837d2a53bc23b0a2800cebce4f106bcf309df2213912d77a157a8b7c2df40672a06a918034aa4c7d60225462481475d490000000000000000b000000000000000000000000

:5a7e46551e64d1d60590128b2566531d07bd00f3a6a23c6c52eedb5a38072a34 


提前感谢!  

/约翰

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

    另外、我现在看到、有时通过 USB DFU 进行刷写时、实际上似乎会得到一些 UART 串行控制台输出。 但我们得到的结果是:  

    U-Boot SPL 2021.01-00001-g45cb7e44ae (6月14日2023 - 15:45:27 +0200)
    SYSFW ABI:3.1 (固件版本0x0008'8.6.4--v08.06.04 (Chill Capybar')
    SPL 初始堆栈使用:13424字节

    然后什么都没有...

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

    您好!

    您似乎有一个 AM62-LP SK 而非 AM62x SK 板。 这些二进制文件不会在您的电路板上引导。 您需要使用以下 defconfigs 构建 U-boot:
    - am62x_lpsk_a53_defconfig
    - am62x_lpsk_r5_defconfig

    ~朱迪斯

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

    您好、Judith:  

    感谢您的回答。 我试着用这些 defconfigs 进行构建、并做了一点更进一步的工作。  
    现在、当我尝试使用"dfu-util"下载 tiboot3.bin 时、情况会是:  

    >> sudo dfu-util -R -a bootloader -D tiboot3.bin
    dfu-util 0.9

    版权所有2005-2009年 Weston Schmidt、Harald Welte 和 OpenMoko Inc.
    版权所有2010-2016 Tormod Volden 和 Stefan Schmidt
    该程序是自由软件,没有任何担保
    请将错误报告给 sourceforge.net/.../

    dfu-util:DFU 后缀签名无效
    dfu-util:未来的 dfu-util 版本中将需要有效的 dfu 后缀!!
    正在打开支持 DFU 的 USB 设备...
    ID 0451:6165
    运行时器件 DFU 版本0110
    正在申请 USB DFU 接口...
    正在设置备用设置#0...
    确定器件状态:State = dfuIDLE、STATUS = 0
    DFUIDLE、继续
    DFU 模式器件 DFU 版本0110
    设备返回的传输大小512
    将数据从 PC 复制到 DFU 器件
    下载============================ 100% 314198字节
    下载完成。
    STATE (6)= dfuMANIFEST-SYNC、STATUS (0)=不存在错误条件
    dfu-util:完成后无法读取 DFU 状态。
    dfu-util:无法分离
    复位 USB 以切换回运行时模式


    然后、在 Micro USB 串行控制台中显示:  

    U-Boot SPL 2021.01-00001-g45cb7e44ae (6月15日2023 - 08:19:10 +0200)
    SYSFW ABI:3.1 (固件版本0x0008'8.6.4--v08.06.04 (Chill Capybar')
    SPL 初始堆栈使用:13424字节
    SPL:不支持的引导设备!
    SPL:无法从所有启动设备引导
    ###错误###请重置主板###

    我试图重置主板(软重置和硬重置)、但没有帮助。  
    您提供的 defconfigs 可能不支持 DFU 引导吗?  
    - am62x_lpsk_a53_defconfig
    - am62x_lpsk_r5_defconfig  

    我知道其他电路板的 defconfig 需要在 defconfig 的名称中包含"_usbdfu_"、以便 DFU 引导正常工作。  

    此致

    约翰

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

    我们在 SDK 中找不到任何支持 DFU 的 defconfig、因此放弃了电路板的 DFU USB 引导。  

    但是、我们现在切换到了 SD 卡引导、使用了 tiboot3.bin、tispl.bin 和 u-boot.img、我们使用了  
     
    - am62x_lpsk_a53_defconfig
    - am62x_lpsk_r5_defconfig

    我们还使用来自 TI SDK 的默认映像刷写了一个 SD 卡: tisdk-default-image-am62xx-evm.wic.xz  

    然后、我们将引导分区上的引导文件更改为我们在上面创建的文件。  

    现在、我们让 U-boot 更进一步、但最终会失败、原因如下:  

    U-Boot SPL 2021.01-00001-g45cb7e44ae (Jun 15 2023 - 10:54:51 +0200)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    SPL initial stack usage: 13424 bytes
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment
    
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 05:06:58, Feb 24 2023
    
    U-Boot SPL 2021.01-00001-g45cb7e44ae (Jun 15 2023 - 10:54:47 +0200)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    Trying to boot from MMC2
    Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices
    Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices
    
    
    U-Boot 2021.01-00001-g45cb7e44ae (Jun 15 2023 - 10:54:47 +0200)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM62x LP SK
    EEPROM not available at 0x50, trying to read at 0x51
    Board: AM62-LP-SKEVM rev E2
    DRAM:  2 GiB
    NAND:  0 MiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0 
    switch to partitions #0, OK
    mmc1 is current device
    SD/MMC found on device 1
    Failed to load 'boot.scr'
    1490 bytes read in 3 ms (484.4 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    Running uenvcmd ...
    1 bytes read in 3 ms (0 Bytes/s)
    Already setup.
    19147264 bytes read in 760 ms (24 MiB/s)
    Failed to load '/boot/k3-am62x-lp-sk.dtb'
    libfdt fdt_check_header(): FDT_ERR_BADMAGIC
    No FDT memory address configured. Please configure
    the FDT address via "fdt addr <address>" command.
    Aborting!
    ERROR: Did not find a cmdline Flattened Device Tree
    Could not find a valid device tree


    我们如何解决这个问题?  

    加载"/boot/k3-am62x-lp-sk.dtb "失败
    libfdt FDT_check_header ():FDT_ERR_BADMAGIC
    未配置 FDT 存储器地址。 请配置
    通过"FDT addr "添加 FDT 地址
    "命令。
    正在中止!
    错误:未找到命令行展开的设备树
    找不到有效的设备树  

    我曾尝试将   k3-am62x-LP-SK.DTB 放入 SD 卡的引导分区中(从 TI SDK 获取)、但它显示了相同的错误。  

    /约翰

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

    尊敬的 Johan:

    是的、在 TI-U-boot 中似乎没有适合您的电路板的 usbdfu defconfigs、因此我不确定它是否经过验证。

    因此、适用于 AM62-LP 的 PSDK 尚未发布、这就是您找不到太多信息的原因。 虽然此产品很快就会上市:  AM62p 器件下为 software-dl.ti.com/.../。 然后、您可以刷写.wic 映像以引导您的电路板。

    如果没有、您处于正确的轨道、它应该起作用。 除了您需要将 k3-am62x-LP-SK.DTB 放置 在 SD 卡的根/引导分区中。

    ~朱迪斯

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

    您好、Judith:  

    感谢您的答复。  

    是的、根据文档、此电路板似乎还没有那么多支持。  

    但请参阅此处的文档: https://dev.ti.com/tirex/explore/node?node=A__AHlqIk-7QQxAvfmhk-DlOA__linux_academy_am62x__XaWts8R__LATEST 
    我能够构建引导链、定制内核、使用默认 TI 映像中的文件系统、并使其从 SD 卡引导。  

    我将看到我是否在生产线上遇到任何其他问题。  

    此致
    约翰

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

    您好!

    太好了、请及时告知我。

    ~朱迪斯