I have a HP laptop that won’t POST. It is signaling a broken/corrupted BIOS via blinking caps-lock LED. I recently got a CH341A programmer which I’ve fixed another bricked motherboard with success.
So I went to the HP website, downloaded a new BIOS, hooked everything up, read and made a backup of the original broken BIOS but the new BIOS binary is slightly larger than the chip’s memory.
I’ve even downloaded a couple of older BIOS versions but they are the same too large size. The chip is a Winbond 25Q16BVSIG which according to the datasheet has a memory capacity of 16M-bit / 2M-byte (2,097,152) which matches the size of the broken BIOS backup file. The new BIOS binary file has a size of 2,294,656 bytes, which is 197,504 bytes larger than the chip’s memory so I guess the new file contains some additional data.
So… Can anyone point me in the direction of where I can learn how to find out which parts of the file I need / don’t need? I have a hex-editor with which I think I can figure out how to cut certain parts of the file out and create a new “custom” BIOS file.
I’m new to this but I want to learn!
By searching the old BIOS file I’ve found a section between 20000-200FF that contains the MAC address, serial-number, model, and some other stuff that seems related to some kind of identity of the laptop. This might come in handy when editing the new BIOS prior to writing it to the chip.
@minuzed - What is the FULL model name of this system? Please link me to the stock BIOS download page (not direct link to BIOS download)
The model name on the sticker says dv6-3143eo and the download page is:
I got to this page by entering the serial number.
After some more digging I think the HP BIOS download is somehow encrypted and I need to decrypt/extract certain parts of it to get the real .bin out of it. Found a software called LBE (Laptop BIOS Extractor) that is supposed to be able to extract it. I gotta look more into this.
Update, exctraction/decryption solved:
I found a video on YouTube (
During the flashrom write-process it reads the old data, erases and writes the new data, and finally it verifies the data on the chip to the .bin file to see that all went well. In my case it failed during the verification-process which makes me think that my chip might be broken. So I’ll have to order a new chip, write the new BIOS to it and if it succeeds I will have to solder it on to the motherboard.
I will update as I progress.
So once again time for a little update.
I got the two new chips, wrote the BIOS to the chip, verified OK and then soldered it on to the motherboard, replacing the old chip. Unfortunately it didn’t help. On power-up the Caps-lock LED is still flashing indicating BIOS problems. So naturally I tried to do another flash with the chip attached to the board, which failed. So I also tried to write the new BIOS to the old chip with the chip dismounted from the motherboard. It wrote the BIOS to the old chip successfully and even verified OK which leads me to the conclusion that the old chip maybe wasn’t broken after all, it’s just not possible to flash the chip while mounted on the motherboard.
I might desolder the new chip again and re-flash it again and then solder it back, just to ensure that it wasn’t a bad write or a bad solder but if that doesn’t help then I think I need a new motherboard. I think it’s more or less impossible to find a new one at a reasonable price considering the laptop is pretty old and outdated now so it’ll probably end up in the trash but if I somehow manage to get it alive I will be sure to update this thread for future reference.
After programming and soldering back and forth a couple of times to try different BIOS versions on different chips and also changing some stuff in the BIOS bin-file, it still doesn’t work. As I power on the laptop caps-lock LED still flashes and indicating corrupted/broken BIOS so I now think that the motherboard is broken. I will not put any more time or money into this laptop since it’s kinda old but at least I tried and I learned a lot on the way. So I managed to rescue 1 of 2 computers with broken BIOSes which is a 50% successrate
@minuzed - What is your BIOS chip ID? The verification fails usually due to incorrect software or version used for chip ID. Not all software or versions work for all chips.
Verification does not always mean write was correct either, to confirm manually, do a write, and then without powering on system, dump the chips contents and compare in hex editor vs the file you wrote, if 100% match then write was OK and source file is broken.
Some BIOS you cannot edit, at all, if Intel Boot Guard is enabled on the system (you can only check this once system is running), so test BIOS without editing in any info first! And then, some BIOS you can only edit certain ways, possibly however you edited in your details is incorrect method too.
Give me originalf4 BIOS chip ID and I will tell you what may be best to use with it. If you destroyed that chip, and only have the new ones, tell me their ID instead. Best to put back the original if you have it, or tell me both chip ID’s and I will check, but some BIOS only compatible with some chips too.
Also, be sure you are using the correct BIOS for your system, there is at least two different DV6 BIOS download pages, and one has 2MB BIOS.
The other has 4MB BIOS, but inside those downloads for this model are two different BIOS images for two different 4MB system variants.
The original chip is a Winbond 25Q16BVSIG 1035 and the two new chips I ordered are Winbond 25Q16BVSIG 1345. The verification always fails when trying to program the chip when it’s attached to the motherboard. If I unsolder it, programming and verification succeeds. I can even program the original chip successfully once it’s off the motherboard so I can’t be 100% sure it’s broken.
When editing the binary, I used HxD and copied the block between 20000-200FF from the original file and did a “paste write” (not “paste insert”) to the same location in the new file so the new file kept its original size. I don’t know if that is the right or wrong way to go but that is the only way I know of. I also don’t think it has Intel Boot Guard since it has an AMD CPU.
I have the old chip and the two new chips and all of them seem to be working still. One of the new chips I haven’t even used yet so it has not even been programmed. I also have the old but possibly corrupted BIOS file, I will send it to you.
Since the chip is a 2MB I’ve only tried the 2MB BIOS files. I have also tried using the binaries with and without modifying which seems to do no difference. I’ve tried the latest F.26 Rev version and the latest F.29 Rev version BIOS found on the HP support page. Something worth noting is that when I use the F.29 Rev BIOS and plug in the power cord, the charging LED never turns on and the laptop is totally dead, so I suppose that is an incompatible version. As of now, the laptop has the original chip in it with the latest F.26 Rev, with the addition of the 20000-200FF block containing the serial no, MAC address etc. Now the charging LED lights up when connecting the power cord and the laptop powers up as before but still with a blank screen and a flashing caps-lock doing two flashes, indicating corrupted BIOS.
@minuzed - Can you then close the app, re-open, dump chip and save, then compare contents in hex and it’s a 100% Match?
What software are you using to write to the chip now?
Yes, if AMD, then no Intel Boot Guard
Yes, that is corrupted dump. What BIOS exactly are you editing? Please upload copy for me, I can’t seem to extract copy from this stock exe, I can get setup out, but after that it wont setup/copy stuff onto USB like it seems it should, and no files created in temp etc.
I did what you asked and it seems to be a 100% match. I wrote the 26 version, stock, unedited, binary to the chip. Then I did a new readout to a new file and compared it to the file I just wrote, in HxD, and it says the files are identical. So I guess we have confirmed that what is written to the chip is actually written to the chip and not altered on the way.
I’m using flashrom 0.9.9.rc1.r1942 on a laptop running Ubuntu together with a ch341a_spi programmer.
I’m using the stock BIOS binaries after I’ve extracted them from the installation found on the HP support page.
Yeah I think the insydeflash that’s provided from the HP support page is misconfigured because you never get the option to extract it to a USB.
To extract the stock files you first run the stock .exe (like sp52214.exe which is the v26 BIOS). It then extracts all the files to the default location of c:\SwSetup\sp52214. In that directory you will find a binary called 0143FF26.bin. This is the file that I originally posted about because this file is too large for the chip. I learned that it’s because it’s encrypted. To extract the “real” file you need to use a newer version of insydeflash with a different configuration (see the video-link in one of my previous posts). After doing that, you end up with a bin-file exactly the right size to fit the chip. If you view this file in a hex-editor you will see that is no longer encrypted. This is the file where I input my “ID-block”, copied from the original/broken backup binary.
The HP bios extract.rar contains the insydeflash used to extract the “real” binary to a file or to create a USB.
The extracted-v26.bin is as the name says, the 0143FF26.bin AFTER extraction, without any modifications from my part.
Quick instruction on how to use the insydeflash provided:
1. Extract “HP bios extract.rar” to a folder of your choice. (Let’s say C:\HP-bios)
2. Run stock .exe file (sp52214.exe)
3. Copy the file C:\SwSetup\52214\0143FF26.bin to C:\HP-bios\ and rename it to aries.fd
4. Run C:\HP-bios\InsydeFlash.exe, click Next, then choose Copy.
5. When done, you’ll have 2 new files in you C:\HP-bios folder. aries.bin and aries.sig.
aries.bin is the extracted/decrypted binary file.
HP bios extract.rar (1.95 MB)
extracted-v26.rar (1.13 MB)
Yes, sounds like you manually confirmed programmer write/verify is correct.
Yes, I run stock exe, and get file in SWsetup (only setup.exe), no other files or binaries etc. Please upload for me all contents of SwSetup/sp52509
Why are we looking at different exe’s here? I used your link above, latest BIOS is sp52509.exe. I just checked again too as I wrote this, still >> 220.127.116.11 Rev. A >> sp5209.exe
When you wrote the stock untouched bin to BIOS, without your serial/info edit, does it boot? If not, there must be other chip messed up, such as EC/KBC FW chip, or you have other hardware issues just happen to go bad at same time as bad flash, or did you get this system in state you mention from the get-go?
If it’s always like that, then could be bad CPU, bad memory, Bad GFX Card etc, you’ll have to test those items one by one on another system to be sure they are OK. If all OK, then could be bad component on the board, NB/SB etc.
The sp52509.exe you are looking at is the UEFI BIOS, which I just now realized that I haven’t tried using. On my screen that BIOS is under a section that translates to BIOS-tools on the support-page. Just above that on I have a section only called BIOS, in which I found the two different BIOS versions 26 and 29 that I’ve been using. These give you the binary-files I’ve been talking about.
No it doesn’t boot even with an untouched binary. I don’t know if there are other hardware issues since I was given this laptop in this broken state, saying just that it wouldn’t boot. I then translated the caps-lock LED blinks to a corrupt BIOS.
Yeah might be other things that are also broken but then only thing I can try is the switching the RAM modules around and that didn’t make any difference. I could probably take the CPU out but I have no other to use to rule that out. Graphics is integrated so not much I can do there either.
But I’ll see what I can do with that UEFI BIOS. Don’t think it will help though since that file a lot smaller than the BIOS chip. I also think that it need to be able to POST to actually read the UEFI BIOS from the USB but I’ll give it a try and see what happens.
I can’t get it to boot from USB with the UEFI BIOS. I think I need to get the main BIOS straight first.
I’ve attached the two different versions for you since I don’t know which one to use but when I try to use the version 29 the laptop is totally dead. When I push the power-button nothing is happening. When using the version 26, at least it powers up, fans start spinning, and it gives me the flashing fault-codes.
Keep in mind that these are the encrypted bin-files so you need to decrypt/extract them to get the decrypted binary.
sp52214.rar (3.4 MB)
sp61028.rar (3.4 MB)