Question CH341A programmer BIOS dumps are corrupted and fail verification

Jul 29, 2024
8
0
10
Hello everyone! Hope you are having a good day.

I am currently working on a Toshiba L50-B-1P1 and I need to dump the BIOS to have a backup. I have attempted dumping the BIOS using Intel FPT but unfortunately my flash descriptor is locked. The HDA_SDO or pinmod method is also not possible as the audio chip is located in an innacessable part of the motherboard.

I resorted to purchasing a CH341A programmer with a SOIC8 Clip. I seem to have successfully located the BIOS chip on the motherboard and located the datasheet of a chip very similar to it as I couldn't find it's datasheet. Confirmed it used 3.3V. I downloaded the latest version of AsProgrammer which included all the necessary drivers and programs. Installed drivers and the CH341A programmer was successfully detected. Applied the clips onto the chip and clicked on the "Read ID" button. It successfully auto detected the BIOS chip and I went on to read the chip. (check picture)

However this is where my problems began. I did multiple reads of the chip and found that the CRC32 hash that was given to me was different each time. I verfied this by comparing the bin files in a hex editor and also by clicking the verify button. Strangely, each time I clicked verify, the address at which the difference was found changed! This means that the dumps that are being given are defiinitely not the real thing, especially as there are lots of areas where it's just all FFFF or 0000. (check picture)

One theory I have is that there could be voltage sags or drops throughout the read process which is causing irregular dumps. What if I were to plug in the battery or mains but keep the laptop turned off? Perhaps it might supplement just enough voltage for the chip. I don't currently have a multimeter so I cannot check.

So my question is, should I try reading off the chip whilst battery or mains is plugged in and the laptop is not turned on? Would that fry any components? Also, is having my ID(15) in AsProgrammer as FFFF an issue? Thanks for your attention!

Motherboard: DABLIDMB8E0 Rev: E
Bios chip: GD25B64BSIG (Gigadevice) (But is also recognized as GD25B64B)
Datasheets: https://www.alldatasheet.com/view.jsp?Searchword=GD25B64B
https://www.alldatasheet.com/datasheet-pdf/pdf/1150072/GIGADEVICE/GD25B64C.html
https://www.alldatasheet.com/datasheet-pdf/pdf/1133327/GIGADEVICE/GD25B64C.html

 
Jul 29, 2024
8
0
10
Jul 29, 2024
8
0
10
This video might be of assistance;
View: https://youtu.be/vO7LmE0aGSg?t=546

and you can hook your power source from the wall.

As for your question about FF's in the BIOS programmer widnow;
https://winraid.level1techs.com/t/guide-flash-bios-with-ch341a-programmer/32948
or this section, specifically;
https://winraid.level1techs.com/t/guide-flash-bios-with-ch341a-programmer/32948/2

The Youtube video is helpful however I currently don't have my multimeter with me. I remember those forums and they actually talk about powering the motherboard and trying to read/flash like that. However, they all did that when their chip was not being detected at all, whereas my chip gets detected but is read incorrectly.

As for the external 3.3v supply, that may actually be a good idea but I currently don't have any of the boards and parts necessary and would rather avoid all that jazz.

Just to confirm, you think I should plug in the laptop to the wall or plug in a battery? what's the worst that could happen? I would try CMOS battery but surprisingly the motherboard doesn't support one lol.

Before I even do all of that should I try with a live linux image and flashrom? I doubt that it'll be any different but maybe it'll be successful.
 
Jul 29, 2024
8
0
10
Okay maybe good news but some very bad news.

I had the clips from the programmer attached onto the BIOS chip but the CH341A programmer wasn't plugged in. I then plugged in the charger for the laptop. The programmers LED's for POWER and RUN briefly lit up and then turned off. Then I plugged the CH341A into m other laptop and all seemed well. No smoke, nothing heating up, nothing making noises. Everything seemed fine.

In AsProgrammer my chip was detected successfully, and after doing a read it seemed to have correctly read everything. All the spots where there were FFFF where now populated with data. After clicking verify, it actually did it without any errors. I decided to take a second read and compare the files manual via a hex editor. They were identical, the CRC32 hash was also identical. YES! I thought. The files seemed to have been also correctly recognised in UEFITool.

Now the bad news, After assembling everything together, I tried powering on the laptop and was greeted with a black screen. However, the laptop doesn't seem totally dead but I have my concers. First of all the LED's that signify whether the laptop is powered on or is charging still work. The fans don't just go full speed, they seem to still work properly as I hear and see the spin up and spin down when cpu gets hot to the touch. However, the screen is completely off, as in the backlight doesn't even turn on. The hard drive also doesn't make any "active" noises. Usually during boot up i'd hear a few noises of the hdd head moving to get files for the OS to boot, but now it is't as loud. Also the Caps lock and Num lock leds don't light up when pressed.

Out of interest I tried repeating the flash process again as mentioned. This time the Hash of the file read was different to the one I got earlier BUT, it still verified correctly. This means that something is being changed on the bios each time I try to power it on. That shouldn't happen right? A bios chip should remain the same every single time right? What's more strange the differences occurred only in the "header" or the "start" of the file. The hex editor showed that that everywhere else apart from the start of the file was untouched. i tried this again and the behaviour persists.

Maybe there's still hope? Can someone please help me troubleshoot this? I'd be grateful for any help. Thanks for your attention.