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

The 25X16 BIOS chip on my Intel DX58SO is soldered to the board and I would really like to avoid desoldering. I’ve purchased a (green PCB) CH341A programmer and test clip and confirmed everything is connected properly. I’ve also verified the CH341A programmer is working properly with a Winbond 25Q64 chip I’ve removed from a different (socketed) board.

I’ve had no success reading the 25X16 chip using the test clip while the board remains unpowered so it looks like the problem might be trying to power the chip while still soldered to the system board. Is it possible to power the board with the system power supply and attach the clip while doing this (or before powering) or could that damage something? If it is possible/safe to read the chip like this what would be the recommended way to approach this? Set the recovery mode jumper before powering on? Power on the system in a normal state but enter BIOS (F2) and just leave it sitting there? Something else?

And is it safe to write to the BIOS in this same way?

Thank you

@CodeRush
@noInk

As I suspected I believe the problem using the test clip is the CH341A programmer just doesn’t provide enough current to keep at 3.3V when the chip is soldered into the board (with all other the other components on the 3.3V bus). I measured the programmer across pins 4 & 8 with no chip installed, 3.31V. With a 25Q64 chip placed directly in the programmer socket, 3.26V. With the test clip on a MXIC MX25L1606E in an unpowered Lenovo M92p tiny, 2.5V. I powered up the system, with the test clip attached, measured again and got a stable 3.3V.

I still couldn’t get the software to detect the chip but I think that’s because the 1606E doesn’t appear in the v1.18 database. There’s a 3206E and 6406E but no 1606E.

Does anyone know if updated chip databases are available for the CH341A Programmer tool linked in @CodeRush first post of this thread? I tried downloading v1.29 but it was flagged as having a virus so I just took the database.dat file out of that archive and placed it with v1.18 EXE but v1.18 won’t launch with that database. I just want to see the programmer actually work, detecting and reading the chip (in-circuit) before I attach it to my DX58SO system.

BTW - I put a drive and RAM back into the M92p and powered it up after removing the test clip. System still works fine! So for anyone else’e knowledge there should be no problems using a test clip on a powered system.

Is there a german Guide for using a SPI Programmer because my english is too bad to understand special words or does anybody a link to a german guide

Thanks

Did you alreadt try a computer translator like:
https://www.bing.com/translator/
or
https://translate.google.nl/

Can CH341A be used to restore bios using ROM_RECOVERY header on HP (Memphis-S) motherboard?

IPM87-MP_rev1.04.png




I saw video for HP Envy bios recovery using the ROM_RECOVERY header, eg: https://www.youtube.com/watch?v=tbrDr88JH7Y
But the motherboard in video has 2 less pins

@gyrator

I have no clue about the CH341A. Pheraps it cannot read the chip, dunno. Have you detached the ATX connector and removed the battery?

Hi there.
I have a problem that I can not build a flashrom.exe file to support the ENE KB9012 chip. BusPirate has me and CH341 too. If someone had such a file please share it with me.
Thanks

When I open up my .CAP BIOS file in UEFItool and make my BIOS mods, it will always save it as a .ROM file.
Can I just rename the .ROM file to .BIN and then upload it to the SPI Programmer?

Is the concept below correct?

bin part.jpg


Yes, ROM and BIN files are the same.



does this need to be compiled by us?

Hello, Coderush
I checked both attached files for Windows with virustotal - they seem suspicious, especially second. The first may be safe

www.virustotal.com.pdf (219 KB)

So Asus came out with a new FW fix for ME on X299 Rampage ApexVI mobo. Did the update on bios #2, all went well. ME updated and Intel vulnerability fixed. My issue now is Bios 1 which has ME FW in failed state. FW reads all 0.0.00.00 in bios.

I have the CH341A programmer and SOIC clip to try “in place” erase and write bios. My plan is to boot up on bios #2, hook clip to bios 1 chip and try the procedure. My question I guess is this a good plan and have a chance of working?

Right now I can still boot up in bios 1, there is just a little hiccup in boot as she looks for ME FW I suspect and does not find it, then proceeds to boot right into windows.

So basically on a mobo with two bios chips can I bootup with one and fix the other. The board will be fully powered on obvioulsy, so hoping this won’t be an issue.

Thanks…



I would post your question to the ME Firmware Discussion thread: Intel Management Engine: Drivers, Firmware & System Tools and ask Plutomaniac because there might be a way to correct this issue via software. As far as having a motherboard with two bios chips most of the time you don’t need to use a SPI programmer. Usually these motherboards have a bios selection switch that right before your ready to flash you set the switch to the other bios and flash away just like the old hot flashing techniques. You could also try to Flashback it as that on my Asus board reset my ME for me. First talk to Plutomaniac. He knows ME best…

I have tried flashing bios many times. Bios flashes fine but does not touch ME region. They no longer have the option to copy one bios to the other.



Talk to Plutomaniac

So… bought myself a CH341A programmer my question is when I modify the bios and save it, do I need to flash it as CAP header or without the CAP header.

The AMI Capsule header must always be removed when flashing with programmers or general software flashers such as Intel FPT, flashrom etc.

@Winter17

Any luck flashing your rom? I read you were having difficulties. Very important to make sure that the test clip is on correctly and that your using the correct version of the support software for the ch341a. Wonder did the software recognize your chip? Do you have the right drivers installed? How have you connected to your programmer?


OK so just wanna make sure I am doing it correctly:
I downloaded the latest firmware from Asus for Z9PE-D8 WS which is v5802.
Opened it with UEFITool and extracted as is from the Intel section.

Opened the new Intel only section rom and inserted NvmEpressDxe_3.ffs at the end of the 3rd BIOs region section.


Correct!


If that’s what Fernando says at his guide, then that’s what you need to do.