Flash writing/reading behaviour

Only for programmers and BIOS gurus with technical questions.
Post Reply
rbfowler9
New visitors - please read the rules.
Posts: 9
Joined: Sat Nov 29, 2003 12:16 am

Folks,

I'm trying to fix an elderly video equipment, that has is firmware burnt onto a 27c128 eprom. Actually, the original eprom is a 2764, and my h/w has been reprogramed once with a 27c128. As I don't have the appropriate tools to erase and burn eproms, I've been thinking of swapping the eprom for a flash part. And motivated by this topic (http://www.wimsbios.com/phpBB2/viewtopic.php?t=4000), I thought this would be the most adequate place to get a few tips :)

Acccording to the datasheets from a 27c256 and from a Winbond W49002U, despite the 28 to 32 pin difference, only the 4 topmost pins are actually different. On fitting a 32 pin flash part onto a 28 pin dip socket, I'd leave out pins 1, 2, 31 and 32 of the flash. Also, I'd need to remove pin 30 from the flash (WE, which wouldn't be needed anyway) and wire pin 32 to the 28 pin on the socket (Vcc). Aside from that, I was told to ground the unused address pins (A16 and A17, in this case). And pin 1 is N/C.

Now for the tricky part: I'm trying to fit a 16kb code onto a 256kb chip. How should I "pad" the data, prior to flashing? With 0FFh's, as if it were an empty eprom? Is there any relevance on the flash part's organization, like "2048 128-byte blocks", or "4x64k blocks" on the reading that the equipment will perform? What about the bootblock, should I replicate the original code on the bootblock area, or just treat it as a part of the whole 256k memory address?

I tried flashing the 16kb code repeated 16 times, later I tried padding the data with 0FFh's after the 16kb code, but none seemed to work. I've been using AMI822 for the Winbond 49xxxx to flash it, including bootblock (since Uniflash 1.32 can't seem to be able to write the bootblock on this particular part). The flashing process seems fine, as it seems, since reading the recently flashed part results on correct data.

I have quite a selection of chips available, namely SST39xxx, W29C020 and some SyncMOS and ASD chips picked from dead PCChips boards to play with.

Maybe there's something more I should to ensure compatibility? I wonder if the equipment is not addressing the flash inappropriately, i.e. starting to read it from a random point?

Any ideas?

[]s
Fowler
rbfowler9
New visitors - please read the rules.
Posts: 9
Joined: Sat Nov 29, 2003 12:16 am

I forgot to mention, I picked the W49xxxx because according to the datasheets, it does "boot up" on read mode, needing only Vhi on the OE and CE pins, just like a standard eprom...

[]s
Fowler
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

rbfowler9 wrote:Now for the tricky part: I'm trying to fit a 16kb code onto a 256kb chip. How should I "pad" the data, prior to flashing? With 0FFh's, as if it were an empty eprom? Is there any relevance on the flash part's organization, like "2048 128-byte blocks", or "4x64k blocks" on the reading that the equipment will perform? What about the bootblock, should I replicate the original code on the bootblock area, or just treat it as a part of the whole 256k memory address?

I tried flashing the 16kb code repeated 16 times, later I tried padding the data with 0FFh's after the 16kb code, but none seemed to work. I've been using AMI822 for the Winbond 49xxxx to flash it, including bootblock (since Uniflash 1.32 can't seem to be able to write the bootblock on this particular part). The flashing process seems fine, as it seems, since reading the recently flashed part results on correct data.
If you are pulling A16 and A17 low, you should not need to program the bootblock as it is in the top of the ROM. How did you use the 27128 instead of the 2764 ? Did you let the extra address pin float high ? Is the original code repeated or in the top 8KB ?
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
rbfowler9
New visitors - please read the rules.
Posts: 9
Joined: Sat Nov 29, 2003 12:16 am

I don't really know - it wasn't done by me, the first time. I can't tell, because I can't read the chip either.

Is it possible that the device isn't supposed to handle parts larger than 128kbits, therefore I should pull pins A14~A17 low ... Gonna try that later today.

[]s
Fowler
Post Reply