What options do I have for flashing an UEFI BIOS chip on an Asus mobo

biosflashingrom;ubcduefi

I have a bizarrely borked ASUS board (M5A97 LE R2.0) that is stuck in a half way state between two BIOS versions. I cannot enter the BIOS settings page (the system locks up after drawing half of it). It will not POST if there are any USB devices or GPT partitioned disks attached. Removing those –and with some monkey business to get a keyboard– I am able to boot UBCD, so I do have access to a few tools.

I also setup a DOS boot disk using FreeDOS with the ASUSTeK BIOS Updater for DOS V1.30 and am able to find the CAP file from ASUS that should be the latest BIOS. Unfortunately when attempting to flash it it checks the file, then throws this error:

"Failed to load the secure BIOS."

I have been unable to figure out how to make this utility go or find a file that it likes. I've tried the latest 4 versions for this board posted on ASUS's site.

I also tried flashing using FTK, but it was unable to run in the FreeDOS environment I had setup. I also tried flashing from Linux using flashrom, but that failed for another undetermined reason.

What other options do I have for re-flashing this BIOS? What might the ASUSTeK utility not like about my ROM files?

Best Answer

So having tried several other BIOS flashing tools on this system to no avail, I decided the BIOS might be so borked that it wasn't going to be able to flash itself and that it needed outside help.

Unfortunately I imported this board and getting warranty service on it would be a lot of hassle. I was unable to locate a new BIOS chip, so I decided to try to remove it externally.

Of course I was also unable to find an EEPROM programmer. I'm sure they exist, I just couldn't find the right people to ask, so I opted to build one. This turned out to be easier than I expected.

I had a couple Raspberry Pi boards lying around and read that it has an SPI interface necessary for this sort of thing. The author of flashrom seemed to think it should be possible, and more recently there is a wiki page on the flashrom site with the necessary pinouts. That lead me to this tutorial, which I more or less followed.

Another trip to the electronics parts bazaar for a breadboard, some resistors, a capacitor and some wire, and I was ready:

rPi flasher

Crazily enough, it worked!*

I cut the CAP header off of the latest bios image file (dd bs=2048 skip=1 if=BIOS.CAP of=BIOS.BIN) and used flashrom to write it (flashrom -p linux_spi:/dev/spidev0.0 -w BIOS.BIN). After sticking the chip back in my motherboard, it boots just fine. I can open the BIOS and have successfully setup my OS.

* I know it's not pretty. I'm not a hardware guy and didn't have access to proper tools or supplies.

Related Question