BIOS Flash Chip Substitution

Only for programmers and BIOS gurus with technical questions.
Post Reply
iBIOS
New visitors - please read the rules.
Posts: 1
Joined: Thu Sep 06, 2007 8:02 am

I decided I wanted to do some BIOS hacking. I got a new flash chip to experiment with and wrote the latest BIOS for my motherboard to the chip using an EEPROM programmer. I did this so I can always recover using my original BIOS chip if things go wrong.

I couldn't find a flash chip identical to the original available anywhere, so I used the best match I could find. I have an ASUS K8V Deluxe motherboard with an AMI BIOS, which came with a Winbond W29C040P-70B chip. I substituted an Atmel AT29C040A-90JU in its place.

The new chip works, however the BIOS gives me the following error when booting: "Flash ROM not supported." The system pauses and continues booting after hitting F1. I tried running AFUWIN (AMI Flash Utility for Windows) to see if it would ID the new chip. It displayed an error message saying the chip was incorrect and terminated.

I suppose the flash chip's ID is getting checked. If this is the case, where is the information stored that this ID is being checked against (in the case of the BIOS error)? Is it stored in the BIOS itself?

Is there away to get rid of this error and program this chip with the computer?

I know I must be missing something. There are outfits that sell pre-programmed replacement BIOS chips, and if I can't find a W29C040 chip, I bet they can't either.

Thank you for your help!
milosg
New visitors - please read the rules.
Posts: 1
Joined: Thu Oct 11, 2007 9:45 pm

This should be an easy remedy:
1/ Download datasheet of both original and replacement memory chip and find their IDs. ID consists of 2 bytes, first is manufacturer code ( Winbond=DA, Atmel=1F), the second is for type.
2/ Load your bios file into HEX editor and search for string winbond or atmel. You should find sort of a table with suported types. This part of bios is neither compressed nor checksum protected according to my experience.
3/ Nearby look for ID bytes of your original memory, it should be preceded by byte 3D.
4/ Rewrite this ID with your replacement ID. If you are going to use both chips, rewrite ID of some other chip from the table. There should be at least popular SST or PMC chips.
5/ Flash chip and try. For my P5LD2 DX it worked, but i do not have enough knowledge to generalize.
Post Reply