====== 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