Suggestion on getting Via VL805 PCIe USB card working

I picked up a cheap PCIe USB 3.0 controller card from Amazon, ELUTENG PCIE USB 3.0 Card, which appears to use a VIA VL805 controller.

I guess I should have done a little more research as it seems that this doesn’t work properly under Linux, it works fine in Windows. It seems that the card is recognized but no devices plugged into the USB ports do not connect to the system:

 -> % lspci | grep VIA
08:00.0 USB controller: VIA Technologies, Inc. VL805 USB 3.0 Host Controller (rev 01)
 -> %

Any suggestions on how to get this working? Or would it be best to return this and get another with better Linux support?

The easiest thing would be to return it, but you definitely could try to get it working. Might require some kernel hacking though.

Try the kernel boot parameter iommu=soft. You also may need to disable IOMMU in the bios of the motherboard. Source- https://bugzilla.redhat.com/show_bug.cgi?id=1376455

Also, there might be a firmware update available, depending on what the current version is. You may need to contact VIA for the files.

2 Likes

Thanks a lot, setting iommu=soft did the trick. I’ll also reach out to VIA and see if there’s a firmware update available!

1 Like

Sorry to nerco (but it’s not closed)… I’ve got one of these and comically/sadly I’ve been using it just fine now for years. Previously it was in an old machine running Debian, worked flawlessly. Now I’ve moved it to a newer machine running Arch and no dice.

Everything online basically says what you guys have said, iommu=soft, disable in BIOS, hibedy blibedy…no dice. I’ve also tried the unbind/bind bit and found a MINT forum post about a few different USB controllers stopped working after kernel 6.8, but not fix.

When the machine comes up, posts all the attached drives on the PCIe card are seen fine and listed in BIOS. However after I boot it’s a ghost town. Before the IOMMU changes the driver wouldn’t load and I’d just get error -110 spammed in dmesg. With the IOMMU a driver is loaded (xhci_hcd) but plugging something in results in nothing, like nothing…not a peep in dmesg/journal. I’ve tested with the current kernel 6.11 and LTS.

Any suggestions?

(fun tid-bit) As I mentioned any drives attached to the PCIe card are seen by the BIOS. I forgot I had a bootable flash drive plugged in while testing some stuff and rebooted. Sho-Nuf the machine booted off the flashdrive on the card…so VAT DE 'ELL!?

As a second tidbit the current machine is Ryzen where as the machine it was originally used in was an old Intel (before UEFI even). I’ve tested the card on a few of my XEON workstations with various VM BIOS options and under Arch and it works fine. I also went as far as to disable anything VM releated in BIOS on the Ryzen machine and set amd_iommu=off but nothing works and I can’t seem to flush out any issues.