I needed to backup original firmware of my favourite Chinese wireless router but I didn’t want to spend much time with hacking the embedded Linux. So I have ordered this cheap USB serial EEPROM programmer on ebay. You can easily find the original utility & driver for Windows on the Internet but the chip manufacturer doesn’t provide software for Linux.
After examining the board I found out the chip is CH341A (datasheet) so I googled for some linux software and I’ve found 2 opensource drivers:
The later comes from the concept of the former one and is more recent so I chose that one. After compiling and connecting my chip, I was able to read info about my flash.
Unfortunately, when I tried to read memory contents I was only able to get first few bytes of my memory, probably because the chip was detected incorrectly. So I have forked the original github repo and added option to manually set memory length. After setting the length manually, I was able to download complete data from my flash.