==== ROM chips for Realtek 8139 NICs ==== The 8139 is probably the most cloned NIC in the world. The design of the ethernet controller chip accomodates ROMs up to 128 kB (1024 kilobit) which require a 32-pin socket. Some OEMs however use a 28 pin socket because that can hold a 27C512 (and smaller), which can hold up to 64kB (512 kilobit) of code, more than enough for most cases. Those 28-pin-sockets are often soldered in where also 32-pin sockets would have matched - the two sizes are backwards compatible. You might see additional, unused solder points besides the chip socket on 28-pin socket equipped cards. Also recent versions of the 8139 controller have the capability of programming EEPROMs (electrically erasable chips - in contrast to the 27C series which are UV-erasable, which the window on top is used for) in situ. EEPROMs also require a 32 pin socket. But this programming capability is not always implemented by OEMs because it requires extra circuitry external to the controller and therefore extra price (a significant fraction of the $5 price). So the programming utility will not work with most models (you might be lucky, though). If you have a 28-pin socket, you can either use 27C256 (32kB/256 kilobit) or 27C512 (64kB/512 kilobit). You will have to program them in an external EPROM programmer. If you have a 32 pin sockets, the 27C010 (128kB/1024 kilobit) would also be feasible. For the two smaller chips, those have to be aligned to the non-notch end of the socket, with two empty socket pins on each side between the chip's notched end and the socket notch. If you burn ROM files into ROM chips that do not have the exact same size (Etherboot ROM files will be aligned to 32kB, or 64kB if larger because of features/drivers), there might be problems in detecting the ROM. Three different methods have been desribed for using 32kB files in a 64kB ROM: - burning the same file twice into the ROM (worked for A. Hoffmeister on some cards) - burning the file to the first 32 kB (worked for A. Hoffmeister on some cards) - burning the file to the last 32 kB Current "El Cheapo" RTL-8139 [[http://www.heise.de/preisvergleich/?cat=nwp&xf=1030_Realtek~988_BootRom|NICs]] with 32 pin bootprom for sale, such as [[http://www.longshine.de/longshine/p_100mbit.php?lang=ger|LCS-8038TXR7]] 64 KByte with 32 pin DIL chip, 5 Volt, [[http://de.futureelectronics.com/de/technologies/semiconductors/memory/flash/nor/Seiten/3764149-SST39SF040-70-4C-PHE.aspx|supported]] by [[http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=6&PFid=6&Level=5&Conn=4&DownTypeID=3&GetDown=false&SortByDesc=0|RTLflash.exe]] v1.5 . 128 KByte chips are difficult (yet [[http://pksato.blogspot.com/2009/02/gravando-uma-perom.html|possible]]) with some mainboards/NICs/drivers (128 KByte is **total max.** option rom size already!), so starting with 64 KByte or 32 KByte EEPROMs is easier. 32 pin [[http://parts.digikey.ca/1/1/10206-32-pin-zif-socket-tin-32-6554-10.html|ZIF socket]] for repeated flashing with the NIC. For self patching BIOS routine read [[http://sites.google.com/site/pinczakko/pinczakko-s-guide-to-self-patching-expansion-rom-source-code|Mr Salihun]].