You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于iMX8M Plus的自定义板U-Boot无法识别USB棒的解决咨询

问题解决方案

是的,你需要在U-Boot中移植phy-fsl-imx8mq-usb.c驱动,这是解决USB控制器probe失败(错误码-110)的核心步骤,原因如下:

  • U-Boot的USB子系统依赖对应PHY驱动完成控制器初始化,而当前U-Boot源码缺失该PHY驱动,导致dwc3控制器无法完成probe
  • Linux用户空间能识别USB棒,正是因为内核自带了该PHY驱动;你移除内核驱动后识别失败的现象,也验证了该PHY驱动是USB功能正常工作的必要条件

具体实施步骤

  1. 移植PHY驱动到U-Boot

    • 将内核源码中的phy-fsl-imx8mq-usb.c复制到U-Boot的drivers/phy/fsl/目录下
    • 适配U-Boot头文件体系:替换内核特有头文件(如<linux/xxx.h>)为U-Boot对应头文件(如<asm/xxx.h>、<dm/device.h>、<phy/phy.h>等),重点对齐U-Boot设备模型(DM)的接口规范
    • 添加编译配置:
      • 在drivers/phy/fsl/Kconfig中新增配置项:
        config PHY_FSL_IMX8MQ_USB
            bool "FSL i.MX8MQ/8MP USB PHY support"
            depends on PHY && ARCH_IMX8MP
            help
              Enable support for the i.MX8MQ and i.MX8MP USB PHY controller.
        
      • 在drivers/phy/fsl/Makefile中添加编译规则:
        obj-$(CONFIG_PHY_FSL_IMX8MQ_USB) += phy-fsl-imx8mq-usb.o
        
  2. 调整设备树与U-Boot配置

    • 确保自定义板DTS中usb3_phy0/usb3_phy1节点的compatible属性为fsl,imx8mp-usb-phy,且驱动代码中匹配该字符串
    • 开启U-Boot必要配置:在.config中确保CONFIG_USB、CONFIG_USB_DWC3、CONFIG_USB_DWC3_IMX、CONFIG_PHY、CONFIG_PHY_FSL_IMX8MQ_USB均已启用
    • 检查PHY节点的时钟、电源域配置,确保U-Boot能正确初始化这些硬件资源
  3. 调试probe超时问题

    • 错误码-110对应ETIMEDOUT,通常是PHY初始化超时;可在驱动的probe函数中添加调试打印,定位具体失败步骤
    • 参考U-Boot中同系列PHY驱动(如phy-fsl-imx8m-usb.c)的实现逻辑,对齐初始化流程

内容的提问来源于stack exchange,提问作者void_brain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 22:33:24