Page 1 of 3
#1 [GUIDE] Flash BIOS with CH341A programmer by junjoo 17.12.2018 17:26

UNDER CONSTRUCTION



Special thanks to Lost_N_BIOS for your help.


PART 1 (CH341A details)

This guide is based on the winbond 25Q64 bios chip.



CH341A programmer:


If you need an external 3.3v adapter you can visit this thread or this post


PINs details:








1.8V Adapter:






SOP8 Socket details 8(for new chips):






If you use the SOP8 socket,push on the socket border and place your bios chip according with the SOP8 socket pins details.





PIN 1 on the BIOS chip:









If you receive this error(s) with the CH341A programmer connected to bios chip:




This error(s) is caused by the bad connection of the clip or by the wrong software version.

Try the following steps:
Exit form C341A software.
Disconnect ch341a programmer from USB.
Disconnect the test clip from the bios chip.
Connect the test clip to bios chip.
Connect ch341a programmer to USB.
Run C341A software.
OR
Please try another software version.

#2 RE: [GUIDE] Flash BIOS with CH341A programmer by junjoo 17.12.2018 17:27

UNDER CONSTRUCTION


PART 2

INSTALL DRIVER, READ, VERIFY, SAVE BACKUP:

Download here the CH341A tools (Thanks to Lost_N_BIOS)


Unzip the downloaded pack and install the ch341a drivers (run CH341PAR.EXE)




Remove CMOS battery from your motherboard.
Connect the test clip to bios chip.
Connect ch341a programmer to USB.
Run CH341A_c.exe from CH341A programm v1.29 folder.







Go to "Auto" and uncheck "Erase" and "Blank check" options:



Press "Read button" and wait until the process is finished:







Now press "Verify" and wait until the process is finished:









Attention, before continuing with the PART 3, please check the content of the backup file.


You can compare the backup file with the original bios file from manufacturer site, using one hex editor software.


The contents of the files is not the same but it is very similar.


Zitat


Lost_N_BIOS
Run read, then verify, once it says "Chip/Buffer match" then that is verified, click save and then open that file in hex editor and make sure it's valid BIOS and not all FF's.

If it is all FF's, that's verified invalid blank and you need to use another software version or CHIP ID and try again until you get verified and valid backup).



Zitat

Lost_N_BIOS
Then install driver in above package. Then open software of your choosing to try first, I already try newest version first. Hit detect and if it detects your chip by ID OK, then select that one. Sometimes you might need to choose less than full ID, or different than ID too, like BIOS ends in FV sometimes BV works better, but you'll figure that out later if it comes to that. Once you've done that, hit read and when it's done hit verify. If it verified good, then you hit save BIOS. Verify after reading it should tell you chip and buffer or memory match, then that is possibly a good verified file (not always). Open that file in hex editor and make sure it's not all FF"s. Then repeat that a time or two and compare those two verified files, if they're always good files and match then probably OK. Save this BIOS somewhere safe as backup. Make sure it opens properly and looks correct in any BIOS editing tools you are familiar with too, then you'll know it's OK.




Backup file examples (OK and wrong):







#3 RE: [GUIDE] Flash BIOS with CH341A programmer by junjoo 17.12.2018 17:29

UNDER CONSTRUCTION




PART 3

ERASE AND FLASH BIOS



After checking and saving your backup press the "Erase" button and wait until the process is finished:






Now press the "Blank" button and wait until the process is finished:




Attention!
If the next window appear, when you press the blank button:




Zitat

Lost_N_BIOS
Chip Main Memory Not Null = this means you erased (Should be all FF) and then ran blank check and it found not all FF's (Some other data still) so erase not complete. Also will say that if you do not erase, and just run blank check when you know there is data there.




Possible solution:

Please Erase chip again and press Blank check again OR use another software version.

If it does not work, you can try this (you can use a heat shrink tube):







If the "Chip Main Memory are blank" message appear, you can continue with the next step. Press "Open" button and find your new bios file:







After the new bios file is opened press "Auto" button and wait until the process is finished:











PART 3.1

Programming new chips:


If you have new chips,first see the "SOP8 Socket details" (on the part 1 from this guide) and continue with the following steps:

Run CH341A software, set the bios chip type, press “DETECT” (or simply press the "DETECT" button), now press the“BLANK” button and wait until the process is finished:




If the “Chip Main Memory are not null” appear, press the“ERASE” button and wait until the process is finished. Now press the“BLANK” button and wait until the process is finished.




Press “Open” button and open your “*.bin” file:


Go to “Auto” button and leave checked only the “Write” and “Verify “ options:


Now press “Auto” button and wait until the process is finished:


#4 RE: [GUIDE] Flash BIOS with CH341A programmer by Prasanth 12.10.2019 18:41

Hi, I am new to this forum. Thank you so much for the detailed info and It is very helpful.

Can you please clear my doubts.

1) I would like to flash my Intel mobo chip. I have only the ".bio" file (955 KB) not the ".bin" file. Can I Use this ".bio" file to flash?
( My mobo is very oldDG35EC, please see the attached image of the chip)

2) Did the device and software support the chip in the image?

#5 RE: [GUIDE] Flash BIOS with CH341A programmer by Lost_N_BIOS 12.10.2019 20:45

avatar

@Prasanth - I replied to you over here - [GUIDE] The Beginners Guide to Using a CH341A SPI Programmer/Flasher (With Pictures!) (7)

#6 RE: [GUIDE] Flash BIOS with CH341A programmer by Lost_N_BIOS 01.01.2020 10:34

avatar

@junjoo - Thanks for fixing images!!

Hope you have a great New Year!!

#7 RE: [GUIDE] Flash BIOS with CH341A programmer by mikolaj612 01.01.2020 11:12

Guys, for god sake.
Why are you using this stupid chinesse app for CH341A programmer? Besides that most of us is using cracked and illegal version of this app (which is somehow broken, especially later versions), even paid (10USD) isn't particullary better.

For bios programming I will recommend using AsProgrammer 1.41 which is free and good enough for most task.
CH341A Programmer (chinesse) won't let me program GPU bios chip (Winbond 1.8V) because there is nothing similar in his database (Q80 prefix), but there is no such issue with AsProgrammer which detects chip right away and program it in a matter of seconds.
So I assume it would be better to guide new persons to use somewhat better and free alternative.

#8 RE: [GUIDE] Flash BIOS with CH341A programmer by macnb 31.01.2020 03:09

Hi guys, Just joined the forum after hanging around for a while and learning from this great guide. Thanks @junjoo and @Lost_N_BIOS.

I'm trying to solve a problem with my old motherboard (Z77X-UP5) which decided to go into a power-on boot loop.
The motherboard has 2-digit LED display and also two LED's to show which BIOS is in play (Main or Backup). There's a switch to select Main or Backup BIOS.

On power up the LED display pauses with code "15" and then at code "32", then the bios LED switches from Main to Backup and auto restarts.
The restart is now with Backup BIOS and does the same...15..32...switch to Main BIOS...auto restart forever.
Once I did see a the code "db" which apparently means BIOS flash failed. I assume that the Backup flash was automatically being flashed to Main which failed (???).
So my assumption now is both BIOS's are bad.

Few weeks ago a had updated the main BIOS to to modded BIOS that has NVME UEFI drivers. This BIOS worked great by booting from the NVMe SSD.

May be that BIOS did not flash right.

So, I followed the guide here. Bought a CH341A programmer with a Clip cable. Installed the drivers for windows (I'm on WIN10) and a separate laptop.

I have disconnected everything (PSU, drives, CMOS battery, GPU, etc) on the motherboard (except the CPU as it's delidded with liquid thermal paste).

But I just cannot get the CH341A to detect either BIOS chips.
The BIOS chips are MX25L6406E :



I have tried position the Clip very carefully making sure the it is sitting over all 8 pins of the BIOS chip.
If I use CH341a_c.exe (v1.29) it will not detect the chip and the green RUN LED on the CH341 board is never active.
v 1.34 also could not detect the BIOS chips:



If I use v1.18, it will not detect the chip either but that version lets me click the "READ" button and proceeds to the BIOS (the RUN LED is is green) BUT it reads 8MB of Zero's.

So....I switched to another PC...running Linux and installed FLASHROM command line app.
It too cannot detect the chip...except once it did manage to read something. The output of the command was:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 

macnb@macnb-eOS:~$ sudo flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
flashrom v0.9.9-r1954 on Linux 5.3.0-28-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
 
flashrom was built with libpci 3.3.1, GCC 5.3.1 20160424, little endian
Command line (7 args): flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
Calibrating delay loop... OS timer resolution is 1 usecs, 1262M loops per second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 993 us, 10000 myus = 9969 us, 4 myus = 4 us, OK.
Initializing ch341a_spi programmer
Device revision is 3.0.4
The following protocols are supported: SPI.
Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$ sudo flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
flashrom v0.9.9-r1954 on Linux 5.3.0-28-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
 
flashrom was built with libpci 3.3.1, GCC 5.3.1 20160424, little endian
Command line (7 args): flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
Calibrating delay loop... OS timer resolution is 1 usecs, 1262M loops per second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 1030 us, 10000 myus = 10010 us, 4 myus = 4 us, OK.
Initializing ch341a_spi programmer
Device revision is 3.0.4
The following protocols are supported: SPI.
Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017
Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) on ch341a_spi.
Chip status register is 0x00.
Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set
Chip status register: Bit 6 is not set
Chip status register: Block Protect 3 (BP3) is not set
Chip status register: Block Protect 2 (BP2) is not set
Chip status register: Block Protect 1 (BP1) is not set
Chip status register: Block Protect 0 (BP0) is not set
Chip status register: Write Enable Latch (WEL) is not set
Chip status register: Write In Progress (WIP/BUSY) is not set
This chip may contain one-time programmable memory. flashrom cannot read
and may never be able to write it, hence it may not be able to completely
clone the contents of this chip (see man page for details).
Reading flash... done.
macnb@macnb-eOS:~$
 



But If I open the BIOS file it read with UEFITool, it is only partial BIOS...the tool says the UEFI modules are missing (GBe region is there and shows my LAN MAC address).

I did try the CH341A programmer on a PCIe USB3.0 adding card - it has a Pm25LD512 flash chip and FLASHROM on Windows manage to read it but not CH341A.EXE (as it does not have that chip in it's database).

So the question is, is my new CH341A USB Programmer faulty or my motherboard BIOS chips dead ?

What can I try ?

UPDATE:

Nevermind. I solved my problem. If anyone is interested then see this post.

#9 RE: [GUIDE] Flash BIOS with CH341A programmer by stovorsen 22.04.2020 00:55

Nice guide thanks.

#10 RE: [GUIDE] Flash BIOS with CH341A programmer by Lost_N_BIOS 01.06.2020 10:08

avatar

@macnb - Try software 1.30 or ASProgrammer 1.41 (hit unlock/unprotect lock icon first, then read, verify, save)
1.30 is included in this package - http://s000.tinyupload.com/index.php?fil...213094641136166
ASProgrammer is here - https://github.com/nofeletru/UsbAsp-flash/releases/
Although, sounds like you are not getting a good connection, or you need to connect PSU cables to the board if not already (or remove them if so, sometimes you need them connected, sometimes they need to be removed)

Ahh, I see you got it, thanks for posting your solution too! Now, you can try with the above too, if you did not already (PSU cables connected)

Use USB 2.0, standard post, USB 3 may be OK but I wouldn't try relying on this via USB 3 add-on card.

#11 RE: [GUIDE] Flash BIOS with CH341A programmer by bios47 22.06.2020 05:27

hello, my laptop (acer aspire 4752z with je40hr motherboard code and windbond bios w25q32bvsig) just stuck in the acer logo and can't enter the bios. I think it's because the bios file is broken, so I tried to flash it with ch341a. But unfortunately the chip was not detected in ch341a 1.29 and in the Android app combo tool. stupidly even though not detected I still write the chip and the green LED is still on. after that the laptop is only the power LED that lights up without pressing the button and a few moments turn off then after 5 seconds it lights up again. now the laptop condition doesn't turn on at all without power led and led charge.

my question is, why can't my ch341a detect the chip, is it due to a 3.3v problem? I saw someone modify ch341a to produce 3.3v. do i have to modify my ch341a too? if so, like this link [GUIDE] The Beginners Guide to Using a CH341A SPI Programmer/Flasher (With Pictures!) (10) or this one https://www.eevblog.com/forum/repair/ch3...er-supply-fix/?

#12 RE: [GUIDE] Flash BIOS with CH341A programmer by tonimonton 25.08.2020 14:03

Zitat von macnb im Beitrag #8
Hi guys, Just joined the forum after hanging around for a while and learning from this great guide. Thanks @junjoo and @Lost_N_BIOS.

I'm trying to solve a problem with my old motherboard (Z77X-UP5) which decided to go into a power-on boot loop.
The motherboard has 2-digit LED display and also two LED's to show which BIOS is in play (Main or Backup). There's a switch to select Main or Backup BIOS.

On power up the LED display pauses with code "15" and then at code "32", then the bios LED switches from Main to Backup and auto restarts.
The restart is now with Backup BIOS and does the same...15..32...switch to Main BIOS...auto restart forever.
Once I did see a the code "db" which apparently means BIOS flash failed. I assume that the Backup flash was automatically being flashed to Main which failed (???).
So my assumption now is both BIOS's are bad.

Few weeks ago a had updated the main BIOS to to modded BIOS that has NVME UEFI drivers. This BIOS worked great by booting from the NVMe SSD.

May be that BIOS did not flash right.

So, I followed the guide here. Bought a CH341A programmer with a Clip cable. Installed the drivers for windows (I'm on WIN10) and a separate laptop.

I have disconnected everything (PSU, drives, CMOS battery, GPU, etc) on the motherboard (except the CPU as it's delidded with liquid thermal paste).

But I just cannot get the CH341A to detect either BIOS chips.
The BIOS chips are MX25L6406E :



I have tried position the Clip very carefully making sure the it is sitting over all 8 pins of the BIOS chip.
If I use CH341a_c.exe (v1.29) it will not detect the chip and the green RUN LED on the CH341 board is never active.
v 1.34 also could not detect the BIOS chips:



If I use v1.18, it will not detect the chip either but that version lets me click the "READ" button and proceeds to the BIOS (the RUN LED is is green) BUT it reads 8MB of Zero's.

So....I switched to another PC...running Linux and installed FLASHROM command line app.
It too cannot detect the chip...except once it did manage to read something. The output of the command was:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 

macnb@macnb-eOS:~$ sudo flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
flashrom v0.9.9-r1954 on Linux 5.3.0-28-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
 
flashrom was built with libpci 3.3.1, GCC 5.3.1 20160424, little endian
Command line (7 args): flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
Calibrating delay loop... OS timer resolution is 1 usecs, 1262M loops per second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 993 us, 10000 myus = 9969 us, 4 myus = 4 us, OK.
Initializing ch341a_spi programmer
Device revision is 3.0.4
The following protocols are supported: SPI.
Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$ sudo flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
flashrom v0.9.9-r1954 on Linux 5.3.0-28-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
 
flashrom was built with libpci 3.3.1, GCC 5.3.1 20160424, little endian
Command line (7 args): flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
Calibrating delay loop... OS timer resolution is 1 usecs, 1262M loops per second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 1030 us, 10000 myus = 10010 us, 4 myus = 4 us, OK.
Initializing ch341a_spi programmer
Device revision is 3.0.4
The following protocols are supported: SPI.
Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017
Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) on ch341a_spi.
Chip status register is 0x00.
Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set
Chip status register: Bit 6 is not set
Chip status register: Block Protect 3 (BP3) is not set
Chip status register: Block Protect 2 (BP2) is not set
Chip status register: Block Protect 1 (BP1) is not set
Chip status register: Block Protect 0 (BP0) is not set
Chip status register: Write Enable Latch (WEL) is not set
Chip status register: Write In Progress (WIP/BUSY) is not set
This chip may contain one-time programmable memory. flashrom cannot read
and may never be able to write it, hence it may not be able to completely
clone the contents of this chip (see man page for details).
Reading flash... done.
macnb@macnb-eOS:~$
 



But If I open the BIOS file it read with UEFITool, it is only partial BIOS...the tool says the UEFI modules are missing (GBe region is there and shows my LAN MAC address).

I did try the CH341A programmer on a PCIe USB3.0 adding card - it has a Pm25LD512 flash chip and FLASHROM on Windows manage to read it but not CH341A.EXE (as it does not have that chip in it's database).

So the question is, is my new CH341A USB Programmer faulty or my motherboard BIOS chips dead ?

What can I try ?

UPDATE:

Nevermind. I solved my problem. If anyone is interested then see this post.




@macnb
I have the same problem and I have followed your thread with the solution. if I power the motherboard the result when reading the chip is FF. If I do it without power it, it is 00. In no case can I get it to read the chip. Can you think of a solution?

UPDATE
new version asprogrammer : [URL=AsProgrammer_v2.1.0.13: https://mega.nz/#!VMR0QQhL!wU4fYzCqjtHfX...gjprG_8RnVJ7N3o]asprogrammer 2[/URL]

#13 RE: [GUIDE] Flash BIOS with CH341A programmer by Lost_N_BIOS 26.08.2020 08:27

avatar

@tonimonton @macnb posted a link to his solution, here is that link again (See post #143 if it does not automatically go there) - [GUIDE] The Beginners Guide to Using a CH341A SPI Programmer/Flasher (With Pictures!) (10)

#14 RE: [GUIDE] Flash BIOS with CH341A programmer by tonimonton 26.08.2020 16:32

Zitat von Lost_N_BIOS im Beitrag #13
@tonimonton @macnb posted a link to his solution, here is that link again (See post #143 if it does not automatically go there) - [GUIDE] The Beginners Guide to Using a CH341A SPI Programmer/Flasher (With Pictures!) (10)




that solution doesn't work for me. My chip W25Q128JVSQ

#15 RE: [GUIDE] Flash BIOS with CH341A programmer by Lost_N_BIOS 27.08.2020 10:07

avatar

@tonimonton - For W25Q128JV - Colibri ver. 1.0.1.62 confirmed read/write OK by members here in forum, it's included in package below
http://s000.tinyupload.com/index.php?fil...213094641136166

But, software or version is really not the issue here, even bad version that we know fails, would read data but it would just be corrupted (not blank FF or 00)
You either need to get clip perfect still, or you need to add/remove power from board. And, in the end, some rare cases you 100% must remove chip from board to read or write properly (but again, usually at failed corrupted read is still possible, usually)

You can also try fake powering on the board/PSU (short the PSU on pins via paper clip etc, AKA "Jump Start PSU"). DON'T really power on the board, just the PSU
Examples below, but in your case you need to do it from the back-side of the power cable connector
https://bit-tech.net/guides/modding/how-to-jump-a-psu/1/
https://www.silverstonetek.com/downloads...r%20Clip-EN.pdf

Also, what I linked above is NOT chip ID specific, you can use that on any board or any BIOS Chip ID

Xobor Forum Software von Xobor
Datenschutz