Very interesting stonent- I'll have to try that as soon as I get my LCD connected, my server built, my FM xmitter finished and a few other things.
I had an idea for a while but was never able to test it until now. My local used computer store has a big bin full of old motherboards for 2$ each. So I thought I could harvest the bios chips and flash them with boot proms. I tried and it worked! Here's what I did.
Flash Chip : 29ee010 128KB 5V Flash
Software : Uniflash 1.30
3c59xcfg.exe (from the driver set on 3com.com)
Compressed Rom image from Rom-O-Matic
http://www.rom-o-matic.net/5.1.8/
Cygwin for Windows with Perl
NIC : 3Com 3C595-TX (PCI ID: 10b7:5950)
First before you do anything, make sure that you have the correct rom image by using the lzdisk version of the rom (dd if=3c595.lzdsk of=/dev/fd0) or (fdimage 3c595.dsk a: {You'll have to shorten the long filename that rom-o-matic makes into an 8.3 filename for fdimage to work} ). Once you have confirmed the image works with the card, go to the next step.
First I tried to flash the 16kb boot rom image into the 128kb flash chip. Uniflash gave me an error saying there was a size mismatch and I said continue anyway. Then Uniflash crashed with error #100.
I figured it didn't like the mismatched file so I did the following within Cygwin (linux will work as well)
(cat 5950.rom; perl -e 'print "\xFF" x 114688') > 5950128.rom
What this does is takes the 16kb rom file (in this case 5950.rom) and pads it with 114688 bytes of xFF. You end up with a 131072 byte file beginning with the 16kb image.
I then started up uniflash and hot-swapped the flash chip on the motherboard and loaded the 128KB image. (I had earlier tried to flash the chip while it was in the 3com card, but uniflash said it was write protected) It gave me a boot block error and recommended flashing with the boot block. I said "ok". I then exited uniflash but then started it again and flashed one more time for good measure. This time it didn't give me a boot block error.
I put the newly flashed chip into the 3C595 card and booted. But nothing. The card was detected but it didn't load the boot rom. I then remembered 3c59xcfg.exe. I loaded it and enabled the rom with 16kb. Again it didn't work. So I just set to the largest rom it supported which was 64kb.
Finally.... Success!!
So now I can set up a computer as a diskless workstation to load Knoppix via net boot or any of the other thin/thick client linux distros.
I guess I was just lucky that this NIC had a socket that would fit the larger 32 pin bios chips. I've seen other nics that only took 28 pin bios chips. I'm not sure what would happen if you flashed a chip and let the extra 4 pins hang over the edge.. If they are address pins then it might not matter.. I have more NICs floating around so I might try those also.
I hope you found this informative and of use to you.
Very interesting stonent- I'll have to try that as soon as I get my LCD connected, my server built, my FM xmitter finished and a few other things.
Does this mean we can use just an old motherboard instead of a ROM Flasher by "hot-swapping" the BIOS?
Yes, that was what I did since I have a lot of old boards laying around.
Hmmm, really interesting! Just out of curiosity, what kinds of memory can be flashed like this? I am thinking of the chips with a little "window" for UV light on their upper side (How are they called? EEPROMS I believe). Those are used in many devices for firmware. Since you have many boards sitting around, perhaps you could try one of those as well.Originally Posted by stonent
Those are eproms, you can't flash them, you have to have an eprom programmer which I don't.
by hotswap, do you mean unplug the flash when the system is on ? I am a bit confused here.
BTW, is there a 'pure' linux solution as uniflash seems to be a window program
Yes that is exactly what I mean. Uniflash runs under DOS or freedos. If you want a linux version I guess google for it. I dunno.
AMD EPYC 7282 CPU Processor 16 Cores 32 Threads 2.8GHZ up to 3.2GHZ 120W no lock
$75.00
AMD Ryzen 9 5950X 16-core 32-thread Desktop Processor
$319.99
Intel Xeon E5-2697A V4 2.6GHz CPU Processor 16-Core Socket LGA2011 SR2K1
$39.99
Intel - Core i7-12700K Desktop Processor 12 (8P+4E) Cores up to 5.0 GHz Unloc...
$419.99
Intel - Core i9-12900K Desktop Processor 16 (8P+8E) Cores up to 5.2 GHz Unloc...
$619.99
Intel Quad Core i3-12100 3.3GHz 12MB LGA1700 12th Gen. CPU Processor SRL62
$45.96
AMD Ryzen 5 4500 6-Core 3.6GHz Socket AM4 65W CPU Desktop Processor
$79.00
Intel Core i9-13900KF Unlocked Desktop Processor - 24 Cores (8P+16E) & 32 Thread
$539.99
AMD Ryzen 7 7700 Processor (5.3 GHz, 8 Cores, Socket AM5) Boxed -...
$259.99
Intel Core i7-3770 3.40GHz 8MB Quad Core Socket LGA1155 CPU Processor SR0PK
$35.00