• Please review our updated Terms and Rules here

Cheapest way to add ROM to NIC?

TheLazy1

Experienced Member
Joined
Jun 2, 2009
Messages
370
Location
Toronto, Ontario, Canada
Of course I could buy a programmer, but IIRC decent ones are pretty expensive.
I just wondered if there is a cheap, easy way to program a 28-pin ROM.

Despite days of trying, you cannot simply embed them into the BIOS and expect it to be run.
:(
 
By definition, you can't program a ROM (whose programming is part of a metallization mask). You can program a PROM, however.

EEPROMs are pretty easy to program--but you usually have to jumper a lead or two to enable writing--and then use software to write the thing (the writing sequence isn't quite as simple as just spitting bytes out to it).

By far, the simplest to program is a FRAM (you may be able to find some old RAMtron parts in 28P DIP out there). As long as you can jumper a write-enable line for the thing, you're good. They work like regular SRAM, except they retain data over power cycles. They're faster than most UV EPROMS, so no problems with speed.
 
Thanks :D
I'll have a look at some junk boards kicking around and see if they have any of those, eBay doesn't seem to have any however.

From a quick look an EPROM programmer and eraser is going to be ~$50CAD plus the shipping time from China, though if I wanted to get into other stuff it'd still be useful I guess.

Could you theoretically use SRAM if you kept it separately powered?
 
Theoretically, yes. It's interesting, but you can occasionally find boards with unpopulated jumper pads that, when closed, route the "write" signal to the PROM socket. It's pretty clever--you put an SRAM (every one that I've seen set up like this was configured for 2764-type EPROM) in the socket, close the jumpers and boot up the system. Naturally, since the SRAM at power-up has garbage, no notice of it is taken by the BIOS. After booting, you then write the BIOS extension image that you're working on into SRAM and reboot. Since power never cycles, the image is now present and included as an extension. Great for testing, and much less bother and expense as using a ROM emulator.

Dallas/Maxim may have had a 64Kb NVRAM chip in their lineup, I'm not certain--but that would give the same facility in a battery-backed solution.
 
Theoretically, yes. It's interesting, but you can occasionally find boards with unpopulated jumper pads that, when closed, route the "write" signal to the PROM socket. It's pretty clever--you put an SRAM (every one that I've seen set up like this was configured for 2764-type EPROM) in the socket, close the jumpers and boot up the system. Naturally, since the SRAM at power-up has garbage, no notice of it is taken by the BIOS. After booting, you then write the BIOS extension image that you're working on into SRAM and reboot. Since power never cycles, the image is now present and included as an extension. Great for testing, and much less bother and expense as using a ROM emulator.

Dallas/Maxim may have had a 64Kb NVRAM chip in their lineup, I'm not certain--but that would give the same facility in a battery-backed solution.

Sure; or you could get one with the battery built in:
http://www.ebay.com/itm/DS1235Y-150...624?pt=LH_DefaultDomain_0&hash=item1e7666bdc8

Edit: Ya beat me to it again, Chuck; yes, the Maxim/Dallas DS1225Y NVRAM is 64kb.

I love you.
Both, at the same time.

:)
 
According to this all 3Com 3C509B cards (with BOOT ROM sockets) supports Flash EEPROMs and can be flashed in place.

Does anyone know which kinds of PROMs can be used with these NICs? Speaking of NVRAM, I suppose a DS1230Y would work?

BTW, what would be a good program for flashing these things?
 
My NVSRAM arrived today :)
I forgot one critical detail... Programming it.

Uniflash just barfs so I assume it's just not written to handle writing to SRAM.
Unless the card wasn't designed for in-place programming?
 
No luck trying to flash it on the Realtek NIC so I tried again with no luck on a 3Com 3x905b-TX.
I lined up the pins correctly, unless it's just incompatible with the 32pin socket?

The 3com utilities all say 128KB but refuse to write to it, presumably because it isn't a real flash chip.
Uniflash did give me an address of 0x80000000 so I tried manually loaded the ROM to that location using debug.com but the contents of that location just got erased upon reboot.

Any thoughts?
 
So far my best guess is that the NIC is not detecting it, perhaps it does it's own internal checks or something.
Since neither the card or utilities detect a proper flash chip it's not enabled or mapped into memory which would explain a lot really.

I think this is looking like a dead end, unless older ISA NICs aren't as picky and allow 64KB ROMs.
I know I have an SMC card which you can set the ROM address with a jumper.
 
The 3com utilities all say 128KB but refuse to write to it, presumably because it isn't a real flash chip.
Uniflash did give me an address of 0x80000000 so I tried manually loaded the ROM to that location using debug.com but the contents of that location just got erased upon reboot.

Any thoughts?

You're booted in real-mode DOS? If not, why not?
 
I did.
Uniflash said the ROM was at 0x80000000 and linux said it's at 0x30000000 but disabled.

Both locations are erased on reboot so I'm assuming the NVSRAM isn't actually being mapped.
 
Okay, you've got me baffled. Real-mode DOS can address up to 0xFFFFF. That's a lot fewer digits than what you're quoting--and maybe that's where the problem is. Take a look at some of the flash utilities used to program the BIOS extension on the XT-IDE card, for example.
 
Come to think of it, yeah it didn't make sense since those locations aren't anywhere near valid addresses for option ROMs.

E:
I think I'm going to try manually setting the card's config registers to force-enable the ROM socket and set it to a valid address.
Who knows, maybe it'll work.

E2:
Didn't work, I guess I'll have to shelve this project for the time being.
 
Last edited:
Back
Top