VIA VL805 USB 3.0 Controller w/ AT25F1024 SPI flash firmware update

In an effort to increase the performance of a generic 4 port PCI-E USB 3.0 adapter I bought on eBay, I went down the rabbit hole of flashing newer firmware on it.

After several failed attempts at using the VIA flash utility (see links below), I realized I had to determine which SPI flash was on my card. In my case it ended up being a AT25F1024, a chip that wasn't supported by the default flash utility. After referencing the chip's datasheet, I realized that it was very similar to the AT25F512 which was supported. I modified the AT25F512 configuration slightly and successfully used it to flash the card.

All in all I spent way too much time trying to update this $5 USB card.

In order to flash this yourself, add the following to SpiFlash.ini to support the AT25F1024 SPI flash:

 1[FlashType]
 2...
 321=AT25F1024
 4
 5[AT25F1024]
 6FlashID = 202011
 7ReadID=15
 8WriteEnable=06
 9WriteStatus=01
10ChipErase=62
11ReadData=03
12ReadStatus=05
13PageProgram=02
14ClockRate=32
15PageSize=80

Flashing results:

 1Targeted VID = 1106
 2Targeted PID = 3483
 3
 4ISP file size: 24806(DW)
 5FW file = 0138a1.bin
 6VL805/VL806 is found.
 7Bus=b, Dev=0, Func=0, Chip Verision=B1
 8
 9Match gFlashType No. = 21, FlashType = AT25F1024
10spi erase
11pageSizeDW = 64
12wait while programming...
13Update ISP Success.

I have bundled these changes into the flash utility link below.

Useful links:

Flash Utility

https://niziak.spox.org/wiki/hw:via805

https://www.win-raid.com/t3932f25-VIA-VL-x-USB-PCI-E-Firmware-Utility-Code-error.html

https://github.com/raspberrypi/rpi-eeprom/tree/master/firmware/stable