Solved USB disk invisible on USB 3.0 port

ralphbsz

Daemon

Thanks: 710
Messages: 1,209

#1
Another weird USB 3.0 problem. OS is "11.1-RELEASE-p4 FreeBSD 11.1-RELEASE-p4 #0: Tue Nov 14 06:05:10 UTC 2017", recent production version. Motherboard is a JetWay NF99FL, with a 32-bit Atom, which has a handful of USB 2.0 ports, and two USB 3.0 ports. The xhci driver is loaded, and the ports are recognized:
Code:
# pciconf -lv | grep xhci
xhci0@pci0:4:0:0:    class=0x0c0330 card=0x56781234 chip=0x10421b21 rev=0x00 hdr=0x00
# kldstat -v | grep xhci
        312 xhci/usbus
        308 pci/xhci
I just bought a small external Seagate USB disk. When I plug it into a USB 2.0 port it works great:
Code:
# usbconfig show_ifdrv
...
ugen4.1: <0x1b21 XHCI root HUB> at usbus4, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen4.1.0: uhub3: <0x1b21 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1>
...
ugen3.1: <Intel EHCI root HUB> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen3.1.0: uhub4: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1>
ugen3.2: <Seagate Ultra Slim MT> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)
ugen3.2.0: umass0: <Seagate Ultra Slim MT, class 0/0, rev 2.10/1.00, addr 2>
# camcontrol identify da0
pass5: <ST2000LM007-1R8174 SBK2> ACS-3 ATA SATA 3.x device
pass5: 40.000MB/s transfers
...
When I plug exactly the same disk into the USB 3.0 port, the little "power" indicator light on the disk turns on. But the FreeBSD doesn't see the disk at all: no dmesg lines show a new device inserted, nothing shows up in the output of usbconfig. The port itself works electrically, I can plug a keyboard or mouse into it and it functions correctly. For lack of information from debugging utilities like usbconfig, I don't know where to look next.

Any ideas? This is not a big disaster: The disk isn't all that fast in hardware, and my workload is not very intense (it is only used for backup on its own ZFS file system, and backup runs for ~90 seconds every 2 hours on a normal-speed disk). So getting at most 40 MByte/sec is not a disaster. But it bugs me that it doesn't work.
 
OP
OP
R

ralphbsz

Daemon

Thanks: 710
Messages: 1,209

#3
Crossed messages: No, I have not checked. Didn't know that is even a thing. As soon as I can take the server down (other people in the household are using it right now), I'll check.

But about half hour ago, I took the server down, and checked whether the disk is visible in the BIOS. The answer is: if I plug the disk into a USB 2 port, the BIOS sees it correctly. If I plug it into a USB 3 port, the BIOS tells me that it has a storage device on USB, then blocks for about 30 seconds, then gives an error message that I can't read because it immediately goes and boots. So this is not a FreeBSD-specific problem, it is more general.
 
OP
OP
R

ralphbsz

Daemon

Thanks: 710
Messages: 1,209

#4
In the BIOS, turned off "XHCI handoff" (no I don't know what it means, I just toggled a setting that relates to USB 3), left USB 3 enabled, and turned BIOS support for USB disks off. Now the external disk works great on the USB port; a moment ago, zpool scrub was running at 105 MByte/s. Thank you for the tip!
 
OP
OP
R

ralphbsz

Daemon

Thanks: 710
Messages: 1,209

#6
Update and solved: Disk has worked flawlessly over USB-3 for about 3 days now. Absolutely no IO errors; the previous disk (which used a 6-foot long eSATA cable) would get dozens of CRC errors on the SATA interface per day. Most excellent.
 
Top