Do _any_ USB 3.0 cards actually work?

Daniel O'Connor doconnor at gsoft.com.au
Sun May 25 03:06:38 UTC 2014


On 25 May 2014, at 11:34, Ronald F. Guilmette <rfg at tristatelogic.com> wrote:
>> I have 2 USB3 cards, one works and one doesn't, unfortunately I haven't
>> been able to determine why as yet.
> 
> What is the brand and model number of the one that works?
> 
> What is the brand and model number of the one that doesn't?
> 
> It would be helpful to know in both cases.

They're both generic OEM ones unfortunately so the amount of useful information on them is pretty small.

They show up as..

xhci0 at pci0:3:0:0:       class=0x0c0330 card=0x34321106 chip=0x34321106 rev=0x03 hdr=0x00
xhci1 at pci0:5:0:0:	class=0x0c0330 card=0x70521b6f chip=0x70521b6f rev=0x00 hdr=0x00


xhci0: <XHCI (generic) USB 3.0 controller> mem 0xfbeff000-0xfbefffff irq 17 at device 0.0 on pci3
xhci0: 32 byte context size.
usbus1 on xhci0

xhci1: <XHCI (generic) USB 3.0 controller> mem 0xfbcf8000-0xfbcfffff irq 17 at device 0.0 on pci5
xhci1: 64 byte context size.
usbus2 on xhci1

xhci0 works, xhci1 doesn't.

I'll take pictures of them on Monday.

> Also, for the one that "works", are you able to connect a device to that,
> disconnect it and then reconnect it again and have it work after that?
> (I had trouble with this in the past with my other 3.0 card, even when
> only using external 2.0 devices, if I am recalling correctly.)

Yes, that works for me.

>> This isn't a helpful thing to say when you're using a volunteer project.
> 
> Sorry.  Having invested in two different USB 3.0 PCIe cards and a couple
> of external 3.0 enclosures... all of which I had some hope would work,
> by now, on FreeBSD... and all of which *do* in fact work entirely well
> on Linux, I do hope that perhaps my level of frustration is understandable.
> 
> There are about a thousand or so different ethernet chipsets, so I can
> well and truly understand why this or that ethernet controller isn't
> supported yet.  But how many different USB chipsets are there?  Maybe
> like ten, total, including both 3.0 and 2.0?  And aren't all of these
> different USB chipsets *supposed* to present one "standard" programatic
> interface (to the driver) anyway?

Sure they are, but lots of corners are cut - none of the manufacturers test on FreeBSD, you'd be lucky if they tested on Linux. The upshot is that if it works on Windows then it is considered fine.

That pushes the burden onto FreeBSD developers to work out what the differences are and work around them. You can also bet most hardware manufacturers aren't going to help either.

You'll note that on the page you posted it says you must install the special VIA driver for the card to work - that seems to be a tacit admission that the hardware doesn't behave as it should hence the standard driver doesn't work.

> Anyway, ignoring the investment in MONEY I've already made... for naught,

Luckily USB3 PCI cards are pretty cheap.

FWIW this is almost exactly the situation USB2 was in - there were many chipsets which did not work very well at the start so for high performance applications like SDR (eg using Ettus USRPs) you had to be very choosy about which ones to use otherwise it wouldn't work.

>  /pub/FreeBSD/snapshots/amd64/amd64/10.0-STABLE
> 
> on one of the FreeBSD mirrors, and I haven't the vaguest idea what to do
> with that stuff in order to get it all installed onto an empty drive.
> 
> If you or someone else tells me how to do that, then I will be happy to
> do so and then see if either of these 3.0 cards I have will work with
> that, and if not I'll try to help debug the problem(s).

You want an ISO from
http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/11.0/
or
http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/10.0/

although to be honest I don't believe the USB stack is substantially different between stable and head so there's probably not much point.

You could try gathering some debugging using usbdump and sysctl hw.usb.uhub.debug=15
(although deciphering it requires knowledge of how USB works and how the stack is written..)

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C






-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-usb/attachments/20140525/14406384/attachment.sig>


More information about the freebsd-usb mailing list