The following is from ASUS P5B Deluxe Bios Recovery SPI Flash Cable, but reproduced here for Wiki-sake:
WARNING: Never use the ASUS Windows based bios flash utility. There have been scores of people with the same issue, if only I had known before hand.
Skip down the HOWTO for the good stuff.
In perhaps a moment of great stupidity and laziness, I reflashed the bios on my ASUS P5B Deluxe using the ASUS windows based flash utility. It wiped it clean, loaded the new one, and then it couldn't verify. At this point your only two options are quit or retry. So I retry, now it won't even try to write the bios. Having no other choice I rebooted the machine and hoped for the best. I got the worst.
The machine wouldn't do anything. The motherboard is supposed to have a built in bios recovery mode, but it seems that was wiped out as well by the Windows flash utility. It was time to send it back to ASUS so they could reflash it. The bios isn't removable, so surely there's some kind of device they plug into to reflash it for you I thought.
It turns out I was right. Next to the BIOS chip, to the left of the south bridge, is an undocumented 7 pin connector labeled SPI_J1. After a lot research I stumbled upon a few pages (linked at the bottom) that documented the type of cable necessary and the software to use this port to reflash the bios.
The cable consists of a parallel connector wired to something you can plug into the pins that also has a 2.7V-3.6V input to power the chip while reflashing it. I made a really bad attempt at using a chopped up parallel cable and the ends from a USB header port thing. This didn't work out well so I found at the local electronics store a parallel connector with a ribbon cable on it. I took it apart and re-soldered the ribbon to the correct pins.
To get the ~3V, I took a pass through power connector from an old case fan and added three diodes to the 5V wire, giving me a little over 3V. I then wired this to the ribbon cable and hooked the power connector into another running machine. I then used my laptop to flash to bios.
- A DOS boot cd, usb drive, or floppy
- BIOS ROM for the motherboard
- SPIPGM (Software that does the flashing)
- CWSDPMI (DPMI host process needed by SPIPGM)
- Soldering Iron
- Male DB25 connector
- Header connector of some sort, you'll need 6 pins total.
To make the cable I used a DB25M TO IDC10 SERIAL connector. This really seems like the easiest thing to use. They look like this:
The header is found on the motherboard directly to the left of the south bridge.
Here is how the header pins are numbered:
Here is a table showing which header pins should be connected to what parallel pins. Pin 1 on the header is for +3V.
Header Pin Parallel Pin
Here's what my cable looks like (Note: it looks like the power lead is connected to the DB25 but in fact it is solder to the ribbon, it goes to pin 1 on the header)
If you use a cable similar to mine, open it up and desolder the ribbon from the connector. Take a paper clip and stick it into the holes in the header connector to determine which lead needs to go to what pin on the DB25 using your multimeter. Solder each lead appropriately.
You then need to get a 5V line from another computer (The Red wire on a molex connector). Solder three diodes in series and connect them to the 5V line. Use your multimeter to ensure the voltage drop gives you between 2.7V and 3.6V. Solder this to the appropriate ribbon lead.
Now that you're ready to flash, boot your flashing computer with your DOS boot media. First, you need to run cwsdpmi.exe, then run spipgm. (Note: you have to run cwsdpmi.exe before SPIPGM each time.)
spipgm /p p5b-bios.rom
It will ask for the total size of the flashrom, enter 1024
If SPIPGM reports your chip id as fffffffh then something isn't right. Check all your connections. SPIPGM has several functions, such as erasing the BIOS first. Run SPIPGM without any options to see a list.
Giving credit where credit is due, without these sites I never would have figured this out.
It wasn't until I downloaded
spipgm2, and used the
/S, instead of the
/P command, that I was successful in returning my gigantic paperweight to a computer again.
It seems that
SPIPGM.exe by itself writes a page at a time to the SST chip in the Asus P5B boards. You must use either the recompiled
spipgm.exe or, even better, use the
spipgm2.exe. You can build the cable without any resistors or capacitors, as long as you use the orange (3V) output from the surrogate PC's ATX power supply.
Then you must use the
spipgm2.exe /S xxxxxx.ROM
to write to the chip after you unlock it with
/U and erase with
/E. This is the only thing that worked for me and I am back up and running perfectly.
You must use the
/s (slow) switch with this to program the SST chip in the ASUS P5-Series boards. Apparently, the
/p switch used in the original
SPIPGM.EXE doesn't do it slow enough, or a bit at a time; which is what the SST chip needs for a successful reflash.
To boot the program I made two floppy disks, one with a Windows 98 SE boot disk, and the second with the spipgm2 program and the bios image file (.rom extension).
To flash the bios I used the following parameters:
spipgm2 /i to make sure that the program can read my chipset and the cable is ok.
spipgm2 /u to unlock the bios.
spipgm2 /e to erase the bios.
spipgm2 /s p5b.rom to flash the new bios.
When it finished, I tried to boot the dead motherboard and it worked!