I have rewritten the Etherboot tulip driver to incorporate media
detection (and other) code from the Linux tulip driver. This should mean
that the Etherboot driver supports a lot more tulip and clone cards. I
have tested the driver with with the following cards:
DEC-21041A genuine DEC Tulip card
MX98715 Macronix Tulip Clone
ADMTEK0985 Linksys v4.1 LNE100TX
LC82C168 Netgear FA310TX
LC82C115 Linksys v2.0 LNE100TX
I have installed a test version of Etherboot on rom-o-matic.net that uses
this new tulip driver. The version with the new tulip driver is called
"4.7.24mc1" to differentiate it from the official 4.7.24 release. To get
a test image, just choose "tulip" as your NIC type. The new tulip driver
is the only change.
There are some things you should know:
- This driver is BIG. It started out as 800 lines of code, and is now
almost *2000* lines. I may be able to shorten it, but the Linux driver
tries to support over 140 cards and clones, so there is a lot of code
to deal with media detection and various ways of getting the MAC
address.
Consider this a first pass. I'm sure together we can improve it.
- The ROM images this driver produces are BIG. The .lzrom file is 32K.
The runtime size is over 40K. There could be some problems on machines
where the BIOS is borrowing some memory.
- I have burned working 32KB ROMs for 4 of the above cards, and they do
work.
You need to use at least a 27C256 (that's 256K *bits* or 32K bytes).
I'd recommend using Etherboot version 4.7.24 if you want to compile
this
yourself.
The source for the new tulip.c file is on http://www.thinguin.org for
those who want to check it out.
I suspect that we may have to make changes to save space because the
driver is so large, especially where people need a lot of Etherboot
options. There are things that can be done. Right now, I need people to
try the driver and see it if basically works.
The Linux tulip driver is one of the most amazing pieces of code I have
ever studied. My hat is off to Donald Becker and the people who maintain
it. It took me almost 5 continuous days of studying and coding to
understand it well enough to rewrite and incorporate the necessary
routines into Etherboot.
I consider this rewrite to be a starting point. I welcome (and hope)
that others will find ways to shrink the code (conditionally compiling a
lot of printfs, using 2 receive buffers instead of 4, etc.) and that we
will be able use lots of old DEC 21xxx and clone based cards for network
booting.
I'm going to take a long rest now.
Have fun, and thanks for testing this! Please send bug reports and
questions to the Etherboot-users and Etherboot-developers lists, as
appropriate. I'm way behind in answering my mail ;-)
Marty
---
Try: http://rom-o-matic.net/ to make Etherboot images instantly.
Name: Marty Connor
US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA
Voice: (617) 491-6935, Fax: (617) 491-7046
Email: md...@th...
Web: http://www.thinguin.org/
|