On 22.11.22 09:45, Luca Ceresoli wrote:
Hello, I have set up Serial over USB gadget (ACM CDC) on a RK3308, which works fine most times but sporadically (10~20% of the times) does not work, failing to set up ttyACM0 on the host side. Target hardware: Rock Pi S (RK3308). Software used on target: Linux v6.1-rc6 (eb7081409f94a9a8608). Device tree: rk3308-rock-pi-s.dtb from mainline, unmodified. Relevant Kconfig options: CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PLATFORM=y CONFIG_USB_DWC2=y CONFIG_USB_DWC2_PERIPHERAL=y CONFIG_USB_DWC2_DEBUG=y CONFIG_USB_DWC2_TRACK_MISSED_SOFS=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DEBUG=y CONFIG_USB_GADGET_DEBUG_FILES=y CONFIG_USB_GADGET_DEBUG_FS=y CONFIG_USB_G_SERIAL=y CONFIG_USB_LIBCOMPOSITE=y CONFIG_USB_F_ACM=y CONFIG_USB_U_SERIAL=y CONFIG_USB_F_SERIAL=y CONFIG_USB_F_OBEX=y # CONFIG_USB_CONFIGFS is not set CONFIG_EXTCON=y CONFIG_PHY_ROCKCHIP_INNO_USB2=y CONFIG_PHY_ROCKCHIP_USB=y Connections: - USB-C to USB-C cable connecting PC and target for both USB gadget and target power - Ethernet cable - UART TX pin (GND not connected, adds booting troubles)
[ 0.598921] dwc2 ff400000.usb: gintsts=04008820 gintmsk=d88c3cc4 [ 0.601050] dwc2 ff400000.usb: dwc2_handle_usb_suspend_intr: DSTS=0x400003 [ 0.602415] dwc2 ff400000.usb: DSTS.Suspend Status=1 HWCFG4.Power Optimize=1 HWCFG4.Hibernation=0 [ 0.602431] dwc2 ff400000.usb: ignore suspend request before enumeration
Oddity
[ 0.602445] dwc2 ff400000.usb: dwc2_hsotg_irq: 04008020 00000000 (d88c3cc4) retry 8
I suspect a concurrency issue during initialization, but I don't know where to investigate further.
Try booting with "usbcore.autosuspend=-1" on the host side. Regards Oliver