Hi, I’m the Toradex AI Assistant.
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
您好,感谢您提供详细的问题描述和排查信息。
根据您的描述,板卡在通过 UUU 烧录时进入 initramfs,但 /sys/class/udc 目录中没有 UDC 设备,且 dmesg 显示 dwc3 38100000.usb: Configuration mismatch, dr mode forced to gadget 以及 deferred probe pending。这说明 USB 设备控制器(UDC)相关的驱动或者依赖没有正确启动,导致 fastboot gadget 无法初始化。
针对您的情况,以下是排查和可能的解决方向:
1. 内核配置(Kconfig)确认
您提到已打开了 gadget 相关的内核配置,但请确保以下项全部开启并在 initramfs kernel 就绪:
- CONFIG_USB_DWC3(Enable DWC3 core support)
- CONFIG_USB_DWC3_GADGET(DWC3 Gadget only mode)
- CONFIG_USB_GADGET
- CONFIG_USB_FASTBOOT
- CONFIG_USB_CONFIGFS
- CONFIG_USB_GADGET_VBUS_DRAW
- CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS
- 以及与 i.MX8MP 板级相关的 PHY 支持(如 CONFIG_PHY_FSL_IMX8MQ_USB 等)
建议通过 zcat /proc/config.gz | grep DWC3 等命令在线确认上述配置项。
2. 设备树相关
- 确认设备树节点(如
usb@38100000)的 dr_mode 设置为"peripheral",而不是"host"或"otg"。 - 检查 DWC3 节点下是否有完整定义了 required properties,包括:
- dr_mode = “peripheral”;
- status = “okay”;
参考 Toradex Verdin iMX8MP 相关设备树文档 进行对照。
3. 依赖模块和芯片供电
- dmesg 中 deferred probe 通常是因为依赖的器件还未 ready(如 PHY 还没初始化)。
- 检查对应 USB PHY 的节点(如
usbphy@382f0040)是否正确 enable 且 status = “okay”。 - 可尝试在 u-boot 或 kernel log 中排查上游 probe 为什么被 defer,是否因为缺乏 regulator/power-domain/clock 等依赖。
4. OTG/ID Pin/Type-C 配置
- 如果是 Type-C OTG 口,确认相关的 extcon 或 connector 驱动加载了吗。
- 检查是否需要 uboot/early initramfs 里做 usb mode force(一部分板卡可能要求强制配置为 device/peripheral)。
5. initramfs 文件/驱动是否完整
- 建议使用来自 Toradex 官方 Yocto 的 initramfs(即
fsl-image-mfgtool-initramfs-verdin-imx8mp.cpio.gz.u-boot),确保所有 gadget 相关驱动集成进入镜像。 - 检查 /lib/modules/$(uname -r)/ 下模块是否都存在。
- 如果有模块被裁剪/未编进内核,需要补齐。
6. 测试命令
烧录流程准备好后,UUC/fastboot 服务应自动运行、或者您创建 gadget 后可以手动执行 fastboot 二进制看死否监听上 USB(lsusb 可以验证 host 侧是否发现 gadget 设备)。
ls /sys/class/udc应显示如38100000.usb。- 可以执行
lsmod或dmesg | grep usb,观测相关驱动是否装载。
典型补充/改动举例
设备树片段示例:
usb@38100000 {
dr_mode = "peripheral";
status = "okay";
};
usbphynop@382f0040 {
status = "okay";
};
参考文档
总结
请重点排查设备树相关(dr_mode/peripheral)、USB PHY 依赖、电源与时钟、内核模块配置(DWC3 及 Gadget 相关),修正 deferred probe 问题后应可看到 UDC 并正常进入 fastboot 模式。如还有具体的 dmesg 日志、设备树片段等,也欢迎补充一起分析。
如仍无法解决,欢迎补充更多信息。希望上述方案对您的调试有帮助!
Best regards, Toradex AI Assistant.