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

@nicovon BIOS and CMOS not same things, And “Clear CMOS” does not always clear everything it should on some boards. Additionally you didn’t mention a blank check in your programming process, so you can’t be 100% sure the erase completely erased (That’s why I asked)
You also still did not give me any info about ME FW as I mentioned. What you described, which is not happening now, is normal sometimes, system needs to retrain memory, reset ME FW state, or do other things, so sometimes a first bootup can take a reboot or three before it’s settled back in.
After that you should load optimized/optimal defaults, save and exit, reboot back to BIOS and then make all other changes you want to make in the BIOS.

The image you linked looks like a bad graphics card, or bad cable etc. This is a video issue, if you are using onboard graphics then you may need to replace CPU soon, or pickup a PCI/PCIE graphics card/
If you are using a PCI/PCIE graphics card now, then you may need to replace it soon, especially if you keep seeing distorted graphics output like that.

To your question #2 - not generally, BIOS is not in use while you are in windows, unless you invoke it via DMI apps or BIOS update apps etc.
#3 - stop messing around, you can brick your BIOS forcing power down like that, probably how this initially happened eh?
Use shutdown button in windows, or press and hold the power button for 5 seconds or so while system is stable (in BIOS), or if frozen in windows.
Do not do that while it’s starting up or shutting down etc, this is not necessary for any reason and can mess things up.

On your HWINFO report, no, I didn’t check that and don’t need to, you look in the app itself on the left side as mentioned, show me image if you are not sure.
You should see something similar to this if ME FW healthy

HWINFOMEFW.png



@sagael - you can only use BIOS for that system, flash it normally, programmer is not required unless you bricked the system.
In OEM notebook like that, you cannot enable/disable any graphics device and leave the other as main, you can only have it as originally configured (Intel being main output to all display out connections)
Hypermemory or shared memory may be edited/changed with a BIOS edit. Dump the BIOS and send me a copy and I will check and change it for you.

@huyho - Yes, should be OK, use Spansion S25FL128 and version 1.30 or 1.34 - http://s000.tinyupload.com/index.php?fil…695330485827902
If that fails you can use ASProgrammer 1.41 it has the full exact ID Spansion S25FL128S - https://github.com/nofeletru/UsbAsp-flash/releases/




To dump the bios do I need a clip? or with the program majorgeek enough (as a final result gives a .rom file)

@sagael - No, to dump generally for the inspection I mentioned, you can usually use AFU or whatever flash tool comes with stock BIOS, or yes, possibly Universal BIOS backup toolkit
File extension does not matter to me, upload the file in a zip and I will check it out about hypermemory. Link me to stock BIOS download page too, so I can see your stock flash tool/method.
In the end, if you want to reflash mod BIOS, yes, you may need CH341A + SOIC8 clip, dump BIOS, send to me so I can edit, then you program back



thank you you are a great person you don’t know how much I have waited for this ,the file did not let me attach it since it weighs 2.4mb in zip so I uploaded it to mediafire

http://www.mediafire.com/file/kp9908r1f9…2A.rom.7z/file


https://ftp.hp.com/pub/softpaq/sp77001-77500/sp77491.exe



Hi @Lost_N_BIOS , thanks for your support !
I am finding socket for this IC. Can u refer me one?
Tks so much.

@sagael - you can attach up to 6MB file I think, but not 7z unless you rename it to txt or zip etc (if you do that, make sure to mention)
Thanks for file, got it. I do not see "hyper" or "Hypermemory" in BIOS, it must named something else (what is this?)

@huyho - Sorry, I am not sure what you are asking above? Please explain



Thank you for your prompt response, isn’t something called shared memory or something related to the GPU graphis or chipset?

That doesn’t help. Please explain what this actually is, does etc. Where are you seeing it called Hypermemory?
Is it shared graphics memory? If yes then there is no BIOS options for this, the video settings area is VERY limited. No DVMT, video memory, allocated, or apetrure size etc.
Actual shared memory is decided by windows anyway, not the BIOS settings, BIOS only gives a reserved started amount.

here it is defined:HyperMemory was a brand for ATI’s method of using the motherboard’s main system RAM as part of or all of the video card’s framebuffer memory on their line of Radeon video cards and motherboard chipsets. It relies on new fast data transfer mechanisms within PCI Express.https://en.wikipedia.org/wiki/HyperMemory,out of curiosity what options you give in the gpu with the bios unlocked?



another query in my bios can you unlock advanced options for cpu and ram?,how strange that the dedicated gpu only works for me only when I have a ram module in use, if I use 2 ram modules and I limit the ram with msconfig only the integrated one works


PD:it is possible to change the bios of the dedicated gpu for an older one in my case of 7670-6770m and use Atitool

@sagael This doesn’t make sense to me, explain it again differently please >> dedicated gpu only works for me only when I have a ram module in use, if I use 2 ram modules and I limit the ram with msconfig only the integrated one works
Have a ram module in use? You always have that, or you have no ram installed and system cannot start. MSCONFIG should be reset to default values, this is ONLY used for debug purposes, using it outside of that will only cause you pain an issues you can’t figure out later on (or now)

These are the only options in the BIOS for GPU

GPU-Options.png



vBIOS may be able to be changed for some older/other model, if that model sold with this laptop and it has a vBIOS in the BIOS too. Otherwise, no, that’s not possible.
These are the vBIOS in your BIOS
VBIOS in GUID 8DFAE5D4-B50E-4C10-96E6-F2C266CACBB6-ATOMBIOSBK-AMD VER015.024.000.000.043615-Ven_1002 (ATI) DEV_9901-Comal/Trinity VBIOS-ATI ID, but AMD in file!?
VBIOS in GUID 8DFAE5D4-B50E-4C10-96E6-F2C266CACBB7-ATOMBIOSBK-AMD VER015.024.000.000.000000-Ven_1002 (ATI) DEV_9901-TrinityGener803384.1.236303
VBIOS in GUID 25A874EB-3B61-419C-8397-817067E214E0-ATOMBIOSBK-ATI VER013.012.000.041.043605-Ven_1002 (ATI) DEV_6840-HP-Carbonel Thames-XT/Comal DDR3- 7670M
VBIOS in GUID 6CDB3814-B66C-46D5-8B82-750DBCE574B0-ATOMBIOSBK-ATI VER013.012.000.041.043851-Ven_1002 (ATI) DEV_6840-HP-Carbonel Thames-XT/Comal DDR3- Same vBIOS, but diff Version of above

You need to start your own thread, then I can move all this there and further help you with your BIOS questions. I don’t know if I can unlock your BIOS, I’d have to check and see.
There is no memory or CPU settings, only P-State option for CPU. And, after looking at this, and your GPU options previously, there is nothing to really unlock here so it would be a huge waste of time




still has interesting options, the bios will have to find out what you say I’m afraid it will not be possible, it is very difficult to unlock it with the options you show me?

I recently had the necessity of flashing (repeatedly) some X58 board which doesn’t have the SOW8 (SPI) socket (DX58SO, DX58SO2). YET.
With the CH134A (black) and flashrom posted by @Outsyde I’m able to detect the chip only if I detach the VCC from the PIN8 (aka result is: CHIP detected EMPTY [FF] content).



Did someone was able before in reading and writing the in-circuit soldered chip on an intel desktop series board with the CH134A without damaging anything or desoldering?
One thing I dint try without the VCC on PIN8 is applying 3.3V externally ( literally ) on the 3.3 circuit and grounding something else form the same circuit onto the power source.
But I don’t have a clear component to target outside the POV bios chip atm, so, dunno also, this won’t work (if it work) for mine typical usage, shouldn’t be giving external 3.3V on PIN 8 the same? -.-

Hello !

I just brought a CH341A Programmer with a 1.8V Adapter to flash my MSI x470 Gaming Pro Carbon Motherboard to get support for Ryzen 5 3600X proc. (The motherboard had been made in early 2019). So I need the last version of the bios to get this working.
The idea was to compare the dump BIOS with the same bios version available on the manufacturer website to ensure good backup, then write the last bios version on the chip. (With MAC and Serial or not, it’s not realy the point right now).

The chip is a Macronix MX25U12873F

The reading went kinda good, and I have the same dump files with CH341A Programmer V1.31 and v 1.4.1 and Colibri and flashrom. (Other software versions can’t find the right chip)
When comparing with UEFI Tools, it seems that the bios version is E7B78AMS.240 ( https://www.msi.com/Motherboard/support/…MING-PRO-CARBON )

But when I’m doing a Hex comparison with HxD, it appears that some bytes aren’t the same, and there is a weird bytes offset at some point.

When I saw this, I tried to read from another USB port (2.0, 3.0, with and without a usb cable), but the dump is every time the same.

Here is the dump : https://drive.google.com/file/d/1Xnd0HdI…iew?usp=sharing

Did you know where it can come from ?

@AnicetR - First thing is to open software, all versions you might use, and on the auto function, uncheck erase and blank check, that way no accidental erases.
Then dump the BIOS chip and send to me to check, then wait, this way I can let you know if dump is good or not, if not you may need to use other chip ID or other software etc.
This also makes a backup of your board specific data in place, serial, UUID, LAN MAC ID etc. This needs placed back into any stock BIOS you plan to program back in.

For MX25U12873F use CH341A v1.31(1.4) (CH341AFree) version (exactly, and only that one works), just selected “25 SPI FLASH” and “16MB/128MBit”, that version is in this package - http://s000.tinyupload.com/index.php?fil…695330485827902
Or see post #120 here for all other possible other methods - [GUIDE] The Beginners Guide to Using a CH341A SPI Programmer/Flasher (With Pictures!) (8)<br />
Sorry, I don’t know what you are asking at the end there “Where it can come from” where what can come from?

Please dump BIOS again with version mentioned above, of did you use that exact one before (not the same as 1.31)? Asprogrammer should be OK too, but I only know of confirmation of read and write with 1.31(1.4) CH341AFree version.

What is your goal here?? Are you needing to update onboard BIOS, with programmer, due to you not having a CPU that’s compatible with current onboard BIOS? IF yes, OK, just wanted to be sure I know what you’re needing to do here.

@Lost_N_BIOS :
Thanks for the crazy fast answer!
The dump file I linked in my previous post is a dump made with CH341A v1.31(1.4) (CH341AFree). (Shoul’ve just copy-pasted the name instead of trying to write it down)
This is the dump: https://drive.google.com/file/d/1Xnd0HdI…iew?usp=sharing

> Sorry, I don’t know what you are asking at the end there “Where it can come from” where what can come from?
The bytes offset I can see in the dump when hex comparing with the rom downloaded from the official mobo website.

“Are you needing to update onboard BIOS, with a programmer, due to you not having a CPU that’s compatible with current onboard BIOS?” : Exactly!

@Outsyde


Yes, the flashrom for WinXP requires a WinUSB driver but the one included in the flashrom packages in this topic does not work because there is no co-installer. I have created the WinUSB driver which can be downloaded here: flashrom CH341A on WinXP x86/x64 with WinUSB driver

I followed all steps and my laptop is not opening. How can I fix?

@AnicetR - MANY things will not match when you compare a dumped from chip BIOS (Dirty, used, populated w. info etc) with stock BIOS (clean/bare, and not always complete BIOS either)
Once I send you BIOS, program back with CH341A v1.31(1.4) (CH341AFree) selected “25 SPI FLASH” and “16MB/128MBit” - Do erase, then blank check, then open BIOS file, then write, then verify

Before I do that, what is your serial (look on board sticker + box if you have) and what is your LAN MAC ID? You can send me those in PM if you want

I have successfully flashed HP Elitebook 755 G2 which previously has bios password. Below are the steps.

1. Remove AC power supply and laptop battery
2. Attached the SOP8 clip to the Winbond 25Q64FVSIG flash chip, make sure the pin1 location correct
3. Very important: Use multi-meter to check connectivity from 25Q64FVSIG leads on the laptop PCB to the solder points of the TEXTOOLS on the programmer. Make sure every pin is connected.
4. Reconnect laptop battery and AC power supply (very important and must be done to ensure there is 3.3V on the 25Q64FVSIG flash chip even without the programmer connected, the programmer cannot supply the required current for programming and erase. This is a lesson I learned in my case)
5. Download CH341A v1.29, Asprogrammer v1.4.1, Colibri v1.0.1.61 programming software (I downloaded three just to compare if all tools provides the same result and they did gave me the same result, so any one should work)
6. Connect the CH341A programmer to another PC and open CH341A v1.29 software. Click “Detect”, the CH341A software should be able to identify the flash ROM model and you should select 25Q64FV from the list.
7. Read the Flash ROM using the CH341A v1.29 software, and after reading complete save the ROM image as backup in case you need to revert back the the old BIOS
8. Optional: read the ROM using other software such as Asprogrammer v1.4.1, Colibri v1.0.1.61. It should take about a minute or so. They should provide the same result (I did this just to make sure the read back is reliable before doing erase and program). Use http://onlinemd5.com/ to compare the file checksum are the same to make sure the read back is reliable.
9. Erase the flash ROM, the erase should take about 50 seconds or so. If it takes much shorter than that such as 1~2 seconds, the flash ROM erase is not done.
10. “Blank check” the flash ROM, the software should report blank check passed and the data should be all 0xFF
11. Download official HP bios from below URL
https://support.hp.com/us-en/drivers/sel…444?sku=J5N86UT
As of today the latest version is: https://ftp.hp.com/pub/softpaq/sp91501-92000/sp91524.exe
12. Use 7zip or other unzip software the unzip the sp91524.exe "Use extract to \sp91524 command after right click the .exe file and get the M84_0148.bin. M84_0148.bin is the flash ROM image that will be written to the flash.
13. In the CH341 v1.29 programming software, open the M84_0148.bin and click “Write” to program the M84_0148.bin to the flash. It should take around 2 minutes to complete programming
14. Click “Verify” in the CH341 v1.29 programming software and after about 1 minute, the software should report data and buffer are the same.
15: Optional: read back the Flash ROM again and compare checksum with the M84_0148.bin file. This is optional as the Verify step should have done the same thing.
16. Turn on the laptop and it will report the serial number model number does not exist. Press ESC and later turn off the laptop and turn on again, in my case the serial number and model number will be filled in automatically. I also downloaded HP DMI Tool NBDmiFit tool but it turns out this laptop did this automatically.
17. Now the laptop is BIOS password free and ready to go.

I am thankful to this thread and all the people who have shared their experience. If anyone has question, please reply to this thread or message me.

hey everyone i have a ch341 programmer and need to program a M45PE16 bios chip for a dell latitude E6520 and was wondering how i should put the chip in my adapter/programmer so i can read and write to it? a picture would help a lot