1、软硬件平台
硬件:全志系列平台、T527
软件:Android 13
2、问题背景
系统上电启动,内核无限循环打印 udc-core 报错,具体信息如下:

3、原因分析
以上错误可能有两种情况:
(1)驱动问题
(2)未设置为从模式
(3)不支持同时使用虚拟网卡和虚拟串口
4、错误处理
(1)驱动
确认 UDC 驱动状态,查看内核配置中是否启用了 UDC 相关驱动
zcat /proc/config.gz | grep CONFIG_USB_DWC3

检查系统是否识别到 UDC 硬件
ls /sys/class/udc/
排查后驱动加载正常
(2)模式问题
出现该问题的原因是 Android 系统在启动 adbd 时尝试将 USB 设置为设备模式(device mode)以支持 ADB 功能,但当前 USB 口被设置为 OTG 模式(On-The-Go mode)。这种配置冲突导致系统无法成功绑定 USB Gadget,从而触发无限循环的报错。
解决方法:设置usb口为device模式,修改设备树文件,将 USB 口的模式从 OTG 改为设备模式
路径:
longan/device/config/chips/t527/configs/XXX/linux-5.15/board.dts

排查后模式正常。
注意:设置为设备模式后,该 USB 口将无法用于读取 U 盘中的文件,功能受限。
(3)网卡和虚拟串口共存问题
内核配置中禁用USB 网卡功能
cd longan
./build.sh menuconfig
取消勾选改选项:

重新编译测试后解决!!!