"It's not supposed to do that…"

Unbricking the MSI 890FXA-GD70 After BIOS Flashing Failure With an Arduino

August 2011 update: code no longer available online, mail and I’ll send it

Whew.

For some reason, flashing the MSI 890FXA-GD70 with the AFUWIN utility will brick your motherboard. I do know, however, that the “flashrom” utility does support this board just fine. I had no trouble flashing under Linux using “flashrom“.

This motherboard uses a Winbond W25Q16 SPI FLASH memory chip. Fortunately enough it is fairly easy to unsolder and reprogram this chip with the help of an Arduino.

Grab the source code. Open up .pde inside the Arduino IDE and change the first line to “#define WriteROM” if you want to write or comment it out (“//#define WriteROM”) if you want to read the ROM contents. Then on the PC side run the script like this (requires python, pyserial and progressbar modules) : “python biosrecovery.py readfile infile r” or if you want to write the chip “python biosrecovery.py readfile infile w” where readfile is the output file and infile the file the ROM will be written from. Also, you will need to change the path to your serial port in the biosrecovery.py script, the line in question is,

ser = serial.Serial('/dev/tty.usbserial-11BP0464', 115200)

It should be possible to run this script on Windows, hit up the pySerial documentation if needed.

21 thoughts on “Unbricking the MSI 890FXA-GD70 After BIOS Flashing Failure With an Arduino”

Hello sinetek,
Forgive me as I am new to wordpress. What is the best way to “mail” you?

I was hoping to stand on your shoulders by utilizing your arduino and .py code to unbrick an intel board.
-pammomo

more:
I have a matching pair of intel brand 945 boards with SPI chips that are similar to that on your MSI …
one of which I bricked by not upgrading to an intermediate bios as instructed by the current bios release notes and the other updated fine since it already had a bios that could be directly updated.
I was hoping to read the contents from the working SPI and dump it into the other.

Hi Phil! The mediafire link in the article to the source code is dead! Do you have Github? Source code hosting is free there. Thanks for the article!
I found some Arduino instructions here (http://www.flashrom.org/Serprog/Arduino_flasher). They seem to be different from yours but I’ll give them a shot.

I wasn’t aware of github back when I posted this, but if you have any trouble with Serprog I would be happy to assist. I still have the source code *somewhere*. I didn’t have to do much special to write to the chip, was just a matter of writing a page at a time.