[Guide] Using CH341A-based programmer to flash SPI EEPROM

Fernando sorry for the triple post.
Update: Success, i did manage to restore my advanced settings in bios of asrock z77 ext3 with i5 3570k. Pull out the bios chip, made a backup, erase and program with he latest available bios on asrock site. Everything is now in place and the i5 3570k is free again. Thank every one for the time and knowledge.

Hallo, Can i flash a Gigadevice 25Q 16MByte Chip with it for my Asus Z170 Board please?
I donĀ“t find a Gigadevice 25Q 16MB in the Chiplist ? Just any other 25Q. Any idea?

Hi, can someone please help me flashing a winbond 25q128fv1q 16mb bios for my z170 pro gaming ?
In the program tool i cannot detect the chip, using 1.18 and 1.30 here. Also tried 1.29. I am getting an access violation error.
If i press the program button, it just times out. Whats the take here ?
State is: Connected, so i assume the drivers are fine.

@edit: got it working now and the chip is detected. do i now flash the bios i saved from readout operation or do i use the original .cap file from ASUS ?

You have to edit your Asus bios with FD44Editor in order to import the UUID, MAC Address and Mobo S/N to the news bios file you want to flash on your chip.

Unfortunately i put the chip in the wrong part of the programmer (eeprom, not spi).
Everthying is working fine now. So when is the new UBU coming out, iĀ“d love to upgrade my network orom.

I bought this puppy: https://www.sofi-tech.com/English/Product/435179366.html and a test clip. It claims to support ICSP, wish me luck.

Iā€™ve always been stymied by serial/spi eeproms and never had enough money to buy a programmer. It was only $20 vs the $10 (or month long wait) for the really cheap ones that no one here has been able to work without removing chips.

EDIT by Fernando: Insecure HTTP link replaced by an HTTPS one (not sure, whether it works)

hi what did you do or what version did it work? As you said you canā€™t select the correct version.

I have also to flash the 25Q128FVPQ and the 25Q64FVIQ and my adapter does not fit :frowning:

If youā€™re looking for the latest software version (1.31 as of April 2017), and you want to support the author, you can buy it for 10 bucks. This will work with the ā€œprogrammer on a stickā€ CH341A USB programmers you can find on Amazon, eBay, etc.

- Send email to [email protected], telling him youā€™d like to buy his CH341A programmer software.
- Heā€™ll send you an email back with a Paypal link, warn you not to pirate his stuff, and ask for a yahoo.com address - apparently because gmail will not allow EXE files inside ZIP to be attached
- Once youā€™ve paid, heā€™ll send a ZIP file with a customized EXE inside (and drivers). The EXE has your name
- Run the EXE, send him an email with the username and hardware id it displays
- Heā€™ll send you an XML file. ā€œImportā€ that and you have a licensed, personalized copy. Future software updates are free.

Itā€™s a convoluted buying process. Still, it beats scrounging around for hacked copies, in my book.

Hi,


First of all, a very impressive guide.
I dare to add some observations:

1. When using the SOIC-Clip, it is wise, as already advertised, to remove all power (at least with my laptop it worked best)
2. The connection is a bit iffy, depending on how good and firm you placed the clip, erase speeds vary between 49s and 2 minutes.
3. I had the pins inverted, and was being greeted with ā€œUSB power surge detectedā€, if you encounter this, remove the clip immediately in order to avoid the port to be shut down. Invert and give it a try.
4. Judging by the erase speed, Iā€™m doing full program only by ā€œEraseā€, ā€œopen fileā€, write. Total flash time under 3 minutes. Maybe this is over optimization, but comes in handy if you are testing OROM/Microcode combinations.


Thanks to you all.
Regards CodeRookie

P.S.: If you donā€™t mind, please help me out here with my NVME problem

1 Like

@IngoPan

Donā€™t know if it is any help, but:

My Samsung BIOS update contained only 6MB UEFI capsule, chip is 8MB.
So I read the flashed BIOS, looked for the start of the capsule, it was exactly at offset 0x200000.

With Hxd I copied the contents of the capsule via Ctrl-B (paste overwrite instead of paste insert), and saved it as ā€œmodbios.binā€.
This binary got flashed via CH341A and it worked perfectly.


Greetings

1 Like

I have a nice working EZP2010 ISP Programmer with a "clothespin Test Clip" for In-System Programming. Manual of the programmer advises not to connect VCC pin (power line from usb via programmer). That leaves me with only two options:
1- To power the target system, in my case that being Satellite Receiver StarSat-2000HD Hyper or
2- To power the chip (W25Q64FV) externally.

I was quite impressed by the contributions from many experts in this thread. I look forward to kind guidance from any of these - THANKS!

Should I do the step 3-6 on a different PC, or itā€™s ok to do those steps on the BIOSchip-flashing PC while the BIOS chip is unplugged from the motherboard/plug into programmer?(the PC with corrupted ME region is still bootable)

EDIT by Fernando: Unneeded parts of the fully quoted post removed (to save space)

Question on Step 5: "Press Open and select the image you want to flash"

I want to use an Intel .BIO file to flash a bios downgrade. What tool do I use to convert Intelā€™s container file (.bio) into a .bin file that the CH341A programmer software can read properly?

Sunny

EDIT: This thread on ā€œHow to mod an Intel BIOSā€ answered my question. Explanations by Fernando and Plutomaniac on page 10 of that thread are very good. I ended up finding a .bin dump for my board model on the internet which had an old version of the bios firmware. I desoldered my defective bios chip, extracted my board specific data from it with a CH341A programmer and used that to modify the .bin file that I found. I burned the resulting bin file using the CH341A programmer and reinstalled it on my board. I then used the normal Intel Iflash tools to upgrade the bios to the newest version (using the Intel .bio files).

does someone has done this ? I see this offer on many sites.

thx

edit:

this:

If youā€™re looking for the latest software version (1.31 as of April 2017), and you want to support the author, you can buy it for 10 bucks. This will work with the ā€œprogrammer on a stickā€ CH341A USB programmers you can find on Amazon, eBay, etc.

- Send email to [email protected], telling him youā€™d like to buy his CH341A programmer software.
- Heā€™ll send you an email back with a Paypal link, warn you not to pirate his stuff, and ask for a yahoo.com address - apparently because gmail will not allow EXE files inside ZIP to be attached
- Once youā€™ve paid, heā€™ll send a ZIP file with a customized EXE inside (and drivers). The EXE has your name
- Run the EXE, send him an email with the username and hardware id it displays
- Heā€™ll send you an XML file. ā€œImportā€ that and you have a licensed, personalized copy. Future software updates are free.

Itā€™s a convoluted buying process. Still, it beats scrounging around for hacked copies, in my book.

Iā€™d like to introduce another programmer application (flashrom) and driver for Windows, which i personally prefer over the default software.
I created a simple CH341A WinUSB driver, signed it and bundled it with a driver installer.

Download flashrom_windows.zip

Instructions:
Extract the provided archive and execute Install.cmd, it will automatically install the CH341A WinUSB driver and open a command shell to access flashrom.
Enter flashrom in the command shell to probe for the device and connected flash chips:

flashrom

Calibrating delay loopā€¦ OK.
Found Winbond flash chip ā€œW25Q64.Wā€ (8192 kB, SPI) on ch341a_spi.
No operations were specified.


To read data from the flash chip:
flashrom -r backup.bin

Calibrating delay loopā€¦ OK.
Found Winbond flash chip ā€œW25Q64.Wā€ (8192 kB, SPI) on ch341a_spi.
Reading flashā€¦ done
.


To write data to the flash chip:
flashrom -w bios.bin

Calibrating delay loopā€¦ OK.
Found Winbond flash chip ā€œW25Q64.Wā€ (8192 kB, SPI) on ch341a_spi.
Reading old flash chip contentsā€¦ done.
Erasing and writing flash chipā€¦ Erase/write done.
Verifying flashā€¦ VERIFIED.


Changelog:
- Added CH341A patches from flashrom patchwork.
- Added support for FTDI and PICkit 2.
- Added timer and progress bar.
- Built from current staging branch.

Edit: Updated my previous post with the new flashrom windows binary.

Sometimes flashrom identifies several flash chip types, which need to be specified with the -c command:

flashrom

Calibrating delay loopā€¦ OK.
Found PMC flash chip "Pm25LV010" (128 kB, SPI) on ch341a_spi.
Found PMC flash chip "Pm25LV010A" (128 kB, SPI) on ch341a_spi.
Multiple flash chip definitions match the detected chip(s): "Pm25LV010", "Pm25LV010A"
Please specify which chip definition to use with the -c <chipname> option.
.


Read BIOS from a specified flash chip:
flashrom -c Pm25LV010 -r backup.bin

Calibrating delay loopā€¦ OK.
Found PMC flash chip "Pm25LV010" (128 kB, SPI) on ch341a_spi.
Reading flashā€¦ done.

3.3V Programmer CH341A
1.8V Adapter for the CH341A

Is there a way to patch the three files generated by Paul Kocialkowski that allow flashrom to read the ENE KB9012 EC chips to this Windows version?

@minarikka
Here is a compiled flashrom.exe with ENE KB9012 support built from git.code.paulk.fr

flashrom.rar (126 KB)