I've always wanted to play with netbooting, so I got prettey excited when I found that one of my friends had a RTL8139 card with a flash chip lying around. Unfortunately, the boot rom code say there's some checksum error right when it's loaded by the BIOS.

The flash rom chip had a sticker saying "lenten REBORN", and the chip itself has the following text on it: AMIC A275308-70 9941I F5X31 . The only information I've been able to find with google seems to indicate that this is a graphics card chip? :-s

I've tried booting into DOS and inserting the flash rom in the socket after the system is booted (to avoid the checksum error message + hang at boottime), but the rtflash.exe utility from realtek says the flash type is unknown.

I'm wondering if somebody perhaps put a wrong chip on the board?

Any help?
Posted on 2005-01-13 22:09:27 by f0dder
maybe its a wrong bootrom indeed.
RTL8139 supports roms up to 128Kb (at least that's what written in the manual) and A275308-70 rom is 512Kb
Posted on 2005-01-14 07:39:49 by arafel
Too bad I can't find any flashable chips of the right type anywhere :( Has to be 28-pin... what's it called... DIM?, but seems to be nowhere to be found. Okay, there's http://www.disklessworkstations.com/cgi-bin/web/150011.html , but that's pretty expensive considering the flash chip itself should be $1-7 apiece. Bummer.
Posted on 2005-01-14 08:42:47 by f0dder
Lenten Reborn cards are PCI cards to reset a computer's harddisk to a previous state. My old school has them. Not sure if they work through netboot, although a quick google suggests they don't. So in that case it's probably a wrong chip.

Bootrom howto:


Page that sells EEPROMS:

Posted on 2005-01-14 15:22:24 by Qweerdy
Journying into the world of electronics...

Okay, so I realized that the NIC can use any generic ROM - just not flash it. I actually knew that from the start, since the ROM is unsupported, but still gets loaded (I just didn't think much about it).

RTFLASH.EXE supports:
ATMEL: AT29C512 AT29C010 AT49LV512 AT49001NT
SST: SST39LV512 SST39SF512 SST39VF010

I was pointed to www.digikey.com, www.arrow.com and www.mouser.com , but unfortunately I cannot find the chips in DIP-28 packages - it's DIP-32, or some other configurations.

Then there's http://www.disklessworkstations.com/cgi-bin/web/150011.html?id=eQf7ZcR5 , but that really seems like a ripoff, when the supported chips should be about $1-$7 apiece.

I was also pointed to http://ctflasher.sourceforge.net/ , which is interesting because it enables me to flash ROMs that the rtl8139 doesn't support, through the linux program. I don't know where to get any of those roms either, though.

So... what should I expect to pay for some generic ROM flasher? It doesn't need to be overly fancy or smart, although I would prefer somthing that does NOT take 10 minutes to flash a 128kb ROM, since the rtl8139 card can do it much faster.
Posted on 2005-01-14 15:47:07 by f0dder
hey f0dder lol, if your the risky type you could use CTFlash. I used it with both my P166 and a my P3-450 to "hotflash" BIOS chips. First you make sure that the BIOS is cacheable. Then boot the system from a floppy and pop out the original BIOS chip and put in the new one and flash away using CTFlash. I did this procedure about 3 or 4 times. Because I once misflashed my P3-450's BIOS, so I did this procedure on my main PC. Also my bro bought a CPU that his board couldnt handle with the original BIOS, so I used my 450 to update his BIOS chip and popped it back in his board and it worked perfectly. If you have a spare Pentium lying around you can flash your NIC ROM with it. Though be warned, my P166 board (Intel 430VX I believe) is unable to access more than 128KB of ROM. So it is useless to try and flash anything above 128KB (if u flash a 256KB chip, two images of the first 128KB of file will appear).

Also to flash a chip in your board it has to be compliant with the 32-pin DIP JEDEC flash standard (standard pinout).
Posted on 2005-01-15 16:59:30 by x86asm
Unfortunately, the sockets on the rtl8139s I have are 26-pin, and so are the two chips I have. I don't suppose those would work with a 32-pin flash bios socket? :) (and even if it's possible to do this, I don't think the AMIC A275308-70 chips are supported by c't flasher).

Oh well, I'm getting an intel EtherPro 100+/M, which comes with a *soldered-on* flash chip - ie, I'm 100% sure that there's a flash rom I can play with, unlike the "flash rom enabled" cards that come with just a socket. I'm getting it 2nd-hand, so it's okay cheap.

The etherpro is a pretty nice card btw, cpu offloading and whatnot.
Posted on 2005-01-15 17:38:58 by f0dder
Just thought I'd post a little update. I got the eepro100 card today, and after a couple of minutes, I found the intel tools for flashing. Another couple of minutes at http://rom-o-matic.net/ , and I had an etherboot image, ready for flashing.

Together with a DHCP server and the TFTP daemon from http://tftpd32.jounin.net/ , it is now *very* fast to boot my toy OS kernel - no more mucking around with floppies or whatever.

Now I just need a dedicated box for testing, rather than telling my brothers that "no, you cannot play any games right now, I'm using your box" - fortunately, one of my friends might have some pieces lying about :)
Posted on 2005-01-18 09:43:00 by f0dder
sounds cool! but eh, about testing your OS, what about vmware / bochs? :)
Posted on 2005-01-18 10:44:04 by lifewire
I cannot get networking to work neither in bochs nor qemu :( - and in vmware, the network transfer rate is around 64kb/s. But yes, I _can_ use VMs to perform testing, and with the build system I use it's not that much of an inconvenience. Nothign beats a real, dedicated machine for testing, though - and network booting with the intel card is so much faster than anything else.

There will still be a good amount of development being done with VMs, though. I need to code at least a rudimentary network driver before net booting becomes really interesting (no good in just booting the kernel, if I can't remote control it), and before I write a driver, I need more code in other areas.

But it's definitely a nice card, not just because of the flash rom. It supports CPU offloading and whatnot :-)
Posted on 2005-01-18 12:14:50 by f0dder
And yet an update:

Good old friend of mine has just been here, they have a basement at his workplace with a lot of "old junk" that's just lying around, waiting to be discarded. I now have a PII-MMX 350MHz with 64megs of PC100 RAM - perfect for testing :). It also had two 3COM 905 cards in it, but I'm going to use the eepro100+M card (the 3COMs have no boot flash etc.)

I've stuffed in a voodoo3 2000 PCI I had lying around, and a 40gig IBM "death"star, which had to be clipped to 32 gigs to be visible to the BIOS. I've got no idea what brand the motherboard is, but it's a 440BX chipset

If I'm really lucky, he can get his hand on some old P3 server hardware with noisy SCSI disks, *perhaps* a dual-CPU one. Pretty nifty stuff anyway :)
Posted on 2005-01-21 18:18:49 by f0dder
Perhaps one of my old work on this would surprise you :-D . I used a "hacked" SCSI controller card at no cost to do my OS experimentation from the flashrom. It booted "exactly" like etherboot lan card, when I choose to boot from LAN within the BIOS. Take a look my docs on this here. Hope that it's pretty much informative. The place to download the PCI bootloader (my "ugly" expansion ROM OS) is in my web's main page. Anyway, this is only my approach, perhaps you have a different goal than mine. I only want to play with the PCI stuff, rather than playing with true networking stuff :-D
Posted on 2005-02-17 09:28:17 by Pinczakko
Yes, I saw your workYes, I saw your work and it was certainly pretty interesting - I didn't have any SCSI controllers lying around, though... :roll: :)

My purpose with netbooting is to have a more rapid development cycle, rather than messing with floppies or whatever. Using etherboot means I don't have to worry about programming the NIC code myself, I simply get my kernel loaded across the LAN - pretty nifty.

Of course it would be fun, some time, to code my own network loader, or perhaps put the OS directly on the NIC ROM (it should stay below 64k for a while yet ;)), but fast development cycle was my main purpose with all this.

The PII-MMX/350 with eepro100 is a really nice test machine, and it's cute network booting my simple kernel, to which I added a textmode 'matrix' effect done by a friend :)
Posted on 2005-02-17 11:08:15 by f0dder
Some motherboard LANs support bootp loading, you may be able to use that instead of a NIC with ROM.

I'm not sure if it's an option for you or not, but it's just a thought.

Posted on 2005-02-17 11:21:27 by Mirno
Mirno, I have machines that support that - but it seems to be intel PXE format, which I haven't been able to find any reasonable references for :/
Posted on 2005-02-17 11:38:35 by f0dder
Mirno, I have machines that support that - but it seems to be intel PXE format, which I haven't been able to find any reasonable references for :/

Actually from system programming point of view, it's not so different with the "NIC with ROM" configuration, since they both lying in the PCI address/configuration space. The difference is only where the bootp flashrom image initially was placed, in the "NIC with ROM" case it's in the PCI card, while in the "mainboard with LAN" case it's embedded in the mainboard BIOS as PCI expansion ROM to the system bios file (original.tmp, etc, in Award BIOS). Eventhough this difference, they both not executed in place , since the PCI spec already altered that any PCI expansion ROM have to be loaded and executed from RAM. CMIIW :wink:
Posted on 2005-02-17 11:59:30 by Pinczakko
Well, where the code comes from doesn't really matter - but the kernel format the loader expects obviously *does* matter :). I'm using the "network boot interface tagged image format" with etherboot, as it is very simple to use. But I haven't found documentation on the PXE format that intel-style bootrom expects... and I don't really like reading the etherboot source ;)
Posted on 2005-02-17 12:36:29 by f0dder