Skip to content

xhci_hcd driver broken in 5.10.39 #4376

@berndbenner

Description

@berndbenner

I have added a PCIe x1 Delock Controller with ASMEDIA Chips to the Raspberry PI CM4 ( 8 GB RAM )
I have enabled ahci and xhci driver in the kernel config.
I am using the newest Kernel 5.10.39

The ASMEDIA USB-Controller are working on prev. raspberrypi kernels 5.4 and 5.10
for example with kernel branch rpi-5.4.y

The ASM1062 Serial ATA Controller is working well, using the ahci driver
The ASM1042A USB-3 Controller will not work, using xhci_hcd driver.

USB Enumeration from xhci-driver will allways fail with errors like this:

Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 8 using xhci_hcd
Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 8 using xhci_hcd
Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 9 using xhci_hcd
Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 9 using xhci_hcd
Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 17:15:14 rasp-mh-cm4-001 kernel: usb usb2-port2: unable to enumerate USB device

Sometimes a kernel-oops like this is triggered:

Jun 04 16:56:17 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: ------------[ cut here ]------------
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: W
config-5.10.39-v7l.txt
ARNING: CPU: 0 PID: 1281 at kernel/dma/swiotlb.c:715 swiotlb_map+0x3bc/0x46c
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: xhci_hcd 0000:08:00.0: swiotlb addr 0x00000004184f3000+8 overflow (mask ffffffff, bus limit 5ffffffff).
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: Modules linked in: fuse sha256_generic cfg80211 rfkill 8021q garp stp llc rtc_pcf85063 regmap_i2c spidev sg i2c_mux_pinctrl i2c_mux raspberrypi_hwmon v3d gpu_sched dwc2 spi_bcm2835 roles i2c_bcm2835 bcm2835_codec(C) bcm2835_v4l2(C) bcm2835_isp(C) videobuf2_vmalloc v4l2_mem2mem bcm2835_mmal_vchiq(C) videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 videobuf2_common snd_bcm2835(C) videodev mc vc_sm_cma(C) vc4 cec drm_kms_helper drm drm_panel_orientation_quirks rpivid_mem snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd syscopyarea sysfillrect sysimgblt fb_sys_fops backlight uio_pdrv_genirq uio nvmem_rmem i2c_dev ip_tables x_tables ipv6
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: CPU: 0 PID: 1281 Comm: kworker/0:0 Tainted: G C O 5.10.39-v7l-bb-custom #3
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: Hardware name: BCM2711
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: Workqueue: usb_hub_wq hub_event
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: Backtrace:
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (dump_backtrace) from [] (show_stack+0x20/0x24)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r7:ffffffff r6:00000000 r5:60000013 r4:c12e6b3c
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (show_stack) from [] (dump_stack+0xcc/0xf8)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (dump_stack) from [] (__warn+0xfc/0x114)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:00000008 r9:00000009 r8:c02a63b8 r7:000002cb r6:00000009 r5:c02a63b8
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c0e37ed8 r3:c1205094
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (__warn) from [] (warn_slowpath_fmt+0xa4/0xd8)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r7:000002cb r6:c0e37ed8 r5:c1205048 r4:c0e37e94
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (warn_slowpath_fmt) from [] (swiotlb_map+0x3bc/0x46c)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r9:c20fa070 r8:c1205048 r7:00000000 r6:ffffffff r5:00000000 r4:ffffffff
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (swiotlb_map) from [] (dma_map_page_attrs+0x254/0x394)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:00000001 r9:00000008 r8:c20fa1e0 r7:00000000 r6:ffffffff r5:c1205048
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c20fa070
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (dma_map_page_attrs) from [] (usb_hcd_map_urb_for_dma+0x1e4/0x55c)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:c361ff0c r9:00000c00 r8:00000c00 r7:c20fa070 r6:c6b0df40 r5:c18d6000
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c361ff00
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (usb_hcd_map_urb_for_dma) from [] (xhci_map_urb_for_dma+0x38/0x78)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:c361ff0c r9:00000c00 r8:c2305800 r7:00000200 r6:c1205048 r5:c18d6000
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c361ff00
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (xhci_map_urb_for_dma) from [] (usb_hcd_submit_urb+0xd0/0x9c8)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (usb_hcd_submit_urb) from [] (usb_submit_urb+0x2f0/0x500)Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:c6b0df40 r9:c0c5eeb8 r8:00000c00 r7:00000200 r6:c59ce000 r5:00000000
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c361ff00
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (usb_submit_urb) from [] (usb_start_wait_urb+0x6c/0xf0)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:c6b0df40 r9:00001388 r8:c1953d18 r7:c1953cc8 r6:00000000 r5:c1205048
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c361ff00
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (usb_start_wait_urb) from [] (usb_control_msg+0xd4/0x12c)Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r9:00000006 r8:00000100 r7:00000000 r6:00000008 r5:c59ce000 r4:c1205048
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (usb_control_msg) from [] (usb_get_descriptor+0x88/0xd4)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:00000001 r9:80000080 r8:00000003 r7:c59ce000 r6:c6b0d300 r5:00000008
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:00000100
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (usb_get_descriptor) from [] (usb_get_device_descriptor+0x60/0x9c)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:c093abbc r9:00001388 r8:00000002 r7:00000000 r6:c59ce000 r5:c6b0d300
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:00000008
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (usb_get_device_descriptor) from [] (hub_port_init+0x4d0/0xc40)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r7:00000000 r6:00000002 r5:00000000 r4:c59ce000
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (hub_port_init) from [] (hub_event+0x848/0x12f8)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:00000000 r9:c2352b00 r8:c59ce000 r7:c2352fdc r6:c2305800 r5:c18d6000
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c18d601c
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (hub_event) from [] (process_one_work+0x250/0x5a0)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:00000000 r9:00000000 r8:00000000 r7:eff17800 r6:eff12680 r5:c5f06e80
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c2352b00
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (process_one_work) from [] (worker_thread+0x60/0x5c4)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:eff12680 r9:c1203d00 r8:eff12698 r7:00000008 r6:eff12680 r5:c5f06e94
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c5f06e80
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (worker_thread) from [] (kthread+0x170/0x174)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:c1a6fe74 r9:c5f06e80 r8:c023df4c r7:c1952000 r6:00000000 r5:c5e6cbc0
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c4093800
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: [] (kthread) from [] (ret_from_fork+0x14/0x28)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: Exception stack(0xc1953fb0 to 0xc1953ff8)
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: 3fa0: 00000000 00000000 00000000 00000000
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c02458b4
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: r4:c5e6cbc0
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: ---[ end trace ba6e5bac39b7d345 ]---
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
Jun 04 16:56:17 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 16:56:18 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
Jun 04 16:56:18 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 16:56:18 rasp-mh-cm4-001 kernel: usb usb2-port2: attempt power cycle
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb 2-2: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb 2-2: device descriptor read/8, error -11
Jun 04 16:56:19 rasp-mh-cm4-001 kernel: usb usb2-port2: unable to enumerate USB device

kernel log with rpi-kernel 5.4 on plugin the same USB-3 usb stick

usb 2-1: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
Jun 04 20:02:47 rasp-mh-cm4-001 kernel: usb 2-1: New USB device found, idVendor=090c, idProduct=1000, bcdDevice=11.00
Jun 04 20:02:47 rasp-mh-cm4-001 kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 04 20:02:47 rasp-mh-cm4-001 kernel: usb 2-1: Product: Flash Drive FIT
Jun 04 20:02:47 rasp-mh-cm4-001 kernel: usb 2-1: Manufacturer: Samsung
Jun 04 20:02:47 rasp-mh-cm4-001 kernel: usb 2-1: SerialNumber: 0373320110017800
Jun 04 20:02:47 rasp-mh-cm4-001 kernel: usb-storage 2-1:1.0: USB Mass Storage device detected
Jun 04 20:02:47 rasp-mh-cm4-001 kernel: usb-storage 2-1:1.0: Quirks match for vid 090c pid 1000: 400
Jun 04 20:02:47 rasp-mh-cm4-001 kernel: scsi host2: usb-storage 2-1:1.0
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: scsi 2:0:0:0: Direct-Access Samsung Flash Drive FIT 1100 PQ: 0 ANSI: 6
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: sd 2:0:0:0: Attached scsi generic sg1 type 0
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: sd 2:0:0:0: [sdb] 125313283 512-byte logical blocks: (64.2 GB/59.8 GiB)
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: sd 2:0:0:0: [sdb] Write Protect is off
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: sd 2:0:0:0: [sdb] Mode Sense: 43 00 00 00
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: sd 2:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: sdb: sdb1 sdb2
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: sd 2:0:0:0: [sdb] Attached SCSI removable disk
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: EXT4-fs (sdb1): recovery complete
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
Jun 04 20:02:48 rasp-mh-cm4-001 kernel: ext4 filesystem being mounted at /media/pi/usbboot supports timestamps until 2038 (0x7fffffff)
Jun 04 20:02:49 rasp-mh-cm4-001 kernel: EXT4-fs (sdb2): recovery complete
Jun 04 20:02:49 rasp-mh-cm4-001 kernel: EXT4-fs (sdb2): mounted filesystem with ordered data mode. Opts: (null)

config-5.10.39-v7l.txt
config-5.4.83-v7l.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions