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.

[参考译文] AM6441:AM6441 定制电路板 — SPL DFU 失败且显示"未找到 USB 器件、udc_device_get_by_index faile"而 ROM DFU 工作

Guru**** 2905430 points

Other Parts Discussed in Thread: AM6441

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1645465/am6441-am6441-custom-board---spl-dfu-fails-with-no-usb-device-found-udc_device_get_by_index-failed-while-rom-dfu-works

器件型号: AM6441

尊敬的团队:

我们正在使用 BuildRoot 和 U-Boot 2024.07 启动定制 AM6441 电路板。

目前、我们使用的是相同的:

  • defconfig
  • DTS
  • SPL/U-Boot 配置

用于 AM64x EVM/SK 的 GUI。

当前状态:

  • ROM DFU 引导在定制板上正常运行。
  • 我们可以 tiboot3.bin 使用成功加载 dfu-util
  • SPL 启动且 SYSFW 初始化成功。

当前 SPL 日志:

U-Boot SPL 2024.07
SYSFW ABI: 3.1
SPL initial stack usage: 13368 bytes
Trying to boot from DFU
No USB device found
udc_device_get_by_index failed
SPL: failed to boot from all boot devices

重要观察:

  • 完全相同的二进制文件可在 AM64x EVM 上正常运行。
  • 在 EVM 上:
    • ROM DFU 工作
    • SPL DFU 工作
    • USB 小工具会正确枚举
  • 定制电路板上:
    • ROM DFU 工作
    • SPL USB 小工具初始化失败
  •  USB 包装器节点

    • &usbss0{
          全部引导;
          TI、VBUS 分压器;
          仅 TI、USB2;
      };
  • Cadence USB 控制器节点 (usb0)
    • usbss0:cdns-usb@f900000{
          兼容=“ti、am64-USB“;
          电源域=<&K3_PDS 161 1>;
          Clocks =<&K3_CLKS 161 9>、<&K3_CLKS 161 1>;

          USB0:USB@f400000{
              兼容=“CDN、USB3“;
              DR_MODE =“外设“;
              最大速度=“高速“;
          };
      };

  •  

我们的定制电路板当前不使用 EEPROM、因此我们添加了一个临时补丁 do_board_detect() 来绕过 EEPROM 读取并填充最小电路板信息结构、以便 SPL 可以继续引导。

我们需要有关从 EVM 软件迁移到定制 AM6441 电路板的建议流程的指导。

具体来说:

  1. 定制电路板需要进行哪些强制性 DTS 更改?
  2. 通常需要更改哪些 SPL/U-Boot 配置?
  3. 定制硬件是否需要更改 AM64x 特定的 USB PHY/RESET/电源域?
  4. 定制电路板上是否存在与 ROM DFU→SPL USB 小工具切换相关的任何已知问题?
  5. 对于没有 EEPROM 的电路板、建议使用什么方法?

由于我们目前正在定制硬件上使用 EVM defconfig 和 DTS、因此请提供有关正确电路板移植步骤的指导。

如果可能、TI 可否帮助安排技术讨论/调试会议、以便了解:

  • USB 初始化
  • SPL 配置
  • DTS 迁移
  • 定制电路板启动建议

谢谢。

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

    尊敬的 Manish:

    在我们深入探讨该问题之前、您是否报告了与下面主题链接中相同项目的问题?

     AM6441:定制 AM6441 电路板上的 USB DFU 启动 

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

    我们来自同一个组织、从事同一个项目

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

    好的、我们关闭另一个线程并继续在该线程上进行通信。

    完全相同的二进制文件可在 AM64x EVM 上正常运行。

    U-Boot 器件树具有两个用于两个不同 AM64x EVM 的 DTS:k3-am642-sk.dts 和 k3-am642-evm.dts。 您在定制电路板中使用的 DTS 文件名是什么?

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

    更新 DTS 以使用 USB2 高速模式并移除 USB3 PHY 依赖项后、之前的“未找到 USB 器件“问题现在得以解决。 通过这些更改、我们现在能够 tiboot3.bin tispl.bin 在定制电路板上成功刷写并通过 USB DFU 执行、ATF/OPTEE 日志也可见、确认是否成功执行 tispl.bin

    目前、问题正在 u-boot.img 下载所需的下一个 DFU 阶段发生。 tispl.bin 执行后、USB 设备按预期断开连接、但下一个 DFU 重新枚举没有可靠地发生。 在调试 CDNS3 小工具流时、执行 cdns3_ep0_config() 会到达并继续进行、直到端点配置。 我们观察到 usb_conf 回读为 0x0,并且在访问 ep_cfg 之后的寄存器时执行似乎停止 cdns3_select_ep()

    当前调试流程:

    run_usb_dnl_gadget()
      -> g_dnl_register()
      -> usb_composite_register()
      -> usb_gadget_register_driver()
      -> usb_gadget_udc_start()
      -> cdns3_gadget_config()
      -> cdns3_ep0_config()
      -> cdns3_select_ep()
    

    附加的日志:

    U-Boot SPL 2024.07 (May 14 2026 - 13:20:36 +0530)
    Resetting on cold boot to workaround ErrataID:i2331
    Please resend tiboot3.bin in case of UART/DFU boot
    resetting ...
    
    U-Boot SPL 2024.07 (May 14 2026 - 13:20:36 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    DEBUG: entered cdns3_bind
    DEBUG: raw dr_mode property = peripheral
    DEBUG : CASE Peripheral mode.
    DEBUG: binding driver cdns-usb3-peripheral
    DEBUG: bind ret = 0
    SPL initial stack usage: 13368 bytes
    Trying to boot from DFU
    Enter in cdns_ti_probe.
    Entered in cdns3_gadget_probe.
    DEBUG: entered cdns3_probe
    #############################################DOWNLOAD ... OK
    Ctrl+C to exit ...
    Authentication passed
    Authentication passed
    Loading Environment from MMC... MMC Device 0 not found
    *** Warning - No MMC card found, using default environment
    
    init_env from device 10 not supported!
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.11.0(release):v2.11
    NOTICE:  BL31: Built : 07:06:45, Apr 21 2026
    I/TC:
    I/TC: OP-TEE version: Unknown_4.3 (gcc version 13.3.0 (Buildroot 2024.11-dirty)) #1 Tue Apr 21 01:36:37 UTC 2026 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.07 (May 15 2026 - 11:12:27 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    Trying to boot from DFU
    DEBUG: entered run_dfu
    DEBUG: dfu_init_env_entities ret = 0
    DEBUG: before udc_device_get_by_index
    DEBUG: Inside the cdns_ti_probe.
    DEBUG: exit the cdns_ti_probe.
    DEBUG: after udc_device_get_by_index ret=0
    DEBUG: before g_dnl_register
    DEBUG: Entered g_dnl_register.
    DEBUG: Before usb_composite_register.
    DEBUG: Inside usb_composite_register.
    DEBUG: Before usb_gadget_register_driver.
    DEBUG: Inside the usb_gadget_probe_driver.
    DEBUG: Before udc_bind_to_driver.
    DEBUG: Inside udc_bind_to_driver.
    DEBUG: Before usb_gadget_udc_set_speed.
    DEBUG: After usb_gadget_udc_set_speed.
    DEBUG: Before bind.
    DEBUG: After bind ret=0.
    DEBUG: Before usb_gadget_udc_start.
    DEBUG: entered udc_start
    DEBUG: after gadget_to_cdns3_device
    DEBUG: after spin_lock
    DEBUG: after gadget_driver assign
    DEBUG: after set_speed
    Before the cdns3_ep0_config.
    DEBUG: Inside cdns3_ep0_config.
    Before cpu_to_le16.
    After cpu_to_le16.
    Before cdns3_select_ep.
     DEBUG: Inside the cdns3_select_ep.
    After cdns3_select_sp.
    ep_cfg addr =
    usb_conf = 0x0
    


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

    尊敬的 Manish:

    很高兴听到原始问题得到解决、感谢您对新问题的详细描述。

    tispl.bin 执行后、USB 设备会按预期断开连接、但下一次 DFU 重新枚举没有可靠地进行。 在调试 CDNS3 小工具流时、执行 cdns3_ep0_config() 会到达并继续进行、直到端点配置。 我们观察到 usb_conf 回读为 0x0,并且 ep_cfg 在访问寄存器之后,执行似乎停止 cdns3_select_ep()

    请应用以下链接中提供的两个 U-Boot 补丁。 他们应该会解决此 DFU 可靠性问题。

    0001-usb-cdns3-implement-workaround-for-i2409.patch

    0002-usb-cdns3-set-FST_REG_access-before-access-access-usb-reg.patch EP

    参考资料:

     关于:AM6412:使用 dfu-util 加载引导加载程序时 AM64 偶尔挂起 

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

    尊敬的 Manish:

    我从 U-Boot 控制台日志中注意到、您的工程仍使用 U-Boot 2024.x 随附的 SYSFW 版本 v09.02.07 由于 PLL 编程时序控制问题、您需要迁移至 SYSFW 版本 v10.00.07。 有关详细信息、请参阅以下链接。

    2.3.迁移指南—Processor SDK AM64X 文档

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

    感谢您的答复和建议的步骤。 我将对其进行测试并尽快更新观察结果。

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

    尊敬的 Bin Liu:

    感谢您的答复和建议的步骤。 我在我的编译中应用了补丁、然后 DFU 挂起问题得到解决。 但是、刷写 tispl.bin 后、电路板会执行复位序列并返回到初始阶段、定制电路板上还有一件事是在外设模式下使用 Type C 端口。 请查找下面随附的主机和电路板日志以供参考。


    主机日志;

    manish@manish-Latitude-7490:~/arm64x/buildroot/output/images$ sudo dfu-util -R -a bootloader -D tiboot3.bin
    dfu-util 0.11-dev
    
    Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
    Copyright 2010-2021 Tormod Volden and Stefan Schmidt
    This program is Free Software and has ABSOLUTELY NO WARRANTY
    Please report bugs to sourceforge.net/.../
    
    dfu-util: Warning: Invalid DFU suffix signature
    dfu-util: A valid DFU suffix will be required in a future dfu-util release
    Opening DFU capable USB device...
    Device ID 0451:6165
    Device DFU version 0110
    Claiming USB DFU Interface...
    Setting Alternate Interface #0 ...
    Determining device status...
    DFU state(2) = dfuIDLE, status(0) = No error condition is present
    DFU mode device DFU version 0110
    Device returned transfer size 512
    Copying data from PC to DFU device
    Download    [=========================] 100%       536422 bytes
    Download done.
    DFU state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present
    DFU state(2) = dfuIDLE, status(0) = No error condition is present
    Done!
    dfu-util: can't detach
    Resetting USB to switch back to Run-Time mode
    manish@manish-Latitude-7490:~/arm64x/buildroot/output/images$ sudo dfu-util -R -a bootloader -D tiboot3.bin
    dfu-util 0.11-dev
    
    Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
    Copyright 2010-2021 Tormod Volden and Stefan Schmidt
    This program is Free Software and has ABSOLUTELY NO WARRANTY
    Please report bugs to sourceforge.net/.../
    
    dfu-util: Warning: Invalid DFU suffix signature
    dfu-util: A valid DFU suffix will be required in a future dfu-util release
    Opening DFU capable USB device...
    Device ID 0451:6165
    Device DFU version 0110
    Claiming USB DFU Interface...
    Setting Alternate Interface #0 ...
    Determining device status...
    DFU state(2) = dfuIDLE, status(0) = No error condition is present
    DFU mode device DFU version 0110
    Device returned transfer size 512
    Copying data from PC to DFU device
    Download    [=========================] 100%       536422 bytes
    Download done.
    DFU state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present
    DFU state(2) = dfuIDLE, status(0) = No error condition is present
    Done!
    dfu-util: can't detach
    Resetting USB to switch back to Run-Time mode
    manish@manish-Latitude-7490:~/arm64x/buildroot/output/images$ sudo dfu-util -R -a tispl.bin -D tispl.bin
    dfu-util 0.11-dev
    
    Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
    Copyright 2010-2021 Tormod Volden and Stefan Schmidt
    This program is Free Software and has ABSOLUTELY NO WARRANTY
    Please report bugs to sourceforge.net/.../
    
    dfu-util: Warning: Invalid DFU suffix signature
    dfu-util: A valid DFU suffix will be required in a future dfu-util release
    Opening DFU capable USB device...
    Device ID 0451:6165
    Device DFU version 0110
    Claiming USB DFU Interface...
    Setting Alternate Interface #0 ...
    Determining device status...
    DFU state(2) = dfuIDLE, status(0) = No error condition is present
    DFU mode device DFU version 0110
    Device returned transfer size 4096
    Copying data from PC to DFU device
    Download    [=========================] 100%       903187 bytes
    Download done.
    DFU state(7) = dfuMANIFEST, status(0) = No error condition is present
    DFU state(2) = dfuIDLE, status(0) = No error condition is present
    Done!
    Resetting USB to switch back to Run-Time mode
    manish@manish-Latitude-7490:~/arm64x/buildroot/output/images$ sudo dfu-util -l
    dfu-util 0.11-dev
    
    Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
    Copyright 2010-2021 Tormod Volden and Stefan Schmidt
    This program is Free Software and has ABSOLUTELY NO WARRANTY
    Please report bugs to sourceforge.net/.../
    
    Found DFU: [0451:6165] ver=0200, devnum=78, cfg=1, intf=0, path="1-3", alt=0, name="bootloader", serial="01.00.00.00"
    Found DFU: [0451:6165] ver=0200, devnum=78, cfg=1, intf=0, path="1-3", alt=1, name="SocId", serial="01.00.00.00"
    manish@manish-Latitude-7490:~/arm64x/buildroot/output/images$
    
    Board logs :
    
    
    
    U-Boot SPL 2024.07 (May 14 2026 - 13:20:36 +0530)
    Resetting on cold boot to workaround ErrataID:i2331
    Please resend tiboot3.bin in case of UART/DFU boot
    resetting ...
    
    U-Boot SPL 2024.07 (May 14 2026 - 13:20:36 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    DEBUG: entered cdns3_bind
    DEBUG: raw dr_mode property = peripheral
    DEBUG : CASE Peripheral mode.
    DEBUG: binding driver cdns-usb3-peripheral
    DEBUG: bind ret = 0
    SPL initial stack usage: 13368 bytes
    Trying to boot from DFU
    Enter in cdns_ti_probe.
    Entered in cdns3_gadget_probe.
    DEBUG: entered cdns3_probe
    #############################################DOWNLOAD ... OK
    Ctrl+C to exit ...
    Authentication passed
    Authentication passed
    Loading Environment from MMC... MMC Device 0 not found
    *** Warning - No MMC card found, using default environment
    
    init_env from device 10 not supported!
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.11.0(release):v2.11
    NOTICE:  BL31: Built : 07:06:45, Apr 21 2026
    I/TC:
    I/TC: OP-TEE version: Unknown_4.3 (gcc version 13.3.0 (Buildroot 2024.11-dirty)) #1 Tue Apr 21 01:36:37 UTC 2026 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.07 (May 15 2026 - 16:26:59 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    Trying to boot from DFU
    DEBUG: entered run_dfu
    DEBUG: dfu_init_env_entities ret = 0
    DEBUG: before udc_device_get_by_index
    DEBUG: Inside the cdns_ti_probe.
    DEBUG: exit the cdns_ti_probe.
    DEBUG: after udc_device_get_by_index ret=0
    DEBUG: before g_dnl_register
    DEBUG: Entered g_dnl_register.
    DEBUG: Before usb_composite_register.
    DEBUG: Inside usb_composite_register.
    DEBUG: Before usb_gadget_register_driver.
    DEBUG: Inside the usb_gadget_probe_driver.
    DEBUG: Before udc_bind_to_driver.
    DEBUG: Inside udc_bind_to_driver.
    DEBUG: Before usb_gadget_udc_set_speed.
    DEBUG: After usb_gadget_udc_set_speed.
    DEBUG: Before bind.
    DEBUG: After bind ret=0.
    DEBUG: Before usb_gadget_udc_start.
    DEBUG: entered udc_start
    DEBUG: after gadget_to_cdns3_device
    DEBUG: after spin_lock
    DEBUG: after gadget_driver assign
    DEBUG: after set_speed
    DEBUG: Before set_fst.
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 0)
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 1)
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 2)
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 3)
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 4)
    dfuwa: fail in recovery, resetting CPU...
    resetting ...


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

    尊敬的 Manish:

    似乎只有第一个修补程序正常工作、但第二个修补程序没有正常工作。

    您能否将 U-Boot 从 SDK v11.2 或 v12.0 移植到定制电路板、然后应用两个补丁以查看 DFU 问题是否会得到解决。 如上所述、您仍然必须更新 U-Boot 或 SYSFW 版本。

    我在上面链接的 e2e 主题中、根据 SDK v11.2 U-Boot 为客户调试并实施了两个补丁。 这些补丁未使用 U-Boot 2024.x 进行测试

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

    尊敬的 Bin Liu:

    按照建议、我们更新了 SYSFW 和 U-Boot 版本。 我们目前正在使用 TI fork U-Boot、其位置是:

    git.ti.com/.../ti-u-boot.git

    其中:

    • U-Boot 版本:v2026.01
    • SYSFW 版本:v10.00.08

    但是、我们仍然面临相同的 DFU 复位问题。 请参阅以下日志:

    U-Boot SPL 2026.01 (May 18 2026 - 10:15:49 +0530)
    Resetting on cold boot to workaround ErrataID:i2331
    Please resend tiboot3.bin in case of UART/DFU boot
    resetting ...
    
    U-Boot SPL 2026.01 (May 18 2026 - 10:15:49 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    SPL initial stack usage: 13504 bytes
    Trying to boot from DFU
    #############################################DOWNLOAD ... OK
    Ctrl+C to exit ...
    Authentication passed
    Authentication passed
    Loading Environment from nowhere... OK
    init_env from device 10 not supported!
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.11.0(release):v2.11
    NOTICE:  BL31: Built : 07:06:45, Apr 21 2026
    I/TC: 
    I/TC: OP-TEE version: Unknown_4.3 (gcc version 13.3.0 (Buildroot 2024.11-dirty)) #1 Tue Apr 21 01:36:37 UTC 2026 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2026.01 (May 18 2026 - 10:48:50 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    Trying to boot from DFU
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 0)
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 1)
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 2)
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 3)
    dfuwa: fail to set fast access, recovering...
    dfuwa: restarting usb (retry 4)
    dfuwa: fail in recovery, resetting CPU...
    resetting ...
    

    以下是我们在 U-Boot 中所做的与 USB Type-C 相关的 DTS 更改:

    &usbss0 {
        bootph-all;
        ti,vbus-divider;
    };
    
    &usb0 {
        bootph-all;
        dr_mode = "peripheral";
        maximum-speed = "high-speed";
        pinctrl-names = "default";
        pinctrl-0 = <...>;
        //phys = <...>;
        //phy-names = "cdns3,usb3-phy";
    };

    此外、我们的定制电路板没有 EEPROM。 为了绕过中的 EEPROM 检测 evm.c、我们应用了以下修改:

    /*int do_board_detect(void)
    {
        return do_board_detect_am6();
    }*/
    
    // patch to bypass EEPROM
    int do_board_detect(void)
    {
        struct ti_am6_eeprom *ep = TI_AM6_EEPROM_DATA;
    
        /* Manually populate the data structure to bypass I2C read */
        strlcpy(ep->name, "AM64-SKEVM", sizeof(ep->name));
        strlcpy(ep->version, "E1", sizeof(ep->version));
        ep->header = TI_EEPROM_HEADER_MAGIC;
    
        return 0;
    }

    Could you please confirm whether bypassing the EEPROM in this manner could be related to the DFU reset issue?
    此外、我们应用了前面讨论的两个 Cadence USB 权变措施补丁
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Manish:

    EEPROM 旁路不应与 USB 问题有关。 我们稍后可以再回来讨论。

    &usbss0 { 全部引导; TI、VBUS 分频器 ;};

    请将“ti、bus2-only;“添加到此&usbss0 节点以查看此操作是否解决了问题。 &usbss0 节点应如下所示:

    &usbss0{
        全部引导;
        TI、VBUS 分压器;
        仅 TI、USB2;
    };

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

    尊敬的 Bin:

    ti,usb2-only; 属性添加到 &usbss0 节点后、DFU 问题可以在我们的定制电路板上得到解决。

    我们现在可以通过 DFU 成功刷写所有三个引导加载程序二进制文件:

    • tiboot3.bin

    • tispl.bin

    • u-boot.img

    更新了节点:

    &usbss0 {
            bootph-all;
            ti,vbus-divider;
            ti,usb2-only;
    };
    

    感谢您的建议。

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

    尊敬的 Manish:

    我很高兴这个问题得到解决。 感谢您的更新。