raspberrypi / linux

Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/
Other
11.02k stars 4.95k forks source link

CM4: dwc2_hc_chhltd_intr_dma with SIMCOM Modem #5431

Open michael1413 opened 1 year ago

michael1413 commented 1 year ago

Describe the bug

I think the dwc2 driver has a timing problem with the SIMCOM_SIM7600G-H modem.

I see in the log the message "dwc2_hc_chhltd_intr_dma" and the modem can not be initialized.

If the driver compiled with

then the modem works.

I have tested it with Kernel 5.15. and 6.1.21

Steps to reproduce the behaviour

Is likely to be difficult.

I use a custom hardware like the CM4 development board. Linux system created with buildroot. Modem SIM7600G-H

Device (s)

Raspberry Pi CM4

System

Linux from scratch created with buildroot rpi-firmware-3f20b832b27cd730deb6419b570f31a98167eef6 Linux version 6.1.21-v7l (arm-buildroot-linux-gnueabihf-gcc.br_real (Buildroot 2023.02-168-ga45f2af7fa-dirty) 12.2.0, GNU ld (GNU Binutils) 2.39) #1 SMP PREEMPT Thu Apr 13 11:21:08 CEST 2023

Logs

lsusb

Bus 001 Device 004: ID 1e0e:9001 Qualcomm / Option SimTech, Incorporated Bus 001 Device 002: ID 0424:2513 Microchip Technology, Inc. (formerly SMSC) 2.0 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dmesg

usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01 [ 2391.636786] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2391.636808] usb usb1: Product: DWC OTG Controller [ 2391.636825] usb usb1: Manufacturer: Linux 6.1.21-v7l dwc2_hsotg [ 2391.636842] usb usb1: SerialNumber: fe980000.usb [ 2391.637807] hub 1-0:1.0: USB hub found [ 2391.637907] hub 1-0:1.0: 1 port detected [ 2391.981071] usb 1-1: new high-speed USB device number 2 using dwc2 [ 2392.251412] usb 1-1: New USB device found, idVendor=0424, idProduct=2513, bcdDevice= b.b3 [ 2392.251443] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 2392.252296] hub 1-1:1.0: USB hub found [ 2392.253911] hub 1-1:1.0: 3 ports detected [ 2392.591069] usb 1-1.1: new full-speed USB device number 3 using dwc2 [ 2392.791070] usb 1-1.1: new high-speed USB device number 4 using dwc2 [ 2392.944564] usb 1-1.1: New USB device found, idVendor=1e0e, idProduct=9001, bcdDevice= 3.18 [ 2392.944590] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2392.944609] usb 1-1.1: Product: SimTech, Incorporated [ 2392.944625] usb 1-1.1: Manufacturer: SimTech, Incorporated [ 2392.944639] usb 1-1.1: SerialNumber: 0123456789ABCDEF [ 2392.947384] option 1-1.1:1.0: GSM modem (1-port) converter detected [ 2392.947952] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0 [ 2392.948515] option 1-1.1:1.1: GSM modem (1-port) converter detected [ 2392.948950] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1 [ 2392.949543] option 1-1.1:1.2: GSM modem (1-port) converter detected [ 2392.949938] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB2 [ 2392.950561] option 1-1.1:1.3: GSM modem (1-port) converter detected [ 2392.950976] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB3 [ 2392.951640] option 1-1.1:1.4: GSM modem (1-port) converter detected [ 2392.952009] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB4 [ 2392.953312] qmi_wwan 1-1.1:1.5: cdc-wdm0: USB WDM device [ 2392.954760] qmi_wwan 1-1.1:1.5 wwan0: register 'qmi_wwan' at usb-fe980000.usb-1.1, WWAN/QMI device, c6:74:88:20:23:a0 [ 2396.216683] dwc2 fe980000.usb: dwc2_hc_chhltd_intr_dma: Channel 6 - ChHltd set, but reason is unknown [ 2396.216706] dwc2 fe980000.usb: hcint 0x00000002, intsts 0x04000001

Additional context

No response

dasdgw commented 7 months ago

Hi,

we are also using a cm4 on a custom board together with an SIM7600G-H. And we also noticed 'dwc2 fe980000.usb: hcint 0x00000002, intsts 0x04000001' in dmesg. And sometimes the modem seemed to disappear.

So for the second issue I worked around by using an active usb hub. But the first one reappeared until I switched from dwc2 to xhci usb controller. But I need to test this more.

To switch from dwc2 to xhci I added

otg_mode=1

and commented the line

# dtoverlay=dwc2,dr_mode=host

in config.txt

6.6.2 Kernel with preempt_rt patches.