Modifying flash routines inside the BIOS

Only for programmers and BIOS gurus with technical questions.
Post Reply
sulbert
Master Flasher
Posts: 204
Joined: Wed Jul 17, 2002 1:38 pm
Contact:

Got a Pine TL-BX31 board which had a bad flash chip (MX28F1000PPC). Replaced it with a healthy MX28F1000PC and the board is working fine again. Except a small issue... Namely at every boot get an Unknown Flash Type error after Updating ESCD... message. The problem is that this 28F1000PC flash chip has chip ID 11 instead of 1A (which is given in datasheet). So I think editing just one byte could solve this issue...
I extracted original.tmp from the BIOS image, disassembled it using hiew ,and have been looking at the code for some nights. But cannot figure out what byte needs to be modified (have no experience in disassembling and very moderate assembly coding skills) :(

Maybe somebody can help me?
Extracted (and zipped) original.tmp can be found here.
Rainbow
The UniFlasher
Posts: 3122
Joined: Wed Mar 20, 2002 4:16 pm
Location: Slovakia
Contact:

No, it will not work.
MX28F1000P has 7x 16KB sectors and 4x 4KB sectors.
MX28F1000 has 8x 16KB sectors <- this is what's called Large block flash on PC Chips boards (Release xx/xx/xxxx L)

I've had one board where I used the 28F1000 chip - it booted fine first time, updated the ESCD but didn't boot again. The BIOS did not check the ID properly and simply erased the last block - but there was not only ESCD there but also the bootblock :lol:
Patched and tested BIOSes are at http://wims.rainbow-software.org
UniFlash - Flash anything anywhere
sulbert
Master Flasher
Posts: 204
Joined: Wed Jul 17, 2002 1:38 pm
Contact:

Bad news :(
But thanks anyway, Rainbow.
Haven't found the MX28F1000 datasheet from the net. So I thought that if c't flasher could program the chip correctly (forced to recognize it as 28F1000P), it's compatible enough with 28F1000P.

Haven't had absolutely no luck with that board... First modified it to use a 2Mbit flash chip but couldn't get it working correctly (it booted up but there were lots of smaller incompatibilities - I guess the 2Mbit BIOS image was for another revision of the board...). And now this... :( But I'm not giving up yet :evil:

What about replacing the whole flash routines inside the BIOS?
Rainbow
The UniFlasher
Posts: 3122
Joined: Wed Mar 20, 2002 4:16 pm
Location: Slovakia
Contact:

sulbert wrote:Haven't found the MX28F1000 datasheet from the net. So I thought that if c't flasher could program the chip correctly (forced to recognize it as 28F1000P), it's compatible enough with 28F1000P.
Yes, it's compatible if you erase the chip completely first and then program all the data. But if you try erase one of the 4KB sectors at the end (where ESCD should be stored), you'll erase the last 16KB sector instead...

Try Winbond W29EE011, SST 29EE010 or Atmel AT29C010. They work almost anywhere.
Patched and tested BIOSes are at http://wims.rainbow-software.org
UniFlash - Flash anything anywhere
sulbert
Master Flasher
Posts: 204
Joined: Wed Jul 17, 2002 1:38 pm
Contact:

Tried W29E011 and guess what?
Updating ESCD... Success :)
Really big thanks, Rainbow :)
I didn't bother to try any other 1M flash chips before because there was written in the manufacturer's documentation that it's for MX28F1000PPC only. So, I guess, one should use his/her brain (and hands) and not trust too much what the manufacturer is saying...
Post Reply