Can't connect USB3 drive

I can’t connect an USB3 drive to Turris Omnia. This is on Turris 3.11.4 (kernel 4.4.178-7bc33afbb1b35f5830b2b1b42c9cd8a0-0). There’s a bunch of errors in dmesg:

[  166.693732] usb 5-1: new SuperSpeed USB device number 2 using xhci-hcd
[  166.715611] usb-storage 5-1:1.0: USB Mass Storage device detected
[  166.715859] scsi host5: usb-storage 5-1:1.0
[  167.714513] scsi 5:0:0:0: Direct-Access     Samsung  D3 Station       0202 PQ: 0 ANSI: 6
[  167.715858] sd 5:0:0:0: [sdc] Spinning up disk...
[  173.223731] ..
[  174.354049] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  175.403647] .ready
[  175.403921] sd 5:0:0:0: [sdc] 3907029167 512-byte logical blocks: (2.00 TB/1.82 TiB)
[  175.404436] sd 5:0:0:0: [sdc] Write Protect is off
[  175.404443] sd 5:0:0:0: [sdc] Mode Sense: 2b 00 10 08
[  175.404951] sd 5:0:0:0: [sdc] Write cache: enabled, read cache: enabled, supports DPO and FUA
[  175.523334]  sdc: sdc1
[  175.525567] sd 5:0:0:0: [sdc] Attached SCSI disk
[  175.643837] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  175.943711] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  176.133674] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  176.303616] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  176.603608] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  176.773615] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  176.973697] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  177.183632] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  177.363588] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  177.563548] usb 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[  177.584345] usb 5-1: device firmware changed
[  177.713463] sd 5:0:0:0: [sdc] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=0x00
[  177.713473] sd 5:0:0:0: [sdc] tag#0 CDB: opcode=0x28 28 00 74 56 f1 78 00 00 08 00
[  177.713479] blk_update_request: I/O error, dev sdc, sector 1951854968
[  177.813458] sd 5:0:0:0: [sdc] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=0x00
[  177.813469] sd 5:0:0:0: [sdc] tag#0 CDB: opcode=0x28 28 00 74 56 fb 10 00 00 f0 00
[  177.813474] blk_update_request: I/O error, dev sdc, sector 1951857424
[  177.819964] JBD2: Failed to read block at offset 155234
[  177.913447] sd 5:0:0:0: [sdc] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=0x00
[  177.913459] sd 5:0:0:0: [sdc] tag#0 CDB: opcode=0x28 28 00 74 56 fc 00 00 00 10 00
[  177.913464] blk_update_request: I/O error, dev sdc, sector 1951857664
[  178.003419] usb 5-1: USB disconnect, device number 2
[  178.013462] sd 5:0:0:0: [sdc] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x01 driverbyte=0x00
[  178.013472] sd 5:0:0:0: [sdc] tag#0 CDB: opcode=0x35 35 00 00 00 00 00 00 00 00 00
[  178.013481] blk_update_request: I/O error, dev sdc, sector 0
[  178.019161] JBD2: recovery failed
[  178.019169] EXT4-fs (sdc1): error loading journal
[  178.025762] sd 5:0:0:0: [sdc] Synchronizing SCSI cache
[  178.026284] sd 5:0:0:0: [sdc] Synchronize Cache(10) failed: Result: hostbyte=0x01 driverbyte=0x00
[  178.343487] usb 5-1: new SuperSpeed USB device number 3 using xhci-hcd
[  178.366278] usb-storage 5-1:1.0: USB Mass Storage device detected
[  178.366558] scsi host6: usb-storage 5-1:1.0
[  178.366859] usb usb5-port1: config error
[  179.364064] scsi 6:0:0:0: Direct-Access     Samsung  D3 Station       0202 PQ: 0 ANSI: 6
[  179.364885] sd 6:0:0:0: [sdc] 3907029167 512-byte logical blocks: (2.00 TB/1.82 TiB)
[  179.365399] sd 6:0:0:0: [sdc] Write Protect is off
[  179.365406] sd 6:0:0:0: [sdc] Mode Sense: 2b 00 10 08
[  179.365914] sd 6:0:0:0: [sdc] Write cache: enabled, read cache: enabled, supports DPO and FUA
[  179.503518] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  179.544177]  sdc: sdc1
[  179.546282] sd 6:0:0:0: [sdc] Attached SCSI disk
[  179.673319] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  179.843393] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  180.193368] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  180.363272] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  180.523245] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  180.793336] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  180.973283] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  181.203191] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  181.423180] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  181.583358] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  181.753211] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  181.953123] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  182.123160] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  182.303108] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  182.463088] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  182.643103] usb 5-1: reset SuperSpeed USB device number 3 using xhci-hcd
[  182.663933] usb 5-1: unable to get BOS descriptor set
[  182.669004] usb 5-1: device firmware changed
[  182.693069] usb 5-1: USB disconnect, device number 3
[  182.713043] sd 6:0:0:0: [sdc] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x01 driverbyte=0x00
[  182.713053] sd 6:0:0:0: [sdc] tag#0 CDB: opcode=0x28 28 00 74 56 db 68 00 00 f0 00
[  182.713059] blk_update_request: I/O error, dev sdc, sector 1951849320
[  182.719583] JBD2: Failed to read block at offset 154558
[  182.724838] sd 6:0:0:0: [sdc] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x01 driverbyte=0x00
[  182.724842] sd 6:0:0:0: [sdc] tag#0 CDB: opcode=0x28 28 00 74 56 dc 58 00 00 08 00
[  182.724845] blk_update_request: I/O error, dev sdc, sector 1951849560
[  182.731492] blk_update_request: I/O error, dev sdc, sector 0
[  182.737182] JBD2: recovery failed
[  182.737189] EXT4-fs (sdc1): error loading journal
[  182.743558] sd 6:0:0:0: [sdc] Synchronizing SCSI cache
[  182.744093] sd 6:0:0:0: [sdc] Synchronize Cache(10) failed: Result: hostbyte=0x01 driverbyte=0x00
[  197.280381] xhci-hcd f10f8000.usb3: Stopped the command ring failed, maybe the host is dead
[  197.288761] xhci-hcd f10f8000.usb3: Abort command ring failed
[  197.295136] xhci-hcd f10f8000.usb3: HC died; cleaning up
[  197.300481] xhci-hcd f10f8000.usb3: Error while assigning device slot ID
[  197.307372] xhci-hcd f10f8000.usb3: Max number of devices this xHCI host supports is 32.
[  197.315522] usb usb5-port1: couldn't allocate usb_device

I’ve tried both the front and the back side port, and a bunch of different cables to no avail. This same drive works flawlessly in all other machines I’ve got here. A typical successful connection (on an Ubuntu deesktop) goes more or less like:

[May24 13:22] usb 2-4: new SuperSpeed Gen 1 USB device number 6 using xhci_hcd
[  +0.020001] usb 2-4: New USB device found, idVendor=04e8, idProduct=6123, bcdDevice= 2.02
[  +0.000004] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0.000002] usb 2-4: Product: D3 Station
[  +0.000003] usb 2-4: Manufacturer: Samsung 
[  +0.000001] usb 2-4: SerialNumber: 00000000011E0A49
[  +0.002993] usb-storage 2-4:1.0: USB Mass Storage device detected
[  +0.000198] scsi host10: usb-storage 2-4:1.0
[  +1.004898] scsi 10:0:0:0: Direct-Access     Samsung  D3 Station       0202 PQ: 0 ANSI: 6
[  +0.000389] sd 10:0:0:0: Attached scsi generic sg9 type 0
[  +0.000749] sd 10:0:0:0: [sdi] Spinning up disk...
[  +5.470085] ...ready
[  +2.048329] sd 10:0:0:0: [sdi] 3907029167 512-byte logical blocks: (2.00 TB/1.82 TiB)
[  +0.000513] sd 10:0:0:0: [sdi] Write Protect is off
[  +0.000002] sd 10:0:0:0: [sdi] Mode Sense: 2b 00 10 08
[  +0.000515] sd 10:0:0:0: [sdi] Write cache: enabled, read cache: enabled, supports DPO and FUA
[  +0.019833]  sdi: sdi1
[  +0.001893] sd 10:0:0:0: [sdi] Attached SCSI disk
[  +3.978161] EXT4-fs (sdi1): recovery complete
[  +0.000345] EXT4-fs (sdi1): mounted filesystem with ordered data mode. Opts: (null)

I had the same issue today. External USB3 discs in SW Raid failed. After some time I’ve found the same message about max xHCI hosts reached. Could be a bug? It seems like host was not released after reset.

root@turris:/etc/init.d# cat /var/log/messages |grep -i xhci
2019-08-10 08:31:44 info kernel[]: [2504351.471888] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:31:46 info kernel[]: [2504354.131741] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:31:51 info kernel[]: [2504359.321396] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:31:54 info kernel[]: [2504361.961262] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:31:57 info kernel[]: [2504364.611086] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:31:59 info kernel[]: [2504367.330890] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:32:12 info kernel[]: [2504380.050082] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:32:43 info kernel[]: [2504410.868128] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:32:46 info kernel[]: [2504413.517952] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:32:48 info kernel[]: [2504416.177834] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:32:51 info kernel[]: [2504418.827637] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:32:54 info kernel[]: [2504421.477455] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:32:56 info kernel[]: [2504424.127282] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:32:59 info kernel[]: [2504426.767136] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:33:02 info kernel[]: [2504429.407024] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:33:12 info kernel[]: [2504439.596296] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:33:15 info kernel[]: [2504442.746111] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:33:18 info kernel[]: [2504445.395946] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:33:20 info kernel[]: [2504448.045773] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:33:23 info kernel[]: [2504450.705620] usb 3-1: reset SuperSpeed USB device number 2 using xhci-hcd
2019-08-10 08:33:25 err kernel[]: [2504453.355429] xhci-hcd f10f0000.usb3: ERROR: unexpected setup address command completion code 0x11.
2019-08-10 08:33:26 err kernel[]: [2504453.565379] xhci-hcd f10f0000.usb3: ERROR: unexpected setup address command completion code 0x11.
2019-08-10 08:33:26 err kernel[]: [2504454.195375] xhci-hcd f10f0000.usb3: ERROR: unexpected setup address command completion code 0x11.
2019-08-10 08:33:27 err kernel[]: [2504454.405340] xhci-hcd f10f0000.usb3: ERROR: unexpected setup address command completion code 0x11.
2019-08-10 08:33:27 err kernel[]: [2504455.035324] xhci-hcd f10f0000.usb3: ERROR: unexpected setup address command completion code 0x11.
2019-08-10 08:33:27 err kernel[]: [2504455.245292] xhci-hcd f10f0000.usb3: ERROR: unexpected setup address command completion code 0x11.
2019-08-10 08:33:28 err kernel[]: [2504455.875271] xhci-hcd f10f0000.usb3: ERROR: unexpected setup address command completion code 0x11.
2019-08-10 08:33:28 err kernel[]: [2504456.085225] xhci-hcd f10f0000.usb3: ERROR: unexpected setup address command completion code 0x11.
2019-08-10 08:33:42 err kernel[]: [2504469.485363] xhci-hcd f10f0000.usb3: Stopped the command ring failed, maybe the host is dead
2019-08-10 08:33:42 err kernel[]: [2504469.493916] xhci-hcd f10f0000.usb3: Abort command ring failed
2019-08-10 08:33:42 err kernel[]: [2504469.500916] xhci-hcd f10f0000.usb3: HC died; cleaning up
2019-08-10 08:33:42 err kernel[]: [2504469.511582] xhci-hcd f10f0000.usb3: Error while assigning device slot ID
2019-08-10 08:33:42 err kernel[]: [2504469.519541] xhci-hcd f10f0000.usb3: Max number of devices this xHCI host supports is 32.

I’ve solved it by reloading of all xhci modules. Discs were connected (with different device names - sdd/sde instead of sdb/sdc) and works again.

root@turris:/etc/init.d# lsmod |grep xhci
xhci_hcd               85728  2 xhci_plat_hcd
xhci_pci                2836  0 
xhci_plat_hcd           4605  0 
root@turris:/etc/init.d#