PDA

View Full Version : Cheapest way to add ROM to NIC?



TheLazy1
April 10th, 2013, 08:33 PM
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.
:(

Chuck(G)
April 10th, 2013, 10:32 PM
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.

TheLazy1
April 11th, 2013, 06:08 AM
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?

Chuck(G)
April 11th, 2013, 08:33 AM
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.

MikeS
April 11th, 2013, 08:45 AM
Could you theoretically use SRAM if you kept it separately powered?Sure; or you could get one with the battery built in:
http://www.ebay.com/itm/DS1235Y-150-Manu-DALLAS-Encapsulation-DIP-28-NVRAM-Battery-Based-/130835463624?pt=LH_DefaultDomain_0&hash=item1e7666bdc8

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

TheLazy1
April 11th, 2013, 08:54 AM
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-Manu-DALLAS-Encapsulation-DIP-28-NVRAM-Battery-Based-/130835463624?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.

:)

MikeS
April 11th, 2013, 09:03 AM
I love you.
Both, at the same time.

:)Happens all the time ;-)

Here's a 64kb DS1225:
http://www.ebay.com/itm/DS1225AD-200-Manu-DALLAS-Encapsulation-DIP-64k-Nonvolatile-SRAM-/120920866387?pt=LH_DefaultDomain_0&hash=item1c2771fe53

Krille
April 11th, 2013, 11:18 PM
According to this (http://www.han.de/~gero/netboot/archive/msg04479.html) 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 (http://www.ebay.com/itm/170916178198) would work?

BTW, what would be a good program for flashing these things?

TheLazy1
April 22nd, 2013, 01:05 PM
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?

TheLazy1
April 23rd, 2013, 09:49 AM
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?

TheLazy1
April 25th, 2013, 06:50 AM
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.

Chuck(G)
April 25th, 2013, 07:59 AM
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?

TheLazy1
April 25th, 2013, 08:28 AM
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.

Chuck(G)
April 25th, 2013, 09:04 AM
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.

TheLazy1
April 25th, 2013, 02:47 PM
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.

Krille
May 2nd, 2013, 11:41 AM
Have you tried using XTIDECFG?