[SOLVED] D5-300C with Linux usb resets under heavy io
Posted: 16 Feb 2024, 21:21
TL;DR this device (D5-300C) bought Feb 2024 from Amazon needs decent power on the USB port it is attached to to work correctly. After attaching this device to a powered USBC 10gbps hub (this one specifically: https://www.amazon.co.uk/dp/B0C39RX3R9? ... ct_details) I have flawless operation without resets using Debian 12, UAS with no quirks, and smart pass through
Posting here so people can shortcut the journey I went on to solve this
Nice enclosure on the whole, except for one issue around powering the chipset that controls the USB to SATA bridge
It seems like the chipset itself is powered by the USB port its attached to, and only the hard disks are powered by the provided adapter.
Which means if you attach this to a Raspberry Pi or some mini pc (N100 etc) solution, you can get errors like the following under heavy io (particularly between disks in the enclosure)
or
or
or
Then after reading posts like these
https://forums.raspberrypi.com/viewtopic.php?t=245931
https://forums.raspberrypi.com/viewtopic.php?t=353854
I've put a power USB hub between my mini pc and the enclosure and I have had no resets since, with Debian 12 kernel 6.1 UAS and no quirks, with smart pass through. Everything working as expected
Hope this helps someone!
Posting here so people can shortcut the journey I went on to solve this
Nice enclosure on the whole, except for one issue around powering the chipset that controls the USB to SATA bridge
Code: Select all
ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
Which means if you attach this to a Raspberry Pi or some mini pc (N100 etc) solution, you can get errors like the following under heavy io (particularly between disks in the enclosure)
Code: Select all
kernel: scsi host0: uas_eh_device_reset_handler start
kernel: usb 2-2: reset SuperSpeed Gen 1 USB device number 2 using xhci_hcd
Code: Select all
[59450.518157] DMAR: DRHD: handling fault status reg 2
[59450.518182] DMAR: [DMA Read NO_PASID] Request device [00:14.0] fault addr 0xfffff000 [fault reason 0x06] PTE Read access is not set
[59481.301844] sd 3:0:0:0: [sdd] tag#6 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD OUT
[59481.301863] sd 3:0:0:0: [sdd] tag#6 CDB: Write(16) 8a 00 00 00 00 00 72 b8 6a 00 00 00 02 00 00 00
[59486.393672] xhci_hcd 0000:00:14.0: xHCI host not responding to stop endpoint command
[59486.393695] xhci_hcd 0000:00:14.0: xHCI host controller not responding, assume dead
[59486.393794] xhci_hcd 0000:00:14.0: HC died; cleaning up
[59486.393819] usb 3-3: USB disconnect, device number 2
[59486.393982] ------------[ cut here ]------------
[59486.393986] WARNING: CPU: 0 PID: 14 at drivers/iommu/dma-iommu.c:1038 iommu_dma_unmap_page+0x79/0x90
Code: Select all
[ 3443.131328] usb 2-1.1.3: cmd cmplt err -71
[ 3443.131392] usb 2-1.1.4: cmd cmplt err -71
[ 3443.190576] usb 2-1: USB disconnect, device number 2
[ 3443.190592] usb 2-1.1: USB disconnect, device number 3
[ 3443.190598] usb 2-1.1.1: USB disconnect, device number 4
[ 3443.190906] sd 2:0:0:1: [sdc] tag#18 uas_zap_pending 0 uas-tag 1 inflight: CMD
[ 3443.190917] sd 2:0:0:1: [sdc] tag#18 CDB: Read(16) 88 00 00 00 00 00 8d ea d4 00 00 00 02 00 00 00
[ 3443.190932] sd 2:0:0:1: [sdc] tag#0 uas_zap_pending 0 uas-tag 2 inflight: CMD
Code: Select all
[208212.269219] hub 2-1.1:1.0: hub_ext_port_status failed (err = -110)
[208213.293075] usb 2-1.1-port3: cannot reset (err = -110)
[208214.317073] usb 2-1.1-port3: cannot reset (err = -110)
[208215.341112] usb 2-1.1-port3: cannot reset (err = -110)
[208216.364903] usb 2-1.1-port3: cannot reset (err = -110)
[208217.389047] usb 2-1.1-port3: cannot reset (err = -110)
[208217.389084] usb 2-1.1-port3: Cannot enable. Maybe the USB cable is bad?
https://forums.raspberrypi.com/viewtopic.php?t=245931
https://forums.raspberrypi.com/viewtopic.php?t=353854
I've put a power USB hub between my mini pc and the enclosure and I have had no resets since, with Debian 12 kernel 6.1 UAS and no quirks, with smart pass through. Everything working as expected
Hope this helps someone!