====== VIA VL805 chipset ====== VL805 ‧ VL806 - Super Speed USB 3.0 Host Controller [[https://www.via-labs.com/product_show.php?id=48]] * VL805 - 4 port USB3 controller * VL806 - 2 port USB3 controller ====== Description ====== The VIA Lab’s VL805 (4-Port)/VL806 (2-Port) is a USB 3.0 Host controller, which enables a PCI Express equipped platform to interface with USB Super-Speed (5 Gbps), High-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps) devices. The root hub consists of four downstream facing ports enabling the simultaneous operation of multiple peripheral devices. The VIA Lab’s VL805/VL806 complies with the Universal Serial Bus 3.0 Specification and Intel's eXtensible Host Controller Interface (xHCI), and is fully backward compatible with USB 2.0 and 1.1 specifications, ensuring seamless connectivity of legacy USB devices. VL805/VL806 have a PCI Express 2.0 x1 interface backwards compatible with PCI Express 1.0 and is perfectly suited for both PC Host and Add-In Card applications. Compliant to Universal Serial Bus 3.0 Specification Revision 1.0 Compliant to Universal Serial Bus 2.0 Specification Compliant to eXtensible Host Controller Interface (xHCI) Specification Revision 1.0 Supports Legacy USB Function Compliant with PCI Express Base Specification 2.0 In-house USB PHY employs advanced CMOS process to reduce power consumption Supports Battery Charging Specification Firmware upgrade options include integrated firmware in system BIOS Software - Initial Driver Support for Windows 7, Vista, and XP - USB Attached SCSI Protocol (UASP) - Supports various Linux kernels - Supports Windows 10, Windows 8 inbox driver 04:00.0 USB controller: VIA Technologies, Inc. VL805 USB 3.0 Host Controller (rev 01) (prog-if 30 [XHCI]) Subsystem: VIA Technologies, Inc. VL805 USB 3.0 Host Controller Flags: bus master, fast devsel, latency 0, IRQ 29 Memory at fe900000 (64-bit, non-prefetchable) [size=4K] Capabilities: Kernel driver in use: xhci_hcd Kernel modules: xhci_pci ===== Issues ===== [[https://bugzilla.redhat.com/show_bug.cgi?id=1409098|Bug 1409098 - Enabling AMD IOMMU blocks function of Via VL805 USB 3.0 chipset [NEEDINFO]]] [[https://bugzilla.redhat.com/show_bug.cgi?id=1376455|Bug 1376455 - AMD IOMMU blocks function of Via VL805 USB 3.0 chipset ]] GRUB_CMDLINE_LINUX_DEFAULT="iommu=soft" update-grub ====== Firmware ====== Versions: * 00013400 (Old firmware on my PCI-X card) {{ :hw:via805:hc150.bin.gz |}} * 00013701 (Raspberry4) * 00013703 (Windows Driver) {{ :hw:via805:via-usb3-vl805vl806-fw-update-tool.rar |}} * 00013704 (Windows Driver) {{ :hw:via805:via_vl805_806_fw_013704_www.station-drivers.com_.zip |}} * 000137ab Firmwares are available in Raspberry Pi 4 eeprom repo: * https://github.com/raspberrypi/rpi-eeprom * https://www.geeks3d.com/20191101/raspberry-pi-4-new-firmware-reduces-power-consumption-and-boards-temperatures/ ====== Update ====== I decided to use Windows XP VirtualBox based guest system and use [[https://docs.oracle.com/cd/E97728_01/F12469/html/pcipassthrough.html|PCI pass through]] feature VBoxManage modifyvm "VM name" --pciattach 04:00.0@01:05.0 {{:hw:vl805_before.png?direct&200|}} Targeted VID = 1106 Targeted PID = 3483 ISP file size: 24246(DW) FW file = 013704.bin VL805/VL806 is found. Bus=1, Dev=5, Func=0 , Chip Verision=B1 Cannot Recognize SPI Flash, Try Default Flash Command To Download... spi erase pageSizeDW = 64 wait while programming... Update ISP Success. [[https://ubuntuforums.org/archive/index.php/t-2390208.html]] After some research I was able to successfully upgrade after editing the SpiFlash.ini file with the parameters of the 25P10VP chip on my board. I added the following: 21=25P10VP [25P10VP] FlashID = 202011 ReadID = 9F WriteEnable = 06 WriteStatus = 01 ChipErase = C7 ReadData = 03 ReadStatus = 05 PageProgram = 02 ClockRate = 32 PageSize = 10 Targeted VID = 1106 Targeted PID = 3483 ISP file size: 24246(DW) FW file = 013704.bin VL805/VL806 is found. Bus=1, Dev=5, Func=0 , Chip Verision=B1 Match gFlashType No. = 21, FlashType = 25P10VP spi erase pageSizeDW = 64 wait while programming... Update ISP Success. To detach the same device, use: VBoxManage modifyvm "VM name" --pcidetach 04:00.0