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:
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/ (Some firmware files can be found here)