Next Previous Contents

2. Introduction to Etherboot

2.1 What is Etherboot?

Etherboot is a software package for creating ROM images that can download code over an Ethernet network to be executed on an x86 computer. Many network adapters have a socket where a ROM chip can be installed. Etherboot is code that can be put in such a ROM. Etherboot can also be booted from floppies (mainly for testing purposes but some people have been known to use this all the time) and hard disk, as a LILO/SYSLINUX compatible image, or from a hard disk partition.

Etherboot requires the PC architecture, it does not work for other Linux platforms such as Alphas or Suns. Typically the computer is diskless and the code is Linux or FreeBSD, but these are not the only possibilities. The code uses the bootp, tftp and NFS Internet Protocols, among others.

For a somewhat out of date talk/tutorial type introduction to what Etherboot does and how to set it up, see my SLUG talk. You may wish to review this before reading further.

2.2 Legal status of the code

Etherboot is Open Source under the GNU General Public License Version 2 (GPL2). The license conditions can be obtained from the file COPYING in the top directory of the distribution or viewed at www.gnu.org. In particular note that if you are distributing binaries generated from Etherboot, such as ROMs or ROM images, you must provide or promise to provide the user with the source. If you have not made private changes to the code, you can do this by pointing the user to the Etherboot home page, noting the release version of course. If you have made private changes to the code, then you must distribute those changes too with binary distributions.

The GPL applies to the whole package but portions may be used under other licenses. See the section on source copyrights for details, file by file. Please support Open Source by joining the community and sharing. See the Etherboot home page for some ways you can help Etherboot.

No Warranty or Support: Etherboot comes with NO warranties of any kind. It is hoped that it will be useful to you, but NO responsibility is accepted for any outcome of using it. Etherboot also comes with NO support, although you may get helpful advice from the mailing lists listed on the Etherboot home page.

2.3 What hardware is supported?

The following is the current NIC configuration file as of 2003-07-28.

Even if your NIC does not appear in the list, it may still be supported if the chip is one of those supported. Many OEMs use chips from foundries. An exhaustive list of brand names is impossible. The best strategy is to read the number on the LAN controller chip on the board.


# This is the config file for creating Makefile rules for Etherboot ROMs
#
# To make a ROM for a supported NIC locate the appropriate family
# and add a line of the form
#
# ROM           PCI-IDs         Comment
#
# ROM is the desired output name for both .rom and .lzrom images.
# PCI IDs are the PCI vendor and device IDs of the PCI NIC
# For ISA NICs put -
# Comment will be copied into config.c for display when detected
#
# All PCI ROMs that share a single driver are only built once (because they
# only have different PCI-IDs, but identical code).  ISA ROMS are built for
# each ROM type, because different vendors used a different logic around the
# basic chip.  The most popular example is the NS8390, which some cards use
# in PIO mode, some in DMA mode.  Two chips currently don't fit into this nice
# black-and-white scheme (the Lance and the NS8390).  Their driver deals
# with both PCI and ISA cards.  These drivers will be treated similarly to
# ISA only drivers by genrules.pl and are compiled for each ROM type that is
# ISA, and additionally compiled for the PCI card type.
#
# Then do: make clean, make Roms and make
#
# Please send additions to this file to <kenUNDERSCOREyap AT users PERIOD sourceforge PERIOD net>

# Start of configuration

family          3c595
# 3c59x cards (Vortex) and 3c900 cards
# If your 3c900 NIC detects but fails to work, e.g. no link light, with
# the 3c90x driver, try using the 3c595 driver. I have one report that the
# 3c595 driver handles these NICs properly. (The 595 driver uses the
# programmed I/O mode of operation, whereas the 90x driver uses the bus
# mastering mode. These NICs are capable of either mode.) When it comes to
# making a ROM, as usual, you must choose the correct image, the one that
# contains the same PCI IDs as your NIC.
3c590   0x10b7,0x5900   3Com590
3c595   0x10b7,0x5950   3Com595
3c595-1 0x10b7,0x5951   3Com595
3c595-2 0x10b7,0x5952   3Com595
3c900-tpo       0x10b7,0x9000   3Com900-TPO
3c900-t4        0x10b7,0x9001   3Com900-Combo
3c900b-tpo      0x10b7,0x9004   3Com900B-TPO
3c900b-combo    0x10b7,0x9005   3Com900B-Combo
3c900b-tpb2     0x10b7,0x9006   3Com900B-2/T
3c900b-fl       0x10b7,0x900a   3Com900B-FL
3c980-cyclone-1 0x10b7,0x9800   3Com980-Cyclone
3c9805-1        0x10b7,0x9805   3Com9805
3csoho100-tx-1  0x10b7,0x7646   3CSOHO100-TX
3c450-1 0x10b7,0x4500   3Com450 HomePNA Tornado

family          3c90x
3c905-tpo       0x10b7,0x9000   3Com900-TPO
3c905-t4        0x10b7,0x9001   3Com900-Combo
3c905-tpo100    0x10b7,0x9050   3Com905-TX
3c905-combo     0x10b7,0x9051   3Com905-T4
3c905b-tpo      0x10b7,0x9004   3Com900B-TPO
3c905b-combo    0x10b7,0x9005   3Com900B-Combo
3c905b-tpb2     0x10b7,0x9006   3Com900B-2/T
3c905b-fl       0x10b7,0x900a   3Com900B-FL
3c905b-tpo100   0x10b7,0x9055   3Com905B-TX
3c905b-t4       0x10b7,0x9056   3Com905B-T4
3c905b-9058     0x10b7,0x9058   3Com905B-9058
3c905b-fx       0x10b7,0x905a   3Com905B-FL
3c905c-tpo      0x10b7,0x9200   3Com905C-TXM
3c980   0x10b7,0x9800   3Com980-Cyclone
3c9805  0x10b7,0x9805   3Com9805
3csoho100-tx    0x10b7,0x7646   3CSOHO100-TX
3c450   0x10b7,0x4500   3Com450 HomePNA Tornado

family          eepro100
id1029  0x8086,0x1029   Intel EtherExpressPro100 ID1029
id1030  0x8086,0x1030   Intel EtherExpressPro100 ID1030
82801cam        0x8086,0x1031   Intel 82801CAM (ICH3) Chipset Ethernet Controller
eepro100-1032   0x8086,0x1032   Intel PRO/100 VE Network Connection
eepro100-1033   0x8086,0x1033   Intel PRO/100 VM Network Connection
eepro100-1034   0x8086,0x1034   Intel PRO/100 VM Network Connection
eepro100-1035   0x8086,0x1035   Intel 82801CAM (ICH3) Chipset Ethernet Controller
eepro100-1036   0x8086,0x1036   Intel 82801CAM (ICH3) Chipset Ethernet Controller
eepro100-1037   0x8086,0x1037   Intel 82801CAM (ICH3) Chipset Ethernet Controller
id1038  0x8086,0x1038   Intel PRO/100 VM Network Connection
82562et 0x8086,0x1039   Intel PRO100 VE 82562ET
id103a  0x8086,0x103a   Intel Corporation 82559 InBusiness 10/100
82562etb        0x8086,0x103b   Intel PRO100 VE 82562ETB
eepro100-103c   0x8086,0x103c   Intel PRO/100 VM Network Connection
eepro100-103d   0x8086,0x103d   Intel PRO/100 VE Network Connection
eepro100-103e   0x8086,0x103e   Intel PRO/100 VM Network Connection
82551qm 0x8086,0x1059   Intel PRO/100 M Mobile Connection
82559er 0x8086,0x1209   Intel EtherExpressPro100 82559ER
82865   0x8086,0x1227   Intel 82865 EtherExpress PRO/100A
82556   0x8086,0x1228   Intel 82556 EtherExpress PRO/100 Smart
eepro100        0x8086,0x1229   Intel EtherExpressPro100
82562em 0x8086,0x2449   Intel EtherExpressPro100 82562EM
82562-1 0x8086,0x2459   Intel 82562 based Fast Ethernet Connection
82562-2 0x8086,0x245d   Intel 82562 based Fast Ethernet Connection
82562ez 0x8086,0x1050   Intel 82562EZ Network Connection
eepro100-5200   0x8086,0x5200   Intel EtherExpress PRO/100 Intelligent Server
eepro100-5201   0x8086,0x5201   Intel EtherExpress PRO/100 Intelligent Server

family          e1000
e1000-82542     0x8086,0x1000   Intel EtherExpressPro1000
e1000-82543gc-fiber     0x8086,0x1001   Intel EtherExpressPro1000 82543GC Fiber
e1000-82543gc-copper    0x8086,0x1004   Intel EtherExpressPro1000 82543GC Copper
e1000-82544ei-copper    0x8086,0x1008   Intel EtherExpressPro1000 82544EI Copper
e1000-82544ei-fiber     0x8086,0x1009   Intel EtherExpressPro1000 82544EI Fiber
e1000-82544gc-copper    0x8086,0x100c   Intel EtherExpressPro1000 82544GC Copper
e1000-82544gc-lom       0x8086,0x100d   Intel EtherExpressPro1000 82544GC LOM
e1000-82540em   0x8086,0x100e   Intel EtherExpressPro1000 82540EM
e1000-82545em-copper    0x8086,0x100f   Intel EtherExpressPro1000 82545EM Copper
e1000-82546eb-copper    0x8086,0x1010   Intel EtherExpressPro1000 82546EB Copper
e1000-82545em-fiber     0x8086,0x1011   Intel EtherExpressPro1000 82545EM Fiber
e1000-82546eb-fiber     0x8086,0x1012   Intel EtherExpressPro1000 82546EB Copper
e1000-82540em-lom       0x8086,0x1015   Intel EtherExpressPro1000 82540EM LOM
e1000-82540ep-lom       0x8086,0x1016   Intel EtherExpressPro1000 82540EP LOM
e1000-82540ep-lp        0x8086,0x1017   Intel EtherExpressPro1000 82540EP LP
e1000-82540ep   0x8086,0x101e   Intel EtherExpressPro1000 82540EP

family          lance
# Lance PCI PCNet/32
lancepci        0x1022,0x2000   AMD Lance/PCI
pcnetfastiii    0x1022,0x2625   AMD Lance/PCI PCNet/32
amdhomepna      0x1022,0x2001   AMD Lance/HomePNA
ne2100  -       Novell NE2100, NE1500
ni6510  -       Racal-Interlan NI6510

family          tulip
dc21040 0x1011,0x0002   Digital Tulip
ds21140 0x1011,0x0009   Digital Tulip Fast
dc21041 0x1011,0x0014   Digital Tulip+
ds21142 0x1011,0x0019   Digital Tulip 21142
mx98713 0x10d9,0x0512   Macronix MX987x3
mx98715 0x10d9,0x0531   Macronix MX987x5
mxic-98715      0x1113,0x1217   Macronix MX987x5
lc82c115        0x11ad,0xc115   LinkSys LNE100TX
82c168  0x11ad,0x0002   Netgear FA310TX
dm9100  0x1282,0x9100   Davicom 9100
dm9102  0x1282,0x9102   Davicom 9102
dm9009  0x1282,0x9009   Davicom 9009
centaur-p       0x1317,0x0985   ADMtek Centaur-P
an981   0x1317,0x0981   ADMtek AN981 Comet
an983   0x1113,0x1216   ADMTek AN983 Comet
an983b  0x1317,0x9511   ADMTek Comet 983b
centaur-c       0x1317,0x1985   ADMTek Centaur-C
intel21145      0x8086,0x0039   Intel Tulip
ax88140 0x125b,0x1400   ASIX AX88140
rl100tx 0x11f6,0x9881   Compex RL100-TX
xircomtulip     0x115d,0x0003   Xircom Tulip
tulip-0981      0x104a,0x0981   Tulip 0x104a 0x0981
tulip-2774      0x104a,0x2774   Tulip 0x104a 0x2774
tulip-9511      0x1113,0x9511   Tulip 0x1113 0x9511
tulip-1561      0x1186,0x1561   Tulip 0x1186 0x1561
tulip-a120      0x1259,0xa120   Tulip 0x1259 0xa120
tulip-ab02      0x13d1,0xab02   Tulip 0x13d1 0xab02
tulip-ab03      0x13d1,0xab03   Tulip 0x13d1 0xab03
tulip-ab08      0x13d1,0xab08   Tulip 0x13d1 0xab08
lanfinity       0x14f1,0x1803   Conexant LANfinity
tulip-8410      0x1626,0x8410   Tulip 0x1626 0x8410
tulip-ab09      0x1737,0xab09   Tulip 0x1737 0xab09

family          davicom
davicom9100     0x1282,0x9100   Davicom 9100
davicom9102     0x1282,0x9102   Davicom 9102
davicom9009     0x1282,0x9009   Davicom 9009
davicom9132     0x1282,0x9132   Davicom 9132

family          rtl8139
rtl8129 0x10ec,0x8129   Realtek 8129
rtl8139 0x10ec,0x8139   Realtek 8139
rtl8139b        0x10ec,0x8138   Realtek 8139B
dfe538  0x1186,0x1300   DFE530TX+/DFE538TX
smc1211-1       0x1113,0x1211   SMC EZ10/100
smc1211 0x1112,0x1211   SMC EZ10/100
delta8139       0x1500,0x1360   Delta Electronics 8139
addtron8139     0x4033,0x1360   Addtron Technology 8139
dfe690txd       0x1186,0x1340   D-Link DFE690TXD
fe2000vx        0x13d1,0xab06   AboCom FE2000VX
allied8139      0x1259,0xa117   Allied Telesyn 8139
fnw3603tx       0x14ea,0xab06   Planex FNW-3603-TX
fnw3800tx       0x14ea,0xab07   Planex FNW-3800-TX
clone-rtl8139   0xffff,0x8139   Cloned 8139

family          via-rhine
dlink-530tx     0x1106,0x3065   VIA 6102
via-rhine-6105  0x1106,0x3106   VIA 6105
dlink-530tx-old 0x1106,0x3043   VIA 3043
via6105m        0x1106,0x3053   VIA 6105M
via-rhine-old   0x1106,0x6100   VIA 86C100A

family          w89c840
winbond840      0x1050,0x0840   Winbond W89C840F
compexrl100atx  0x11f6,0x2011   Compex RL100ATX

family          sis900
sis900  0x1039,0x0900   SIS900
sis7016 0x1039,0x7016   SIS7016

family          natsemi
dp83815 0x100b,0x0020   DP83815

family          fa311
fa311too        0x100b,0x0020   DP83815

family          tlan
#olicom2326     0x108d,0x0014   TI Thunderlan

family          prism2_plx
ma301           0x1385,0x4100   Netgear MA301

family          prism2_plx
ma301   0x1385,0x4100   Netgear MA301
3c-airconnect   0x10b7,0x7770   3Com AirConnect
ss1023  0x111a,0x1023   Siemens SpeedStream SS1023
correga 0x15e8,0x0130   Correga
smc2602w        0x1638,0x1100   SMC EZConnect SMC2602W
gl24110p        0x16ab,0x1100   Global Sun Tech GL24110P
16ab-1101       0x16ab,0x1101   Unknown
wdt11   0x16ab,0x1102   Linksys WDT11
usr2415 0x16ec,0x3685   USR 2415
f5d6000 0xec80,0xec00   Belkin F5D6000
emobility       0x126c,0x8030   Nortel emobility

family          prism2_pci
# Various Prism2.5 (PCI) devices that manifest themselves as Harris Semiconductor devices
# (with the actual vendor appearing as the vendor of the first subsystem)
prism2_pci      0x1260,0x3873   Harris Semiconductor Prism2.5 clone
hwp01170        0x1260,0x3873   ActionTec HWP01170
dwl520  0x1260,0x3873   DLink DWL-520

family          ns8390
# A few NE2000 PCI clones, list not exhaustive
rtl8029 0x10ec,0x8029   Realtek 8029
dlink-528       0x1186,0x0300   D-Link DE-528
winbond940      0x1050,0x0940   Winbond NE2000-PCI
winbond940f     0x1050,0x5a5a   Winbond W89c940F
compexrl2000    0x11f6,0x1401   Compex ReadyLink 2000
ktiet32p2       0x8e2e,0x3000   KTI ET32P2
nv5000sc        0x4a14,0x5000   NetVin NV5000SC
holtek80232     0x12c3,0x0058   Holtek HT80232
holtek80229     0x12c3,0x5598   Holtek HT80229
surecom-ne34    0x10bd,0x0e34   Surecom NE34
via86c926       0x1106,0x0926   Via 86c926
wd      -       WD8003/8013, SMC8216/8416, SMC 83c790 (EtherEZ)
ne      -       NE1000/2000 and clones
3c503   -       3Com503, Etherlink II[/16]

family          epic100
epic100 0x10b8,0x0005   SMC EtherPowerII
smc-83c175      0x10b8,0x0006   SMC EPIC/C 83c175

family          3c509
3c509   -       3c509, ISA/EISA
3c529   -       3c529 == MCA 3c509

family          3c515
3c515   -       3c515, Fast EtherLink ISA

family          eepro
eepro           -               Intel Etherexpress Pro/10

family          cs89x0
cs89x0  -       Crystal Semiconductor CS89x0

family          depca
depca   -       Digital DE100 and DE200

family          i82586
3c507           -               3Com507
ni5210          -               Racal-Interlan NI5210
exos205         -               Exos 205

family          ni5010
ni5010          -               Racal-Interlan NI5010

family          sk_g16
sk_g16  -       Schneider and Koch G16

family          smc9000
smc9000 -       SMC9000

family          sundance
sundancealta    0x13f0,0x0201   Sundance Alta st201 based 
dfe530txs       0x1186,0x1002   D-Link DFE 530TXS

#family         pcnet32
#amd_lance      0x1022,0x2000           AMD Lance based card
#amd_lance_home 0x1022,0x2001           AMD Lance Home based card

family          tlan
netel10         0x0e11,0xae34           Compaq Netelligent 10 T PCI UTP
netel100        0x0e11,0xae32           Compaq Netelligent 10/100 TX PCI UTP
netflex3i       0x0e11,0xae35           Compaq Integrated NetFlex-3/P
thunder         0x0e11,0xf130           Compaq NetFlex-3/P
netflex3b       0x0e11,0xf150           Compaq NetFlex-3/P
netel100pi      0x0e11,0xae43           Compaq Netelligent Integrated 10/100 TX UTP
netel100d       0x0e11,0xae40           Compaq Netelligent Dual 10/100 TX PCI UTP
netel100i       0x0e11,0xb011           Compaq Netelligent 10/100 TX Embedded UTP
oc2183          0x108d,0x0013           Olicom OC-2183/2185
oc2325          0x108d,0x0012           Olicom OC-2325
oc2326          0x108d,0x0014           Olicom OC-2326
netelligent_10_100_ws_5100      0x0e11,0xb030           Compaq Netelligent 10/100 TX UTP
netelligent_10_t2               0x0e11,0xb012           Compaq Netelligent 10 T/2 PCI UTP/Coax

family          tiara
tiara           -               Tiara, Fujitsu Lancard


The following drivers have notes in the src directory, please read them:

3c515.txt
3c90x.txt
cs89x0.txt
sis900.txt
tulip.txt

All Etherboot drivers are autoprobing, which means they attempt to detect the hardware addresses at which the card is installed. It's fairly easy to write a driver if you know C and are familiar with Ethernet hardware interfacing. Please read the developer manual if you wish to do so.

2.4 Getting help

Please join the Etherboot mailing lists. These are listed on the Etherboot home page. There is a users mailing list and a developers mailing list. The users list is for issues with building and running the software, while the developers list is for issues with features and coding.

Please post questions to the Etherboot mailing lists instead of mailing me because: you get the benefit of a lot of experts seeing your question (no, I don't know everything, if only because there are many configurations I have never used); a lot of people see the question and answer and this helps them too. You will usually not get any reply from me if you email questions to me directly. I want to make the best use of my time and that is by making sure that as many people as possible see the questions and answers. Note that I will post my replies to the mailing lists so to see the answers you should subscribe, or be willing to check the archives later.

Other lists you can join are the Netboot mailing list (joining details on Etherboot home page), and the Linux Terminal Server Project mailing lists at LTSP. The Etherboot and Netboot lists are for general netbooting issues, while LTSP is focused more on the LTSP packages. However there is a fair amount of overlap between the lists and many key people are on all lists.

Note that the Netboot mailing list is spam protected. If your ISP has been slack security-wise and had a machine of theirs get onto one of the Open Relay Blacklists, then you will not be allowed to post. The only things I can suggest are to change your ISP to a more responsible one, or to get a Web based mailbox. I cannot help you with problems here as I do not administer the Netboot mailing list.


Next Previous Contents