====== Burning gPXE into 3COM 3C905 cards ======
These cards are possibly the easiest to flash, needing no MS-DOS bootdisk or anything. It can be done inside a standard linux system.
This method is known to work for 3C905B and 3C905C, and is expected to work with other members of the 3C90xB family, plus the 3C980C.
It is assumed that you have already generated the *.rom image for your card.
==== Getting flashrom ====
There are various ways to get [[http://flashrom.org|flashrom]]. It may be available in your distribution (eg: sudo aptitude install flashrom), or optionally you can get it via svn and compile it:
svn co svn://coreboot.org/flashrom/trunk flashrom
cd flashrom
make
make install
The last command must be run as root.
==== Padding the ROM image ====
The image created by gPXE will probably be of some irregular size. Mine, for example, was about 55kiB.
We need to find out what size your rom chip is. As root:
flashrom -p nic3com | grep "Found chip"
Mine, for example, was 64KiB:
Found chip "SST SST39VF512" (64 KB, Parallel) at physical address 0xffff0000.
Now we bulk out the image with zeroes:
cat gPXEoutputFile.rom /dev/zero | dd bs=1k count=64 > fileToFlash.rom
Replace gPXEoutputFile.rom with the appropriate file and count=64 with count=[your chip size in kiB].
If you look at fileToFlash.rom, it should now be exactly 64kiB, or whatever size you specified.
==== Burning the gPXE ROM ====
Now you're ready to burn it. As root, simply:
flashrom -p nic3com -w fileToFlash.rom
If everything went well, the last line should say:
Verifying flash... VERIFIED.