Hello, NXP experts
My imx8mpus custom board's xhci-hcd connect to a 4G LTE modem. After long time running, xhci-hci die.
Below is the log:
[ 10:09:18][591352.073776] modemd[729969]: AT+CSQ
[ 10:09:22][591355.524040] ModemManager[730393]: <warn> [modem0] port ttyUSB2 timed out 2 consecutive times
[ 10:09:23][591361.699100] ------------[ cut here ]------------
[ 10:09:23][591361.703821] NETDEV WATCHDOG: wwan (qmi_wwan): transmit queue 0 timed out
[ 10:09:23][591361.710679] WARNING: CPU: 0 PID: 940970 at net/sched/sch_generic.c:454 dev_watchdog+0x2f8/0x300
[ 10:09:23][591361.719461] Modules linked in: moal mlan crct10dif_ce
[ 10:09:23][591361.724605] CPU: 0 PID: 940970 Comm: diff Not tainted 5.4.70 #41
[ 10:09:23][591361.731650] Hardware name: NXP i.MX8MPlus EVK board (DT)
[ 10:09:23][591361.737048] pstate: 40000005 (nZcv daif -PAN -UAO)
[ 10:09:23][591361.741925] pc : dev_watchdog+0x2f8/0x300
[ 10:09:23][591361.746020] lr : dev_watchdog+0x2f8/0x300
[ 10:09:23][591361.750115] sp : ffff800010003db0
[ 10:09:23][591361.753514] x29: ffff800010003db0 x28: ffff00006b26cc80
[ 10:09:23][591361.758910] x27: 0000000000000004 x26: 0000000000000140
[ 10:09:23][591361.764307] x25: 00000000ffffffff x24: 0000000000000000
[ 10:09:23][591361.769705] x23: ffff00006fee641c x22: ffff00006fee6000
[ 10:09:23][591361.775103] x21: ffff00006fee6438 x20: ffff800011a06000
[ 10:09:23][591361.780500] x19: 0000000000000000 x18: 0000000000000010
[ 10:09:23][591361.785898] x17: 0000000000000000 x16: 0000000000000000
[ 10:09:23][591361.791295] x15: ffff00006bb1f488 x14: ffffffffffffffff
[ 10:09:23][591361.796693] x13: ffff800090003b07 x12: ffff800010003b10
[ 10:09:23][591361.802089] x11: ffff800011a27000 x10: ffff800011b2f478
[ 10:09:23][591361.807487] x9 : 0000000000000000 x8 : ffff800011b30000
[ 10:09:23][591361.812883] x7 : ffff8000107ad508 x6 : 0000000000000276
[ 10:09:23][591361.818279] x5 : 0000000000000000 x4 : ffff000077b63188
[ 10:09:23][591361.823678] x3 : ffff000077b69f20 x2 : ffff000077b63188
[ 10:09:23][591361.829076] x1 : 4b41b96fb004d900 x0 : 0000000000000000
[ 10:09:23][591361.834477] Call trace:
[ 10:09:23][591361.837011] dev_watchdog+0x2f8/0x300
[ 10:09:23][591361.840762] call_timer_fn.isra.0+0x20/0x78
[ 10:09:23][591361.845032] run_timer_softirq+0x1a0/0x408
[ 10:09:23][591361.849215] __do_softirq+0x120/0x25c
[ 10:09:23][591361.852964] irq_exit+0xb8/0xd8
[ 10:09:23][591361.856192] __handle_domain_irq+0x64/0xb8
[ 10:09:23][591361.860372] gic_handle_irq+0x5c/0x148
[ 10:09:23][591361.864206] el1_irq+0xb8/0x180
[ 10:09:23][591361.867435] __arch_copy_to_user+0x1d4/0x310
[ 10:09:23][591361.871792] copy_page_to_iter+0xe8/0x370
[ 10:09:23][591361.875889] generic_file_read_iter+0x468/0xb20
[ 10:09:23][591361.880507] ext4_file_read_iter+0x38/0x50
[ 10:09:23][591361.884691] new_sync_read+0xe4/0x170
[ 10:09:23][591361.888439] __vfs_read+0x2c/0x40
[ 10:09:23][591361.891839] vfs_read+0xc8/0x1a0
[ 10:09:23][591361.895151] ksys_read+0x68/0xf0
[ 10:09:23][591361.898466] __arm64_sys_read+0x18/0x20
[ 10:09:23][591361.902391] el0_svc_common.constprop.0+0x68/0x160
[ 10:09:23][591361.907266] el0_svc_handler+0x20/0x80
[ 10:09:23][591361.911102] el0_svc+0x8/0x208
[ 10:09:23][591361.914241] ---[ end trace e2ca427effd0eef5 ]---
[ 10:09:24][591362.467120] xhci-hcd xhci-hcd.1.auto: xHCI host not responding to stop endpoint command.
[ 10:09:24][591362.491310] xhci-hcd xhci-hcd.1.auto: Host halt failed, -110
[ 10:09:24][591362.497056] xhci-hcd xhci-hcd.1.auto: xHCI host controller not responding, assume dead
[ 10:09:24][591362.505079] xhci-hcd xhci-hcd.1.auto: HC died; cleaning up
[ 10:09:24][591362.512161] usb 3-1: USB disconnect, device number 5
Any suggestion?
Solved! Go to Solution.
I solved this problem by disable USB SS park mode.
In the Global User Control Register 1 (GUCTL1), set bit[17] to 1 to disable the SS bus park mode.
In kernel-5.10.35 set snps,parkmode-disable-ss-quirk in the dts will disable the usb ss park mode.
Documentation/devicetree/bindings/usb/dwc3.txt:
- snps,parkmode-disable-ss-quirk: when set, all SuperSpeed bus instances in
park mode are disabled.
I solved this problem by disable USB SS park mode.
In the Global User Control Register 1 (GUCTL1), set bit[17] to 1 to disable the SS bus park mode.
In kernel-5.10.35 set snps,parkmode-disable-ss-quirk in the dts will disable the usb ss park mode.
Documentation/devicetree/bindings/usb/dwc3.txt:
- snps,parkmode-disable-ss-quirk: when set, all SuperSpeed bus instances in
park mode are disabled.
I encountered the same problem on a 5G modem
Do you have any solutions?
kernel log:
[235683.891885] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to stop endpoint command.
[235683.900082] xhci-hcd xhci-hcd.2.auto: USBSTS:
[235683.912601] xhci-hcd xhci-hcd.2.auto: xHCI host controller not responding, assume dead
[235683.920669] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
[235683.926362] usb 4-1: USB disconnect, device number 2
[235683.931740] option1 ttyUSB3: usb_wwan_open: submit read urb 0 failed: -19
[235683.931793] cdc_ncm 4-1:1.0 usb0: unregister 'cdc_ncm' usb-xhci-hcd.2.auto-1, CDC NCM
[235683.938679] option1 ttyUSB3: usb_wwan_open: submit read urb 1 failed: -19
[235683.938688] option1 ttyUSB3: usb_wwan_open: submit read urb 2 failed: -19
[235683.960826] option1 ttyUSB3: usb_wwan_open: submit read urb 3 failed: -19
[235683.997190] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[235684.009333] option 4-1:1.2: device disconnected
[235684.016538] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[235684.026904] option 4-1:1.3: device disconnected
[235684.034565] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[235684.045222] option 4-1:1.4: device disconnected
[235684.052983] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[235684.063626] option 4-1:1.5: device disconnected
[235684.071316] option1 ttyUSB4: GSM modem (1-port) converter now disconnected from ttyUSB4
[235684.082022] option 4-1:1.6: device disconnected
Have you solved this problem yet?