VIA VL805 USB 3.0 PCIe adapter: Forget about Linux (?)

This post was written by eli on July 16, 2019
Posted Under: Linux,USB,Windows device drivers


Bought an Orico PCIe adapter for USB 3.0 for testing a USB device I’m developing (PVU3-5O2I). It has the VL805 chipset (1106/3483) which isn’t xHCI compliant. So it works only with the vendor’s own drivers for Windows, which you’ll have to struggle a bit to install.

Update: Be sure to read the comments at the bottom of this post. It appears like some people have had different experiences.

Attempt with Linux

That the device is detected by its class (xHCI), and not by its Vendor / Product IDs.

The following was found in the kernel log while booting:

[    0.227014] pci 0000:03:00.0: [1106:3483] type 00 class 0x0c0330
[    0.227042] pci 0000:03:00.0: reg 0x10: [mem 0xdf000000-0xdf000fff 64bit]
[    0.227104] pci 0000:03:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.227182] pci 0000:03:00.0: System wakeup disabled by ACPI


[    0.325254] pci 0000:03:00.0: xHCI HW did not halt within 16000 usec status = 0x14

and then

[    1.474178] xhci_hcd 0000:03:00.0: xHCI Host Controller
[    1.474421] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 3
[    1.505919] xhci_hcd 0000:03:00.0: Host not halted after 16000 microseconds.
[    1.506066] xhci_hcd 0000:03:00.0: can't setup: -110
[    1.506241] xhci_hcd 0000:03:00.0: USB bus 3 deregistered
[    1.506494] xhci_hcd 0000:03:00.0: init 0000:03:00.0 fail, -110
[    1.506640] xhci_hcd: probe of 0000:03:00.0 failed with error -110

The error message comes from xhci_halt() defined in drivers/usb/host/xhci.c, and doesn’t seem to indicate anything special, except that the hardware doesn’t behave as expected.

Update firmware, maybe?

The idea was to try updating the firmware on the card. Maybe that will help?

So I downloaded the driver from the manufacturer and the firmware fix tool from Station Drivers.

Ran the firmware fix tool before installing the driver on Windows. It went smooth. Then recycled power completely and booted Linux again (the instructions require that). Exactly the same error as above.

Went for Windows again, ran the firmware update tool, and this time read the firmware revision. It was indeed 013704, as it should be. So this doesn’t help.

Install driver on Windows 10

Checking in the Device Manager, the card was found as an xHCI controller, but with the “device cannot start (Code 10)”. In other words, Windows’ xHCI driver didn’t like it either.

Attempted installation of the driver. Failed with “Sorry, the install wizard can’t find the proper component for the current platform. Please press OK to terminate the install Wizard”. What it actually means is that the installation software (just downloaded from the hardware vendor) hasn’t heard about Windows 10, and could therefore not find an appropriate driver.

So I found the directory to which the files were extracted, somewhere under C:\Users\{myuser}\AppData\Local\Temp\is-VJVK5.tmp, and copied the USetup directory from there. Then selected xhcdrv.inf for driver installation. It’s intended for Windows 7, but it so happends, that generally drivers for Windows 7 and Windows 10 are the same. It’s the installer that was unnecessarily fussy.

After installing this driver, a “VIA USB eXtensible Host Controller” entry appeared in the USB devices list of the Device Manager, and it said it works properly.

After a reboot, there was “xHCI Root Hub 0″ under “Other Devices” of the Device Manager, with the error message “The drivers for this device are not installed”. It was available under the same USetup directory (ViaHub3.inf).

This added “VIA USB 2 Hub” and “VIA USB 3 Root Hub” to the list of USB devices, and believe it or not, the card started working.

Bottom line: It does work with its own very special drivers for Windows, with a very broken setup procedure.

Reader Comments

The VL 805-Q6 cards we purchased online from Walmart for 9.66 usd per card worked fine here in the lab on LINUX. They work on both Fedora 26 (4.16.11-100.fc26.x86_64) and Fedora 28 kernels. These kernels run on two distinct motherboards and BIOS makes and models. We keep meticulous records of our dnf installs, and none have the case insensitive strings “pci” or “usb” or “tty” in the package name, so Fedora has apparently installed with what is needed for some time. Upon machine start-up, one of the PCI or USB or TTY related services created three fresh /dev/ttyACM* devices for Arduino Mega 2560 USB port and Due programming and native USB ports. They are providing upload and data transfer limited in speed only by the embedded USB ports and the C and C++ running at real time priority on LINUX.

Written By Douglas Decicco on October 15th, 2019 @ 18:27

Tried again with Linux kernel 5.3.0 (most recent one as of today). Nothing changed.

Written By eli on November 14th, 2019 @ 09:18

Apparently rolling back the firmware 013600 work as per this post :

Written By Terry on December 5th, 2019 @ 00:12

The kubuntu 18.04 sees and writes to the LV805 chip embedded in my motherboard (even live disc)
Debian live disc (early last years distro) also reconised it

The website lists win10 driver support but I only have win7 & winxp on that motherboard

Written By Frank on March 10th, 2020 @ 07:07

Add a Comment

required, use real name
required, will not be published
optional, your blog address