diff options
Diffstat (limited to 'contrib/eepro100notes/flash-2.txt')
-rw-r--r-- | contrib/eepro100notes/flash-2.txt | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/contrib/eepro100notes/flash-2.txt b/contrib/eepro100notes/flash-2.txt new file mode 100644 index 00000000..1128c30e --- /dev/null +++ b/contrib/eepro100notes/flash-2.txt @@ -0,0 +1,149 @@ +Subject: Look Mom, no PROM burner! (eepro100b flashing instructions) :-) +Date: Sun, 23 Jan 2000 01:53:08 -0500 +x-sender: mdc%thinguin.org@cdi.entity.com +x-mailer: Claris Emailer 2.0v3, January 22, 1998 +From: Marty Connor <mdc@thinguin.org> +To: "Netboot List" <netboot@baghira.han.de> +Mime-Version: 1.0 +Content-Type: text/plain; charset="US-ASCII" +Message-ID: <1263512144-341319205@entity.com> + +Continuing the Etherboot World Domination theme, I noticed that there was +a PCI ethernet card on my bookshelf that still contained the original +vendor's code in its flash memory. The card virtually cried out to be +flashed with Etherboot 4.4.1. :-) + +After having figured out how to flash the 3C905C last week, and owing to +the fact that the temperature here in Cambridge, Massachusetts (USA) has +dropped well below freezing, I decided to explore the possibility of +flashing the Intel eepro100b that was sitting on my bookcase. + +After determining that it was unlikely that one could flash the chip in +user mode under linux like the 3C509C, I turned to other options. (the +reason is that the flash is memory mapped to a place that causes a core +dump if accessed. i suppose one could to patch the kernel to flash the +card, or add a linux device driver, but... :-) + +By the way, If you are ever looking for Linux utilities for Ethernet +cards, you may want to check out: + + http://cesdis.gsfc.nasa.gov/linux/diag/ + +which is a treasure trove of tools for manipulating and testing Ethernet +cards, all with source, courtesy of Donald Becker. + +At this point, I felt it was time to make a virtual trip to the Intel +site (http://www.intel.com/), and search for utilities that might work +with the eepro100B. I found two candidates: FUTIL and FBOOT. I +downloaded, decompressed, and transferred them to a DOS formatted floppy. +Next I determined (after a few tries) that F8 will let me get to DOS +instead of booting windows. (I tend to avoid Windows when I can). + +I first tried FUTIL.EXE. No good. It told me it didn't recognize the +flash on my eepro100B. how unfortunate. and I had such hopes :-) + +Next I tested FBOOT.EXE (available at +http://support.intel.com/support/network/adapter/pro100/100PBOOT.htm) +This program did in fact recognize my eepro100b card. + +The thing about FBOOT however, is that it thinks it only can load certain +files. I of course needed to load an Etherboot image. It appeared to +have no option for doing that. Things looked grim. + +Then I noticed that FBOOT was kind enough to do the following dialog: + + Select Option (U)pdate or (R)estore: U + +I chose Update and it then offered to back up my flash rom for later +restore: + + Create Restore Image (Y)es or (N)o: Y + +I chose "Y" and it proceeded to write a file of my flash memory, which +contained the Intel code. + + Writing FLASH image to file... 100% + +It then erased the device: + + Erasing FLASH Device... 100% + +and then programmed it with fresh code (stored inside the program, no +doubt): + + Programming FLASH Device... 100% + +So now I had a backup of the Intel boot code in a file strangely called: + + 2794FC60.FLS + +Hmmmm, interesting name. The MAC address of the card is 09902794FC60. +They just name the file with the last 4 octets of the MAC address and +.FLS. The file is exactly 65536 bytes, which would make sense for a 64K +Flash Memory device. + +Then I got to thinking, I wonder how carefully the "restore" part of +FBOOT looks at what it is loading? What if I took an Etherboot .rom +file, padded it with 48K of 0xFFs and named it 2794FC60.FLS. What if I +then told FBOOT.EXE to "restore" that? + +Well, I guess by now, you know it worked :-) + +The card came up with the delightful Etherboot banner, Did DHCP, tftp, +and started a kernel. + +The only unfortunate part is that you need to do this under DOS because +you seem to need to be in real mode to program the card. Oh well, +sacrifices have to be made :-) + +So, in summary, to prepare Etherboot image for flashing into the Intel +EEPRO100B card with FBOOT, you need to first make an eepro100.rom file, +as usual. + +Then, see how large it is, with an "ls -l eepro100.rom". the answer will +probably be 16,384. You need to pad it with hex FFs to make it 64K for +FBOOT. I used the following two lines to create the flash image file. + + $ perl -e 'print "\xFF" x 49152' > 48kpad.bin + $ cat eepro100.rom 48kpad.bin > 2794FC60.FLS + +Next write it to a DOS Floppy: + + $ mount -t msdos /dev/fd0 /mnt/floppy + $ cp 2794FC60.FLS /mnt/floppy + $ umount /mnt/floppy + +Now you need to get to DOS. You could actually use a bootable DOS floppy +with FBOOT.EXE and 2794FC60.FLS on it. I started a Windows box and hit +F8 right before Windows started, and chose option 5, "Command Prompt +Only", which gives you DOS. This program can't run in a DOS window under +Windows or anything like that. You need to be in real DOS. + +Next it's time to run FBOOT. It will detect your ethernet card(s), ask +you which one you want to program, and let you choose it from a menu. + +now the fun part: + + Select Option (U)pdate or (R)estore: R + Erasing FLASH Device... 100% + Writing FLASH image from file... 100% + +Time to reboot and let Etherboot take over. + +So there you go, a way to make Intel EEPRO100Bs play nicely with +Etherboot. Maybe we should put these instructions in the Etherboot +contrib directory so people who have eepro100b cards will be able to +avoid 3C905C envy :-) + +I hope this helps a few people out. + +Regards, + +Marty + +--- + Name: Martin D. Connor +US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA + Voice: (617) 491-6935, Fax: (617) 491-7046 + Email: mdc@thinguin.org + Web: http://www.thinguin.org/ |