Differences between current version and previous revision of HowToEthernetHOWTO.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Monday, October 25, 2004 5:14:03 am | by AristotlePagaltzis | |
Older page: | version 2 | Last edited on Friday, July 19, 2002 11:58:46 pm | by !PerryLorier | Revert |
@@ -1,7851 +1 @@
-Linux Ethernet-Howto
-
-
-
-----
-
-!!!Linux Ethernet-Howto
-
-!!by Paul Gortmakerv2.8, Oct 29, 2000
-
-
-----
-'' This is the Ethernet-Howto, which is a compilation of information
-about which ethernet devices can be used for Linux, and how to
-set them up. Note that this Howto is focused
-on the hardware and low level driver aspect of the ethernet cards,
-and does not cover the software end of things like ifconfig
-and route. See the Network Howto for that stuff.''
-----
-
-
-
-
-!!1. Introduction
-
-
-*1.1 New Versions of this Document
-
-*1.2 Using the Ethernet-Howto
-
-*1.3 HELP - It doesn't work!
-
-*1.4 Type of cable that your card should support
-
-
-
-
-
-!!2. Frequently Asked Questions
-
-
-*2.1 What card should I buy for Linux?
-
-*2.2 Alpha Drivers -- Getting and Using them
-
-*2.3 Using More than one Ethernet Card per Machine
-
-*2.4 The ether= thing didn't do anything for me. Why?
-
-*2.5 Problems with NE1000 / NE2000 cards (and clones)
-
-*2.6 Problems with SMC Ultra/EtherEZ and WD80*3 cards
-
-*2.7 Problems with 3Com cards
-
-*2.8 FAQs Not Specific to Any Card.
-
-
-
-
-
-!!3. Performance Tips
-
-
-*3.1 General Concepts
-
-*3.2 ISA Cards and ISA Bus Speed
-
-*3.3 Setting the TCP Rx Window
-
-*3.4 Increasing NFS performance
-
-
-
-
-
-!!4. Vendor/Manufacturer/Model Specific Information
-
-
-*4.1 3Com
-
-*4.2 Accton
-
-*4.3 Allied Telesyn/Telesis
-
-*4.4 AMD / Advanced Micro Devices
-
-*4.5 Ansel Communications
-
-*4.6 Apricot
-
-*4.7 Arcnet
-
-*4.8 AT&T
-
-*4.9 Boca Research
-
-*4.10 Cabletron
-
-*4.11 Cogent
-
-*4.12 Compaq
-
-*4.13 Danpex
-
-*4.14 D-Link
-
-*4.15 DFI
-
-*4.16 Digital / DEC
-
-*4.17 Farallon
-
-*4.18 Fujitsu
-
-*4.19 Hewlett Packard
-
-*4.20 IBM / International Business Machines
-
-*4.21 ICL Ethernet Cards
-
-*4.22 Intel Ethernet Cards
-
-*4.23 Kingston
-
-*4.24 !LinkSys
-
-*4.25 Microdyne (Eagle)
-
-*4.26 Mylex
-
-*4.27 Novell Ethernet, NExxxx and associated clones.
-
-*4.28 Proteon
-
-*4.29 Pure Data
-
-*4.30 Racal-Interlan
-
-*4.31 !RealTek
-
-*4.32 Sager
-
-*4.33 Schneider & Koch
-
-*4.34 SEEQ
-
-*4.35 SMC (Standard Microsystems Corp.)
-
-*4.36 Texas Instruments
-
-*4.37 Thomas Conrad
-
-*4.38 VIA
-
-*4.39 Western Digital
-
-*4.40 Winbond
-
-*4.41 Xircom
-
-*4.42 Zenith
-
-*4.43 Znyx
-
-*4.44 Identifying an Unknown Card
-
-*4.45 Drivers for Non-Ethernet Devices
-
-
-
-
-
-!!5. Cables, Coax, Twisted Pair
-
-
-*5.1 Thin Ethernet (thinnet)
-
-*5.2 Twisted Pair
-
-*5.3 Thick Ethernet
-
-
-
-
-
-!!6. Software Configuration and Card Diagnostics
-
-
-*6.1 Configuration Programs for Ethernet Cards
-
-*6.2 Diagnostic Programs for Ethernet Cards
-
-
-
-
-
-!!7. Technical Information
-
-
-*7.1 Programmed I/O vs. Shared Memory vs. DMA
-
-*7.2 Performance Implications of Bus Width
-
-*7.3 32 Bit (VLB/EISA/PCI) Ethernet Cards
-
-*7.4 Writing a Driver
-
-*7.5 Driver interface to the kernel
-
-*7.6 Technical information from 3Com
-
-*7.7 Notes on AMD PCnet / LANCE Based cards
-
-*7.8 Multicast and Promiscuous Mode
-
-*7.9 The Berkeley Packet Filter (BPF)
-
-
-
-
-
-!!8. Networking with a Laptop/Notebook Computer
-
-
-*8.1 Using SLIP
-
-*8.2 PCMCIA Support
-
-*8.3 ISA Ethercard in the Docking Station.
-
-*8.4 Pocket / parallel port adaptors.
-
-
-
-
-
-!!9. Miscellaneous.
-
-
-*9.1 Passing Ethernet Arguments to the Kernel
-
-*9.2 Using the Ethernet Drivers as Modules
-
-*9.3 Related Documentation
-
-*9.4 Disclaimer and Copyright
-
-*9.5 Closing
-
-----
-
-!! 1. Introduction
-
-
-
-
-
-The Ethernet-Howto covers what cards you should and
-shouldn't buy; how to set
-them up, how to run more than one, and other common problems and
-questions. It contains detailed information on the current level
-of support for all of the most common ethernet cards available.
-
-
-It does ''not'' cover the software end of things, as that
-is covered in the NET-3 Howto. Also note that general non-Linux
-specific questions about Ethernet are not (or at least they should
-not be) answered here. For those types of questions, see the
-excellent amount of information in the ''comp.dcom.lans.ethernet''
-FAQ. You can FTP it from rtfm.mit.edu just like all the other
-newsgroup FAQs.
-
-
-This present revision covers distribution kernels up to and
-including 2.2.17.
-
-
-The Ethernet-Howto is by:
-
-Paul Gortmaker, p_gortmaker@yahoo.com
-
-
-
-The primary source of information for the initial
-ASCII-only version of the Ethernet-Howto was:
-
-Donald J. Becker, becker@scyld.com
-
-
-
-who we should thank for writing a lot of the ethernet
-card drivers that are presently available for Linux. He also
-is the author of the original NFS server too. Thanks Donald!
-
-
-This document is Copyright (c) 1993-2000 by Paul Gortmaker.
-Please see the Disclaimer and Copying information at the end
-of this document (
-copyright)
-for information about redistribution of
-this document and the usual `we are not responsible for what
-you manage to break...' type legal stuff.
-
-
-
-
-!! 1.1 New Versions of this Document
-
-
-
-
-
-
-New versions of this document can be retrieved from:
-
-
-
-Ethernet-HOWTO
-
-or for those wishing to use FTP and/or get non-HTML formats:
-
-
-
-Sunsite HOWTO Archive
-
-This is the `official' location - it can also be found on
-various Linux WWW/ftp mirror sites. Updates will be made
-as new information and/or drivers becomes available. If this copy
-that you are reading is more than 6 months old, then you should
-check to see if an updated copy is available.
-
-
-This document is available in various formats (postscript, dvi,
-ASCII, HTML, etc.).
-I would recommend viewing it in HTML (via a WWW browser) or the
-Postscript/dvi format. Both of these contain cross-references
-that are not included in the plain text ASCII format.
-
-
-
-
-
-
-
-!! 1.2 Using the Ethernet-Howto
-
-
-
-
-
-
-As this guide is getting bigger and bigger, you probably don't want
-to spend the rest of your afternoon reading the whole thing. And
-the good news is that you don't ''have'' to read it all. The
-HTML and Postscript/dvi versions have a table of contents which will
-really help you find what you need a lot faster.
-
-
-Chances are you are reading this document beacuse you can't get things
-to work and you don't know what to do or check. The next section
-(
-HELP - It doesn't work!)
-is aimed at newcomers to linux and will point you in the
-right direction.
-
-
-Typically the same problems and questions are asked ''over and over''
-again by different people. Chances are your specific problem
-or question is one of these Frequently Asked Questions, and
-is answered in the FAQ portion of this document .
-(
-The FAQ section). Everybody should have a
-look through this section before posting for help.
-
-
-If you haven't got an ethernet card, then
-you will want to start with deciding on a card.
-(
-What card should I buy...)
-
-
-If you have already got an ethernet card,
-but are not sure if you can use it with Linux, then you will want to
-read the section which contains specific information on each
-manufacturer, and their cards.
-(
-Vendor Specific...)
-
-
-If you are interested in some of the technical aspects
-of the Linux device drivers, then you can have a browse of
-the section with this type of information.
-(
-Technical Information)
-
-
-
-
-!! 1.3 HELP - It doesn't work!
-
-
-
-
-
-
-Okay, don't panic. This will lead you through the process of
-getting things working, even if you have no prior background
-in linux or ethernet hardware.
-
-
-First thing you need to do is figure out what model your card is
-so you can determine if Linux has a driver for that particular
-card. Different cards typically have different ways of being
-controlled by the host computer, and the linux driver (if there
-is one) contains this control information in a format that
-allows linux to use the card.
-If you don't have any manuals or anything of the sort that
-tell you anything about the card model, then you can try
-the section on helping with mystery cards
-(reference section:
-Identifying an Unknown Card).
-
-
-Now that you know what type of card you have, read through
-the details of your particular card in the card specific section
-(reference section:
-Vendor Specific...)
-which lists in alphabetical order, card manufacturers,
-individual model numbers and whether it has a linux driver or
-not. If it lists it as `Not Supported' you can pretty much
-give up here. If you can't find your card in that list, then
-check to see if your card manual lists it as being `compatible'
-with another known card type. For example there are hundreds,
-if not thousands of different cards made to be compatible
-with the original Novell NE2000 design.
-
-
-Assuming you have found out that a linux driver exists for your
-card, you now have to find it and make use of it.
-Just because linux has a
-driver for your card does ''not'' mean that it is built
-into every kernel. (The kernel is the core operating
-system that is first loaded at boot, and contains drivers
-for various pieces of hardware, among other things.)
-Depending on who made the particular linux distribution
-you are using, there may be only a few pre-built kernels, and
-a whole bunch of drivers as smaller separate modules, or there may
-be a whole lot of kernels, covering a vast combination of
-built-in driver combinations.
-
-
-Most linux distributions now ship with a bunch of
-small modules that are the various drivers. The required
-modules are typically loaded late in the boot process, or
-on-demand as a driver is needed to access a particualr device.
-You will need to attach this module to the kernel after it
-has booted up. See the information that came with your
-distribution on installing and using modules, along with
-the module section in this document.
-(
-Using the Ethernet Drivers as Modules)
-
-
-If you didn't find either a pre-built kernel with your driver,
-or a module form of the driver, chances are you have a typically
-uncommon card, and you will have to build your own kernel with
-that driver included. Once you have linux installed, building a
-custom kernel is not difficult at all. You essentially answer
-yes or no to what you want the kernel to contain, and then tell
-it to build it. There is a Kernel-!HowTo that will help you along.
-
-
-At this point you should have somehow managed to be booting a
-kernel with your driver built in, or be loading it as a module.
-About half of the problems people have are related to not having
-driver loaded one way or another, so you may find things work now.
-
-
-If it still doesn't work, then you need to verify that the
-kernel is indeed detecting the card. To do this, you need
-to type dmesg | more when logged in after the
-system has booted and all modules have been loaded.
-This will allow you to review the boot messages that the
-kernel scrolled up the screen during the boot process.
-If the card has been detected, you should see somewhere in
-that list a message from your card's driver that starts with
-eth0, mentions the driver name and the hardware parameters
-(interrupt setting, input/output port address, etc) that
-the card is set for. (Note: At boot, linux lists
-all the PCI cards installed in the system, regardless of
-what drivers are available - do not mistake this for the
-driver detection which comes later!)
-
-
-If you don't see a driver indentification message like this,
-then the driver didn't detect your card, and that is why things
-aren't working. See the FAQ
-(
-The FAQ Section) for what to do if
-your card is not detected. If you have a NE2000 compatible,
-there is also some NE2000 specific tips on getting a card
-detected in the FAQ section as well.
-
-
-If the card is detected, but the detection message reports
-some sort of error, like a resource conflict, then the driver
-probably won't have initialized properly and the card still
-wont be useable. Most common error messages of this sort are
-also listed in the FAQ section, along with a solution.
-
-
-If the detection message seems okay, then double check the
-card resources reported by the driver against those that
-the card is physically set for (either by little black jumpers on the
-card, or by a software utility supplied by the card manufacturer.)
-These must match exactly. For example, if you have the card
-jumpered or configured to IRQ 15 and the driver reports IRQ 10
-in the boot messages, things will not work. The FAQ section
-discusses the most common cases of drivers incorrectly detecting
-the configuration information of various cards.
-
-
-At this point, you have managed to get you card detected with
-all the correct parameters, and hopefully everything is working.
-If not, then you either have a software configuration error,
-or a hardware configuration error. A software configuration
-error is not setting up the right network addresses for the
-ifconfig and route commands, and details of how
-to do that are fully described in the Network !HowTo and the
-`Network Administrator's Guide' which both probably came on
-the CD-ROM you installed from.
-
-
-A hardware configuration error is when some sort of resource
-conflict or mis-configuration (that the driver didn't detect
-at boot) stops the card from working properly. This typically
-can be observed in several different ways. (1) You get
-an error message when ifconfig tries to open the device
-for use, such as ``SIOCSFFLAGS: Try again''. (2) The driver
-reports eth0 error messages (viewed by dmesg | more)
-or strange inconsistencies for each time it tries to send or
-receive data. (3) Typing cat /proc/net/dev shows
-non-zero numbers in one of the errs, drop, fifo, frame or
-carrier columns for eth0. (4) Typing
-cat /proc/interrupts shows a zero interrupt count
-for the card.
-Most of the typical hardware configuration errors are also
-discussed in the FAQ section.
-
-
-Well, if you have got to this point and things still
-aren't working, read the FAQ section
-of this document, read the vendor specific section detailing
-your particular card, ''and if it still doesn't work'' then
-you may have to resort to posting to an appropriate
-newsgroup for help. If you do post, please detail all
-relevant information in that post, such as the card brand,
-the kernel version, the driver boot messages, the output
-from cat /proc/net/dev, a clear description of
-the problem, and of course what you
-have already tried to do in an effort to get things to work.
-
-
-You would be surprised at how many people post useless things
-like ``Can someone help me? My ethernet doesn't work.'' and
-nothing else.
-Readers of the newsgroups tend to ignore such silly posts,
-whereas a detailed and informational problem description
-may allow a `linux-guru' to spot your problem right away.
-Of course the same holds true when e-mailing a problem
-report - always provide as much information as possible.
-
-
-
-
-
-
-
-!! 1.4 Type of cable that your card should support
-
-
-
-
-
-
-The twisted pair cables, with the RJ-45 (giant phone jack)
-connectors is technically called 10BaseT. You may also
-hear it called UTP (Unsheilded Twisted Pair).
-
-
-The thinnet, or thin ethernet cabling, (RG-58 coaxial cable)
-with the BNC (metal push and turn-to-lock) connectors is
-technically called 10Base2.
-
-
-The older thick ethernet (10mm coaxial cable) which is only
-found in older installations is called 10Base5. The 15 pin
-D-shaped plug found on some ethernet cards (the AUI connector)
-is used to connect to thick ethernet and external transcievers.
-
-
-Most ethercards also come in a `Combo' version for only
-$10-$20 more.
-These have both twisted pair and thinnet transceiver built-in,
-allowing you to change your mind later.
-
-
-Most installations will use 10BaseT/100BaseT
-10Base2 does not offer any upgrade path to 100Base-whatever.
-10Base2 is fine for hobbyists setting up a home network
-when purchasing a hub is not desireable for some reason
-or another.
-
-
-See
-Cables, Coax...
-for other concerns with different types of ethernet cable.
-
-
-
-----
-
-!! 2. Frequently Asked Questions
-
-
-
-
-
-Here are some of the more frequently asked questions about using
-Linux with an Ethernet connection. Some of the more specific
-questions are sorted on a `per manufacturer basis'.
-Chances are the question you want an answer for has already
-been asked (and answered!) by someone else, so even if you
-don't find your answer here, you probably can find what you
-want from a news archive such as
-Dejanews.
-
-
-
-
-
-
-
-!! 2.1 What card should I buy for Linux?
-
-
-
-
-
-
-The answer to this question depends heavily on exactly what
-you intend on doing with your net connection, and how much
-traffic it will see.
-
-
-If you only expect a single user to be doing the occasional
-ftp session or WWW connection, then even an old 8 bit ISA card
-will probably keep you happy.
-
-
-If you intend to set up a server, and you require the CPU
-overhead of moving data over the network to be kept
-to a minimum, you probably want to look at one of the
-PCI cards that uses a chip with bus-mastering capapbility,
-such as the DEC tulip (21xxx) chip, or the AMD PCnet-PCI chip.
-
-
-If you fall somewhere in the middle of the above, then any
-one of the low cost PCI or 16 bit ISA cards with stable
-drivers will do the job for you.
-
-
-
-
-!! 2.2 Alpha Drivers -- Getting and Using them
-
-
-
-
-
-
-I heard that there is an updated or preliminary/alpha driver
-available for my card. Where can I get it?
-
-
-The newest of the `new' drivers can be found on Donald's
-ftp site: www.scyld.com in the
-/pub/linux/ area. Things
-change here quite frequently, so just look around for it.
-Alternatively, it may be easier to use a WWW browser on:
-
-
-
-Don's Linux Home Page
-
-to locate the driver that you are looking for. (Watch out for
-WWW browsers that silently munge the source by replacing
-TABs with spaces and so on - use ftp, or at least an FTP URL
-for downloading if unsure.)
-
-
-Now, if it really is an alpha, or pre-alpha driver, then please
-treat it as such. In other words, don't complain because you
-can't figure out what to do with it. If you can't figure out
-how to install it, then you probably shouldn't be testing it.
-Also, if it brings your machine down, don't complain. Instead,
-send us a well documented bug report, or even better, a patch!
-
-
-Note that some of the `useable' experimental/alpha drivers have
-been included in the standard kernel source tree. When running
-make config one of the first things you will be asked
-is whether to ``Prompt for development and/or incomplete
-code/drivers''. You will have to answer `Y' here to get
-asked about including any alpha/experiemntal drivers.
-
-
-
-
-!! 2.3 Using More than one Ethernet Card per Machine
-
-
-
-
-
-
-What needs to be done so that Linux can run two ethernet cards?
-
-
-The answer to this question depends on whether the driver(s)
-is/are being used as a loadable module or are compiled directly
-into the kernel. Most linux distributions use modular drivers now.
-This saves distributing lots of kernels, each with a different driver
-set built in. Instead a single basic kernel is used and the
-individual drivers that are need for a particular user's system are
-loaded once the system has booted far enough to access
-the driver module files (usually stored in /lib/modules/).
-
-
-''With the Driver as a Module:''
-In the case of
-PCI drivers, the module will typically detect all of the
-installed cards of that brand model automatically. However,
-for ISA cards, probing for a card is not a safe operation, and
-hence you typically need to supply the I/O base address of the
-card so the module knows where to look. This information is
-stored in the file /etc/conf.modules.
-
-
-As an example, consider a user that has two ISA NE2000 cards,
-one at 0x300 and one at 0x240 and what lines they
-would have in their /etc/conf.modules file:
-
-
-
-
-alias eth0 ne
-alias eth1 ne
-options ne io=0x240,0x300
-
-
-
-What this does: This says that if the administrator (or the
-kernel) does a modprobe eth0 or a modprobe eth1 then
-the ne.o driver should be loaded for either eth0 or
-eth1. Furthermore, when the ne.o module is loaded, it
-should be loaded with the options io=0x240,0x300 so that the
-driver knows where to look for the cards. Note that the 0x
-is important - things like 300h as commonly used in the DOS
-world won't work. Switching the order of the 0x240 and
-the 0x300 will switch which physical card ends up as
-eth0 and eth1.
-
-
-Most of the ISA module drivers can take multiple comma separated
-I/O values like this example to handle multiple cards. However,
-some (older?) drivers, such as the 3c501.o module are currently
-only able to handle
-one card per module load. In this case you can load the module
-twice to get both cards detected. The /etc/conf.modules
-file in this case would look like:
-
-
-
-
-alias eth0 3c501
-alias eth1 3c501
-options eth0 -o 3c501-0 io=0x280 irq=5
-options eth1 -o 3c501-1 io=0x300 irq=7
-
-
-
-In this example the -o option has been used to give each
-instance of the module a unique name, since you can't have two
-modules loaded with the same name. The irq= option has
-also been used to to specify the hardware IRQ setting of the card.
-(This method can also be used with modules that accept comma
-separated I/O values, but it is less efficient since the module
-ends up being loaded twice when it doesn't really need to be.)
-
-
-As a final example, consider a user with one 3c503 card
-at 0x350 and one SMC Elite16 (wd8013) card at 0x280.
-They would have:
-
-
-
-
-alias eth0 wd
-alias eth1 3c503
-options wd io=0x280
-options 3c503 io=0x350
-
-
-
-For PCI cards, you typically only need the alias lines to
-correlate the ethN interfaces with the appropriate driver
-name, since the I/O base of a PCI card can be safely detected.
-
-
-The available modules are typically stored in
-/lib/modules/`uname -r`/net where the
-uname -r command gives the kernel version (e.g. 2..34).
-You can look in there to see which one matches your card.
-Once you have the correct settings in your conf.modules
-file, you can test things out with:
-
-
-
-
-modprobe ethN
-dmesg | tail
-
-
-
-where `N' is the number of the ethernet interface you are testing.
-
-
-
-
-
-''With the Driver Compiled into the Kernel:''
-If you have the driver compiled into the kernel, then
-the hooks for multiple ethercards are all there.
-However, note that at the moment only ''one'' ethercard is
-auto-probed for by default. This helps to avoid possible
-boot time hangs caused by probing sensitive cards.
-
-
-(Note: As of late 2.1.x kernels, the boot probes have been
-sorted into safe and unsafe, so that all safe (e.g. PCI and
-EISA) probes will find all related cards automatically. Systems
-with more than one ethernet card with at least one of them
-being an ISA card will still need to do one of the following.)
-
-
-There are two ways that you can enable auto-probing for
-the second (and third, and...) card. The easiest
-method is to pass boot-time arguments to the kernel,
-which is usually done by LILO. Probing for the
-second card can be achieved by using a boot-time argument
-as simple as ether=,,eth1. In this
-case eth0 and eth1 will be assigned in the order
-that the cards are found at boot. Say if you want
-the card at 0x300 to be eth0 and
-the card at 0x280 to be eth1 then you could use
-
-
-
-
-LILO: linux ether=5,0x300,eth0 ether=15,0x280,eth1
-
-
-
-The ether= command accepts more than the IRQ + I/O
-+ name shown above. Please have a look at
-Passing Ethernet Arguments...
-for the full syntax, card specific parameters, and LILO tips.
-
-
-These boot time arguments can be made permanent so that you
-don't have to re-enter them every time. See the LILO
-configuration option `append' in the LILO manual.
-
-
-The second way (not recommended) is to edit the file
-Space.c and replace the 0xffe0 entry for the
-I/O address with a zero. The 0xffe0 entry tells it
-not to probe for that device -- replacing it with a zero
-will enable autoprobing for that device.
-
-
-
-
-!!2.4 The ether= thing didn't do anything for me. Why?
-
-
-
-
-
-
-As described above, the ether= command ''only'' works
-for drivers that are compiled into the kernel. Now most
-distributions use the drivers in a modular form, and so
-the ether= command is rarely used anymore. (Some older
-documentation has yet to be updated to reflect this change.)
-If you want to apply options for a modular ethernet driver
-you ''must'' make changes to the /etc/conf.modules
-file.
-
-
-If you ''are'' using a compiled in driver, and have added
-an ether= to your LILO configuration file, note
-that it won't take effect until you re-run lilo
-to process the updated configuration file.
-
-
-
-
-
-
-
-!! 2.5 Problems with NE1000 / NE2000 cards (and clones)
-
-
-
-
-
-
-__Problem:__
-PCI NE2000 clone card is not detected at boot with v2..x.
-
-
-__Reason:__
-The ne.c driver up to v2..30 only knows about the PCI
-ID number of !RealTek 8029 based clone cards. Since then,
-several others have also released PCI NE2000 clone
-cards, with different PCI ID numbers, and hence the
-driver doesn't detect them.
-
-
-__Solution:__
-The easiest solution is to upgrade to a v2..31 (or newer)
-version of the
-linux kernel. It knows the ID numbers of about five different
-NE2000-PCI chips, and will detect them automatically at boot or
-at module loading time. If you upgrade to 2..34 (or newer)
-there is a PCI-only specific NE2000 driver that is slightly
-smaller and more efficient than the original ISA/PCI driver.
-
-
-__Problem:__
-PCI NE2000 clone card is reported as an ne1000 (8 bit card!)
-at boot or when I load the ne.o module for v2..x, and hence
-doesn't work.
-
-
-__Reason:__
-Some PCI clones don't implement byte wide access (and hence are
-not truly 100% NE2000 compatible). This causes the probe
-to think they are NE1000 cards.
-
-
-__Solution:__
-You need to upgrade to v2..31 (or newer) as described above.
-The driver(s) now check for this hardware bug.
-
-
-__Problem:__
-PCI NE2000 card gets terrible performance, even when reducing the
-window size as described in the Performance Tips section.
-
-
-__Reason:__
-The spec sheets for the original 8390 chip, desgined and sold
-over ten years ago, noted that a dummy read from the chip was
-required before each write operation for maximum reliablity.
-The driver has the facility to do this but it has been disabled
-by default since the v1.2 kernel days. One user has reported that
-re-enabling this `mis-feature' helped their performance with a
-cheap PCI NE2000 clone card.
-
-
-__Solution:__
-Since it has only been reported as a solution by one person, don't
-get your hopes up. Re-enabling the read before write fix is done
-by simply editing the driver file in linux/drivers/net/,
-uncommenting the line containing NE_RW_BUGFIX and then
-rebuilding the kernel or module as appropriate. Please send an
-e-mail describing the performance difference and type of card/chip
-you have if this helps you. (The same can be done for the
-ne2k-pci.c driver as well).
-
-
-__Problem:__
-The ne2k-pci.c driver reports error messages like
-timeout waiting for Tx RDC with a PCI NE2000 card and doesn't
-work right.
-
-
-__Reason:__
-Your card and/or the card to PCI bus link can't handle the long
-word I/O optimization used in this driver.
-
-
-__Solution:__
-Firstly, check the settings available in the BIOS/CMOS setup
-to see if any related to PCI bus timing are too aggressive for
-reliable operation. Otherwise using the ISA/PCI ne.c
-driver (or removing the #define USE_LONGIO from
-ne2k-pci.c) should let you use the card.
-
-
-__Probem:__
-ISA Plug and Play NE2000 (such as !RealTek 8019) is not detected.
-
-
-__Reason:__
-The original NE2000 specification (and hence the linux NE2000 driver)
-does not have support for Plug and Play.
-
-
-__Solution:__
-Use the DOS configuration disk that came with the card to disable
-PnP, and to set the card to a specified I/O address and IRQ. Add
-a line to /etc/conf.modules like options ne io=0xNNN
-where 0xNNN is the hex I/O address you set the card to. (This
-assumes you are using a modular driver; if not then use an
-ether=,0xNNN,eth0 argument at boot). You may also have to
-enter the BIOS/CMOS setup and mark the IRQ as Legacy-ISA instead of
-PnP. Alternatively, if you
-need to leave PnP enabled for compatibility with some other operating
-system, then look into the ''isapnptools'' package. Try
-man isapnp to see if it is already installed on your system.
-If not, then have a look at the following URL:
-
-
-
-ISA PNP Tools
-
-
-
-
-__Problem:__
-NE*000 driver reports `not found (no reset ack)' during boot
-probe.
-
-
-__Reason:__
-This is related to the above change. After the initial
-verification that an 8390 is at the probed I/O address, the
-reset is performed. When the card has completed the reset,
-it is supposed to acknowedge that the reset has completed.
-Your card doesn't, and so the driver assumes that no NE card
-is present.
-
-
-__Solution:__
-You can tell the driver that you have a bad card by using
-an otherwise unused mem_end hexidecimal value of 0xbad at
-boot time. You ''have'' to also supply a non-zero I/O base
-for the card when using the 0xbad override. For example,
-a card that is at 0x340 that doesn't ack the reset
-would use something like:
-
-
-
-
-LILO: linux ether=,0x340,,0xbad,eth0
-
-
-
-
-
-
-This will allow the card detection to continue, even if your
-card doesn't ACK the reset. If you are using the driver as
-a module, then you can supply the option bad=0xbad just
-like you supply the I/O address.
-
-
-__Problem:__
-NE*000 card hangs machine at first network access.
-
-
-__Reason:__
-This problem has been reported for kernels as old as 1.1.57
-to the present. It appears confined to a few software configurable
-clone cards. It appears that they expect to be initialized in
-some special way.
-
-
-__Solution:__
-Several people have reported that running the supplied DOS
-software config program and/or the supplied DOS driver prior
-to warm booting (i.e. loadlin or the `three-finger-salute')
-into linux allowed the card to work. This would indicate
-that these cards need to be initialized in a particular
-fashion, slightly different than what the present Linux
-driver does.
-
-
-__Problem:__
-NE*000 ethercard at 0x360 doesn't get detected.
-
-
-__Reason:__
-Your NE2000 card is 0x20 wide in
-I/O space, which makes it hit the parallel port at 0x378.
-Other devices that could be there are the second floppy
-controller (if equipped) at 0x370 and the secondary
-IDE controller at 0x376--0x377.
-If the port(s) are already registered by another driver, the
-kernel will not let the probe happen.
-
-
-__Solution:__
-Either move your card to an address like 0x280, 0x340, 0x320
-or compile without parallel printer support.
-
-
-__Problem:__
-Network `goes away' every time I print something (NE2000)
-
-
-__Reason:__
-Same problem as above, but you have an older kernel that
-doesn't check for overlapping I/O regions. Use the
-same fix as above, and get a new kernel while you are at it.
-
-
-__Problem:__
-NE*000 ethercard probe at 0xNNN: 00 00 C5 ... not found.
-(invalid signature yy zz)
-
-
-__Reason:__
-First off, do you have a NE1000 or NE2000 card at the addr. 0xNNN?
-And if so, does the hardware address reported look like a valid
-one? If so, then you have a poor NE*000 clone. All NE*000 clones
-are supposed to have the value 0x57 in bytes 14 and 15 of the
-SA PROM on the card. Yours doesn't -- it has `yy zz' instead.
-
-
-__Solution:__
-There are two ways to get around this. The easiest is to
-use an 0xbad mem_end value as described above for the
-`no reset ack' problem. This will bypass the signature check,
-as long as a non-zero I/O base is also given. This way no
-recompilation of the kernel is required.
-
-
-The second method (for hackers) involves changing the driver
-itself, and then recompiling your kernel (or module).
-The driver (/usr/src/linux/drivers/net/ne.c) has a "Hall of Shame"
-list at about line 42. This list is used to detect poor clones.
-For example, the DFI cards use `DFI' in the first 3 bytes of the
-PROM, instead of using 0x57 in bytes 14 and 15, like they are
-supposed to.
-
-
-__Problem:__
-The machine hangs during boot right after the `8390...' or
-`WD....' message. Removing the NE2000 fixes the problem.
-
-
-__Solution:__
-Change your NE2000 base address to something like 0x340.
-Alternatively, you
-can use the ``reserve='' boot argument in conjunction with
-the ``ether='' argument to protect the card from other
-device driver probes.
-
-
-__Reason:__
-Your NE2000 clone isn't a good enough clone. An active
-NE2000 is a bottomless pit that will trap any driver
-autoprobing in its space.
-Changing the NE2000 to a less-popular
-address will move it out of the way of other autoprobes,
-allowing your machine to boot.
-
-
-
-
-
-__Problem:__
-The machine hangs during the SCSI probe at boot.
-
-
-__Reason:__
-It's the same problem as above, change the
-ethercard's address, or use the reserve/ether boot arguments.
-
-
-__Problem:__
-The machine hangs during the soundcard probe at boot.
-
-
-__Reason:__
-No, that's really during the silent SCSI probe, and it's
-the same problem as above.
-
-
-__Problem:__
-NE2000 not detected at boot - no boot messages at all
-
-
-__Solution:__
-There is no `magic solution' as there can be a number of
-reasons why it wasn't detected. The following list should
-help you walk through the possible problems.
-
-
-1) Build a new kernel with only the device drivers that you need.
-Verify that you are indeed booting the fresh kernel. Forgetting to
-run lilo, etc. can result in booting the old one. (Look closely at
-the build time/date reported at boot.) Sounds obvious, but we have
-all done it before. Make sure the driver is in fact included in
-the new kernel, by checking the System.map file for names
-like ne_probe.
-
-
-2) Look at the boot messages carefully. Does it ever even mention
-doing a ne2k probe such
-as `NE*000 probe at 0xNNN: not found (blah blah)'
-or does it just fail silently. There is a big difference.
-Use dmesg|more
-to review the boot messages after logging in, or hit Shift-!PgUp
-to scroll the screen up after the boot has completed and the login
-prompt appears.
-
-
-3) After booting, do a cat /proc/ioports and verify
-that the full iospace that the card will require is vacant. If
-you are at 0x300 then the ne2k driver will ask
-for 0x300-0x31f. If any other device driver has registered
-even one port anywhere in that range, the probe will not
-take place at that address and will silently continue to the next
-of the probed addresses. A common case is having the lp driver
-reserve 0x378 or the second IDE channel reserve 0x376
-which stops the ne driver from probing 0x360-0x380.
-
-
-4) Same as above for cat /proc/interrupts. Make sure no
-other device has registered the interrupt that you set
-the ethercard for. In this case, the probe will happen, and the
-ether driver will complain loudly at boot about not being able to
-get the desired IRQ line.
-
-
-5) If you are still stumped by the silent failure of the driver, then
-edit it and add some printk() to the probe. For example, with the ne2k
-you could add/remove lines (marked with a `+' or `-') in
-linux/drivers/net/ne.c like:
-
-
-
-----
-
-int reg0 = inb_p(ioaddr);
-+ printk("NE2k probe - now checking %x\n",ioaddr);
-- if (reg0 == 0xFF)
-+ if (reg0 == 0xFF) {
-+ printk("NE2k probe - got 0xFF (vacant I/O port)\n");
-return ENODEV;
-+ }
-
-----
-
-
-Then it will output messages for each port address that it checks,
-and you will see if your card's address is being probed or not.
-
-
-6) You can also get the ne2k diagnostic from Don's ftp site (mentioned
-in the howto as well) and see if it is able to detect your card after
-you have booted into linux. Use the `-p 0xNNN' option to tell it
-where to look for the card. (The default is 0x300 and it doesn't
-go looking elsewhere, unlike the boot-time probe.)
-The output from when it finds a card will look something like:
-
-
-
-----
-
-Checking the ethercard at 0x300.
-Register 0x0d (0x30d) is 00
-Passed initial NE2000 probe, value 00.
-8390 registers: 0a 00 00 00 63 00 00 00 01 00 30 01 00 00 00 00
-SA PROM : 00 00 00 00 c0 c0 b0 b0 05 05 65 65 05 05 20 20
-SA PROM 0x10: 00 00 07 07 0d 0d 01 01 14 14 02 02 57 57 57 57
-NE2000 found at 0x300, using start page 0x40 and end page 0x80.
-
-----
-
-
-Your register values and PROM values will probably be different.
-Note that all the PROM values are doubled for a 16 bit card, and
-that the ethernet address (00:00:c0:b0:05:65) appears in the
-first row, and the double 0x57 signature appears at the
-end of the PROM.
-
-
-The output from when there is no card installed at 0x300
-will look something like this:
-
-
-
-----
-
-Checking the ethercard at 0x300.
-Register 0x0d (0x30d) is ff
-Failed initial NE2000 probe, value ff.
-8390 registers: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-SA PROM : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-SA PROM 0x10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-Invalid signature found, wordlength 2.
-
-----
-
-
-The 0xff values arise because that is the value that
-is returned when one reads a vacant I/O port. If you happen
-to have some other hardware in the region that is probed, you
-may see some non 0xff values as well.
-
-
-7) Try warm booting into linux from a DOS boot floppy (via loadlin)
-after running the supplied DOS driver or config program. It may be doing
-some extra (i.e. non-standard) "magic" to initialize the card.
-
-
-8) Try Russ Nelson's ne2000.com packet driver to see if even it can
-see your card -- if not, then things do not look good. Example:
-
-
-
-
-A:> ne2000 0x60 10 0x300
-
-
-
-The arguments are software interrupt vector, hardware IRQ,
-and I/O base. You can get it from any msdos archive in
-pktdrv11.zip -- The current version may be newer than 11.
-
-
-
-
-
-
-
-
-
-
-!! 2.6 Problems with SMC Ultra/EtherEZ and WD80*3 cards
-
-
-
-
-
-
-__Problem:__
-You get messages such as the following:
-
-
-
-
-eth0: bogus packet size: 65531, status=0xff, nxpg=0xff
-
-
-
-__Reason:__
-There is a shared memory problem.
-
-
-__Solution:__
-The most common reason for this is PCI machines that are
-not configured to map in ISA memory devices. Hence you
-end up reading the PC's RAM (all 0xff values) instead of
-the RAM on the card that contains the data from the
-received packet.
-
-
-Other typical problems that are easy to fix are board conflicts,
-having cache or `shadow ROM' enabled for that region, or
-running your ISA bus faster than 8Mhz. There are also a
-surprising number of memory failures on ethernet cards,
-so run a diagnostic program if you have one for your
-ethercard.
-
-
-__Problem:__
-SMC EtherEZ doesn't work in non-shared memory (PIO) mode.
-
-
-__Reason:__
-Older versions of the Ultra driver only supported the card
-in the shared memory mode of operation.
-
-
-__Solution:__
-The driver in kernel version 2.0 and above also supports the
-programmed I/O mode of operation. Upgrade to v2.0 or newer.
-
-
-__Problem:__
-Old wd8003 and/or jumper-settable wd8013 always get the IRQ wrong.
-
-
-__Reason:__
-The old wd8003 cards and jumper-settable wd8013 clones don't
-have the EEPROM that the driver can read the IRQ setting from.
-If the driver can't read the IRQ, then it tries to auto-IRQ
-to find out what it is. And if auto-IRQ returns zero, then
-the driver just assigns IRQ 5 for an 8 bit card or IRQ 10 for
-a 16 bit card.
-
-
-__Solution:__
-Avoid the auto-IRQ code, and tell the kernel what the IRQ
-that you have jumpered the card to in your module configuration
-file (or via a boot time argument for in-kernel drivers).
-
-
-__Problem:__
-SMC Ultra card is detected as wd8013, but the IRQ and shared
-memory base is wrong.
-
-
-__Reason:__
-The Ultra card looks a lot like a wd8013, and if the Ultra
-driver is not present in the kernel, the wd driver may
-mistake the ultra as a wd8013. The ultra probe comes before the
-wd probe, so this usually shouldn't happen. The ultra stores
-the IRQ and mem base in the EEPROM differently than a wd8013,
-hence the bogus values reported.
-
-
-__Solution:__
-Recompile with only the drivers you need in the kernel. If you
-have a mix of wd and ultra cards in one machine, and are using
-modules, then load the ultra module first.
-
-
-
-
-!! 2.7 Problems with 3Com cards
-
-
-
-__Problem:__
-The 3c503 picks IRQ N, but this is needed for some
-other device which needs IRQ N. (eg. CD ROM driver, modem, etc.)
-Can this be fixed without compiling this into the kernel?
-
-
-__Solution:__
-The 3c503 driver probes for a free IRQ line in the order
-{5, 9/2, 3, 4}, and it should pick a line which isn't being
-used. The driver chooses when
-the card is ifconfig'ed into operation.
-
-
-If you are using a modular driver, you can use module
-parameters to set various things, including the IRQ value.
-
-
-The following selects IRQ9, base
-location 0x300, <ignored value>, and if_port #1 (the
-external transceiver).
-
-
-
-
-
-
-
-io=0x300 irq=9 xcvr=1
-
-
-
-Alternately, if the driver is compiled into the kernel,
-you can set the same values at boot by passing
-parameters via LILO.
-
-
-
-
-LILO: linux ether=9,0x300,,1,eth0
-
-
-
-The following selects IRQ3, probes for the base location,
-<ignored value>, and the default if_port #0 (the internal
-transceiver)
-
-
-
-
-LILO: linux ether=3,,,,eth0
-
-
-
-__Problem:__
-3c503: configured interrupt X invalid, will use autoIRQ.
-
-
-__Reason:__
-The 3c503 card can only use one of IRQ{5, 2/9, 3, 4}
-(These are the only lines that are connected to the card.)
-If you pass in an IRQ value that is not in the above
-set, you will get the above message.
-Usually, specifying an interrupt value for the 3c503 is
-not necessary. The 3c503 will autoIRQ when it gets
-ifconfig'ed, and pick one of IRQ{5, 2/9, 3, 4}.
-
-
-__Solution:__
-Use one of the valid IRQs listed above, or enable
-autoIRQ by not specifying the IRQ line at all.
-
-
-__Problem:__
-The supplied 3c503 drivers don't use the AUI (thicknet) port.
-How does one choose it over the default thinnet port?
-
-
-__Solution:__
-The 3c503 AUI port can be selected at boot-time for in-kernel
-drivers, and at module insertion for modular drivers.
-The selection is overloaded onto the low bit of
-the currently-unused dev->rmem_start variable, so a boot-time
-parameter of:
-
-
-
-
-LILO: linux ether=,,,1,eth0
-
-
-
-should work for in-kernel drivers.
-
-
-To specify the AUI port when loading as a module, just append
-xcvr=1 to the module options line along with
-your I/O and IRQ values.
-
-
-
-
-
-
-
-!!2.8 FAQs Not Specific to Any Card.
-
-
-
-
-
-
-
-
-!Linux and ISA Plug and Play Ethernet Cards
-
-
-
-
-
-For best results (and minimum aggravation) it is recommended
-that you use the (usually DOS) program that came with your
-card to disable the PnP mechanism and set it to a fixed
-I/O address and IRQ. Make sure the I/O address you use is
-probed by the driver at boot, or if using modules then supply
-the address as an io= option in /etc/conf.modules.
-You may also have to enter the BIOS/CMOS setup and mark the IRQ
-as Legacy-ISA instead of PnP (if your computer has this option).
-
-
-Note that you typically don't need DOS installed to run a
-DOS based configuration program. You can usually just boot
-a DOS floppy disk and run them from the supplied floppy disk.
-You can also download OpenDOS and FreeDOS for free.
-
-
-If you require PnP enabled for compatibility with some other
-operating system then you will have to use the isapnptools
-package with linux to configure the card(s) each time at boot.
-You will still have to make sure the I/O address chosen for the
-card is probed by the driver or supplied as an io= option.
-
-
-Some systems have an `enable PnP OS' (or similar named)
-option in the BIOS/CMOS setup menu which will need to
-be disabled in nearly all cases or the cards won't
-work properly, or even be detected . Best described by one
-user who said `I don't know what it does behind the scenes,
-but it seems to be evil.'
-
-
-
-
-!Ethercard is Not Detected at Boot.
-
-
-
-
-
-The usual reason for this is that people are using a kernel
-that does not have support for their particular card built
-in. For a modular kernel, it usually means that the required
-module has not been requested for loading, or that an I/O
-address needs to be specified as a module option.
-
-
-If you are using a modular based kernel, such as those installed
-by most of the linux distributions, then try and use the
-configuration utility for the distribution to select the module
-for your card. For ISA cards, it is a good idea to determine
-the I/O address of the card and add it as an
-option (e.g. io=0x340) if the configuration utility asks
-for any options. If there is no configuration utility, then
-you will have to add the correct module name (and options)
-to /etc/conf.modules -- see man modprobe for
-more details.
-
-
-If you are using a pre-compiled kernel that is part of
-a distribution set, then check the documentation to see which
-kernel you installed, and if it was built with support
-for your particular card. If it wasn't, then your
-options are to try and get one that has support
-for your card, or build your own.
-
-
-It is usually wise to build your own kernel with only
-the drivers you need, as this cuts down on the kernel
-size (saving your precious RAM for applications!) and
-reduces the number of device probes that can upset
-sensitive hardware. Building a kernel is not as complicated
-as it sounds. You just have to answer yes or no to
-a bunch of questions about what drivers you want, and
-it does the rest.
-
-
-The next main cause is having another device using part
-of the I/O space that your card needs. Most cards are
-16 or 32 bytes wide in I/O space. If your card is set
-at 0x300 and 32 bytes wide, then the driver will ask
-for 0x300-0x31f. If any other device driver has registered
-even one port anywhere in that range, the probe will not
-take place at that address and the driver will silently
-continue to the next of the probed addresses. So, after
-booting, do a cat /proc/ioports and verify that the
-full I/O space that the card will require is vacant.
-
-
-Another problem is having your card jumpered to an I/O
-address that isn't probed by default. The list of
-probed addresses for each driver is easily found just
-after the text comments in the driver source.
-Even if the I/O setting of your card is
-not in the list of probed addresses, you can supply
-it at boot (for in-kernel drivers) with
-the ether= command as described in
-Passing Ethernet Arguments...
-Modular drivers can make use of the io= option
-in /etc/conf.modules to
-specify an address that isn't probed by default.
-
-
-
-
-
-
-
-!ifconfig reports the wrong I/O address for the card.
-
-
-
-
-
-No it doesn't. You are just interpreting it incorrectly.
-This is ''not'' a bug, and the numbers reported are correct. It just
-happens that some 8390 based cards (wd80x3, smc-ultra, etc) have the
-actual 8390 chip living at an offset from the first assigned I/O port.
-This is the value stored in
-dev->base_addr, and is what ifconfig reports. If you
-want to see the full range of ports that your card uses, then try
-cat /proc/ioports which will give the numbers you expect.
-
-
-
-
-!PCI machine detects card but driver fails probe.
-
-
-
-
-
-Some PCI BIOSes may not enable all PCI cards at power-up,
-especially if the BIOS option `PNP OS' is enabled. This
-mis-feature is to support the current release of Windows which
-still uses some real-mode drivers. Either disable this option,
-or try and upgrade to a newer driver which has the code to
-enable a disabled card.
-
-
-
-
-!Shared Memory ISA cards in PCI Machine do not work (0xffff)
-
-
-
-
-
-This will usually show up as reads of lots of 0xffff values.
-No shared memory cards of any type will work in a PCI machine
-unless you have the PCI ROM BIOS/CMOS SETUP configuration set
-properly. You have to set it to allow shared memory access
-from the ISA bus for the memory region that your card is trying
-to use. If you can't figure out which settings are applicable
-then ask your supplier or local computer guru. For AMI BIOS,
-there is usually a "Plug and Play" section where there will
-be an ``ISA Shared Memory Size'' and ``ISA Shared Memory Base''
-settings. For cards like the wd8013 and SMC Ultra, change the
-size from the default of `Disabled' to 16kB, and change the base
-to the shared memory address of your card.
-
-
-
-
-
-
-
-!Card seems to send data but never receives anything.
-
-
-
-
-
-Do a cat /proc/interrupts.
-A running total of the number of interrupt events your
-card generates will be in the list given from the above.
-If it is zero and/or doesn't increase when you try to use
-the card then there is probably a physical interrupt
-conflict with another device installed in the computer
-(regardless of whether or not the other device has a
-driver installed/available).
-Change the IRQ of one of the two devices to a free IRQ.
-
-
-
-
-
-
-
-!Asynchronous Transfer Mode (ATM) Support
-
-
-
-
-
-Werner Almesberger has been working on ATM support
-for linux.
-He has been working with the Efficient Networks ENI155p
-board (
-Efficient Networks)
-and the Zeitnet ZN1221 board
-(
-Zeitnet).
-
-
-Werner says that the driver for the ENI155p is rather
-stable, while the driver for the ZN1221 is presently
-unfinished.
-
-
-Check the latest/updated status at the following URL:
-
-
-
-Linux ATM Support
-
-
-
-!Gigabyte Ethernet Support
-
-
-
-
-
-Is there any gigabyte ethernet support for Linux?
-
-
-Yes, there are currently at least two.
-A driver for the Packet Engines G-NIC PCI Gigabit Ethernet adapter
-is available in the v2.0 and v2.2 kernels
-For more details, support, and driver updates, see:
-
-
-http://www.scyld.com/linux/drivers/yellowfin.html
-
-
-The acenic.c driver available in the v2.2 kernels
-can be used for the Alteon AceNIC Gigabit Ethernet card
-and other Tigon based cards such as the 3Com 3c985.
-The driver should also work on the !NetGear GA620, however
-this has yet to be verified.
-
-
-
-
-!FDDI Support
-
-
-Is there FDDI support for Linux?
-
-
-Yes. Larry Stefani has written
-a driver for v2.0 with Digital's DEFEA (FDDI EISA)
-and DEFPA (FDDI PCI) cards.
-This was included into the v2..24 kernel. Currently
-no other cards are supported though.
-
-
-
-
-!Full Duplex Support
-
-
-
-
-
-Will Full Duplex give me 20MBps? Does Linux support it?
-
-
-Cameron Spitzer writes the following about full duplex 10Base-T
-cards: ``If you connect it to a full duplex switched hub,
-and your system is fast enough and not doing much else, it can
-keep the link busy in both directions.
-There is no such thing as full duplex 10BASE-2 or 10BASE-5
-(thin and thick coax).
-Full Duplex works by disabling collision detection in the adapter.
-That's why you can't do it with coax; the LAN won't run that way.
-10BASE-T (RJ45 interface) uses separate wires for send and receive,
-so it's possible to run both ways at the same time. The switching
-hub takes care of the collision problem. The signalling rate
-is 10 Mbps.''
-
-
-So as you can see, you still will only be able to receive or
-transmit at 10Mbps, and hence don't expect a 2x performance
-increase. As to whether it is supported or not, that depends
-on the card and possibly the driver. Some cards may do
-auto-negotiation, some may need driver support, and some may
-need the user to select an option in a card's EEPROM configuration.
-Only the serious/heavy user would notice the difference between
-the two modes anyway.
-
-
-
-
-!Ethernet Cards for Linux on SMP Machines
-
-
-
-
-
-If you spent the extra money on a multi processor (MP) computer then
-buy a good ethernet card as well. For v2.0 kernels it wasn't really
-an issue, but it definitely is for v2.2. Most of the older
-non-intelligent (e.g. ISA bus PIO and shared memory design) cards
-were never designed with any consideration for use on a MP machine.
-The executive summary is to buy an intelligent modern design
-card and make sure the driver has been written (or updated) to
-handle MP operation. (The key words here are `modern design' - the
-PCI-NE2000's are just a 10+ year old design on a modern bus.)
-Looking for the text spin_lock in the driver source is a good
-indication that the driver has been written to deal with MP operation.
-The full details of why you should buy a good card for MP use (and
-what happens if you dont) follow.
-
-
-In v2.0 kernels, only one processor was allowed `in kernel'
-(i.e. changing kernel data and/or running device drivers) at any
-given time. So from the point of view of the card (and the associated
-driver) nothing was different from uni processor (UP) operation and
-things just continued to work. (This was the easiest way to get a
-working MP version of Linux - one big lock around the whole kernel
-only allows one processor in at a time. This way you know that you
-won't have two processors trying to change the same thing at the
-same time!)
-
-
-The downside to only allowing one processor in
-the kernel at a time was that you only got MP performance
-if the running programs were self contained and calculation intensive.
-If the programs did a lot of input/output (I/O) such as reading or
-writing data to disk or over a network, then all but one of the
-processors would be stalled waiting on their I/O requests to be
-completed while the one processor running in kernel frantically
-tries to run all the device drivers to fill the I/O requests. The
-kernel becomes the bottleneck and since there is only one processor
-running in the kernel, the performance of a MP machine in the heavy
-I/O, single-lock case quickly degrades close to that of a single
-processor machine.
-
-
-Since this is clearly less than ideal (esp. for file/WWW servers,
-routers, etc.) the v2.2 kernels have finer grained locking - meaning
-that more than one processor can be in the kernel at a time. Instead
-of one big lock around the whole kernel, there are a lot of smaller
-locks protecting critical data from being manipulated by more than
-one processor at a time - e.g. one processor can be running the
-driver for the network card, while another processor
-is running the driver for the disk drive at the same time.
-
-
-Okay, with that all in mind here are the snags: The finer locking
-means that you can have one processor trying to send data
-out through an ethernet driver while another processor tries to
-access the same driver/card to do something else (such as get the
-card statistics for cat /proc/net/dev). Oops - your card
-stats just got sent out over the wire, while you got data for
-your stats instead. Yes, the card got confused by being asked
-to do two (or more!) things at once, and chances are it crashed
-your machine in the process.
-
-
-So, the driver that worked for UP is
-no longer good enough - it needs to be updated with locks that
-control access to the underlying card so that the three tasks of
-receive, transmit and manipulation
-of configuration data are serialized to
-the degree required by the card for stable operation. The scary
-part here is that a driver not yet updated with locks for stable
-MP operation will probably appear to be working in a MP machine
-under light network load, but will crash the machine or at least
-exhibit strange behaviour when two (or more!) processors try to
-do more than one of these three tasks at the same time.
-
-
-The updated MP aware ethernet driver will (at a
-minimum) require a lock
-around the driver that limits access at the entry points
-from the kernel into the driver to `one at a time please'.
-With this in place, things will be serialized so that the
-underlying hardware should be treated just as if it was being
-used in a UP machine, and so it should be stable. The downside
-is that the one lock around the whole ethernet driver has
-the same negative performance implications that having one big
-lock around the whole kernel had (but on a smaller scale) - i.e.
-you can only have one processor dealing with the card
-at a time.
-
[[Technical Note: The performance impact may also include
-increased interrupt latencies if the locks that need to be
-added are of the irqsave type and they are held
-for a long time.
]
-
-
-Possible improvements on this situation can be made in two
-ways. You can try to minimize the time between when the lock is
-taken and when it is released, and/or you can implement finer
-grained locking within the driver (e.g. a lock around the whole
-driver would be overkill if a lock or two protecting against
-simultaneous access to a couple of sensitive registers/settings
-on the card would suffice).
-
-
-However, for older non-intelligent
-cards that were never designed with MP use in mind, neither of
-these improvements may be feasible. Worse yet is that the
-non-intelligent cards typically require the processor to move
-the data between the card and the computer memory, so in a
-worst case scenario the lock will be held the whole time that
-it takes to move each 1.5kB data packet over an ISA bus.
-
-
-The more modern intelligent cards typically move network data
-directly to and from the computer memory without any help from
-a processor. This is a big win, since the lock is then only
-held for the short time it takes the processor to tell the card
-where in memory to get/store the next network data packet. More
-modern card designs are less apt to require a single big
-lock around the whole driver as well.
-
-
-
-
-
-
-
-
-
-
-!Ethernet Cards for Linux on Alpha/AXP PCI Boards
-
-
-
-
-
-As of v2., only the 3c509, depca, de4x5, pcnet32, and all the
-8390 drivers (wd, smc-ultra, ne, 3c503, etc.) have
-been made `architecture independent' so as to work on the
-DEC Alpha CPU based systems. Other updated PCI drivers from
-Donald's WWW page may also work as these have been written
-with architecture independence in mind.
-
-
-Note that the changes that are required to make a driver
-architecture independent aren't that complicated.
-You only need to do the following:
-
-
--multiply all jiffies related values by HZ/100 to account
-for the different HZ value that the Alpha uses.
-(i.e timeout=2; becomes timeout=2*HZ/100;)
-
-
--replace any I/O memory (640k to 1MB) pointer dereferences with
-the appropriate readb() writeb() readl() writel() calls, as
-shown in this example.
-
-
-
-----
-
-- int *mem_base = (int *)dev->mem_start;
-- mem_base[[] = 0xba5eba5e;
-+ unsigned long mem_base = dev->mem_start;
-+ writel(0xba5eba5e, mem_base);
-
-----
-
-
--replace all memcpy() calls that have I/O memory as source or
-target destinations with the appropriate one of
-memcpy_fromio() or memcpy_toio().
-
-
-Details on handling memory accesses in an architecture
-independent fashion are documented in the file
-linux/Documentation/IO-mapping.txt that comes
-with recent kernels.
-
-
-
-
-!Ethernet for Linux on SUN/Sparc Hardware.
-
-
-For the most up to date information on Sparc stuff, try the
-following URL:
-
-
-
-Linux Sparc
-
-Note that some Sparc ethernet hardware gets its MAC address
-from the host computer, and hence you can end up with multiple
-interfaces all with the same MAC address. If you need to
-put more than one interface on the same net then use the
-hw option to ifconfig to assign unique MAC address.
-
-
-Issues regarding porting PCI drivers to the Sparc platform
-are similar to those mentioned above for the AXP platform.
-In addition there may be some endian issues, as the Sparc
-is big endian, and the AXP and ix86 are little endian.
-
-
-
-
-!Ethernet for Linux on Other Hardware.
-
-
-There are several other hardware platforms that Linux can
-run on, such as Atari/Amiga (m68k). As in the Sparc case
-it is best to check with the home site of each Linux
-port to that platform to see what is currently supported.
-(Links to such sites are welcome
here - send them in!)
-
-
-
-
-!Linking 10 or 100 BaseT without a Hub
-
-
-Can I link 10/100BaseT (RJ45) based systems together without a hub?
-
-
-You can link 2 machines easily, but no more than that, without
-extra devices/gizmos. See
-Twisted Pair
--- it explains
-how to do it. And no, you can't hack together a hub just by
-crossing a few wires and stuff. It's pretty much impossible
-to do the collision signal right without duplicating a hub.
-
-
-
-
-!SIOCSIFxxx: No such device
-
-
-I get a bunch of `SIOCSIFxxx: No such device' messages at
-boot, followed by a `SIOCADDRT: Network is unreachable'
-What is wrong?
-
-
-Your ethernet device was not detected at boot/module insertion
-time, and when
-ifconfig and route are run, they have no device
-to work with. Use dmesg | more to review the
-boot messages and see if there are any messages about
-detecting an ethernet card.
-
-
-
-
-!SIOCSFFLAGS: Try again
-
-
-I get `SIOCSFFLAGS: Try again' when I run `ifconfig' -- Huh?
-
-
-Some other device has taken the IRQ that your ethercard
-is trying to use, and so the ethercard can't use the IRQ.
-You don't necessairly need to reboot to resolve this, as
-some devices only grab the IRQs when they need them and
-then release them when they are done. Examples are some
-sound cards, serial ports, floppy disk driver, etc. You
-can type cat /proc/interrupts to see which interrupts
-are presently ''in use''. Most of the
-Linux ethercard drivers only grab the IRQ when they are
-opened for use via `ifconfig'. If you can get the other
-device to `let go' of the required IRQ line, then you
-should be able to `Try again' with ifconfig.
-
-
-
-
-!Using `ifconfig' and Link UNSPEC with HW-addr of 00:00:00:00:00:00
-
-
-When I run ifconfig with no arguments, it reports that
-LINK is UNSPEC (instead of 10Mbs Ethernet) and it
-also says that my hardware address is all zeros.
-
-
-This is because people are running a newer version of
-the `ifconfig' program than their kernel version. This
-new version of ifconfig is not able to report these properties
-when used in conjunction with an older kernel. You can either
-upgrade your kernel, `downgrade' ifconfig, or simply ignore
-it. The kernel knows your hardware address, so it really
-doesn't matter if ifconfig can't read it.
-
-
-You may also get strange information if the ifconfig
-program you are using is a lot older than the kernel you are
-using.
-
-
-
-
-!Huge Number of RX and TX Errors
-
-
-When I run ifconfig with no arguments, it reports that I
-have a huge error count in both rec'd and transmitted
-packets. It all seems to work ok -- What is wrong?
-
-
-Look again. It says RX packets ''big number'' __PAUSE__
-errors 0 __PAUSE__ dropped 0 __PAUSE__ overrun .
-And the same for the TX column.
-Hence the big numbers you are seeing are the total number of
-packets that your machine has rec'd and transmitted.
-If you still find it confusing, try typing
-cat /proc/net/dev instead.
-
-
-
-
-!Entries in /dev/ for Ethercards
-
-
-I have /dev/eth0 as a link to /dev/xxx. Is this right?
-
-
-Contrary to what you have heard, the files in /dev/* are not used.
-You can delete any /dev/wd0, /dev/ne0 and similar entries.
-
-
-
-
-!Linux and ``trailers''
-
-
-Should I disable trailers when I `ifconfig' my ethercard?
-
-
-You can't disable trailers, and you shouldn't want
-to. `Trailers' are a hack to avoid data copying in the
-networking layers. The idea was to use a trivial
-fixed-size header of size `H', put the variable-size header
-info at the end of the packet, and allocate all
-packets `H' bytes before the start of a page. While it was a
-good idea, it turned out to not work well in practice.
-If someone suggests the use of `-trailers', note that it
-is the equivalent of sacrificial goats blood. It won't do
-anything to solve the problem, but if problem fixes itself then
-someone can claim deep magical knowledge.
-
-
-
-
-
-
-
-!Access to the raw Ethernet Device
-
-
-How do I get access to the raw ethernet device in linux,
-without going through TCP/IP and friends?
-
-
-
-----
-
-int s=socket(AF_INET,SOCK_PACKET,htons(ETH_P_ALL));
-
-----
-
-
-This gives you a socket receiving every protocol type.
-Do recvfrom() calls to it and it will fill the sockaddr
-with device type in sa_family and the device name in the
-sa_data array. I don't know who originally invented
-SOCK_PACKET for Linux (its been in for ages) but its superb stuff.
-You can use it to send stuff raw too via sendto() calls.
-You have to have root access to do either of course.
-
-
-
-----
-
-!! 3. Performance Tips
-
-
-Here are some tips that you can use if you are suffering
-from low ethernet throughput, or to gain a bit more
-speed on those ftp transfers.
-
-
-The ttcp.c program is a good test for measuring
-raw throughput speed. Another common trick is to do
-a ftp> get large_file /dev/null where
-large_file is > 1MB and residing in the buffer
-cache on the Tx'ing machine. (Do the `get' at least
-twice, as the first time will be priming the buffer
-cache on the Tx'ing machine.) You want the file in
-the buffer cache because you are not interested in
-combining the file access speed from the disk into
-your measurement. Which is also why you send the
-incoming data to /dev/null instead of onto
-the disk.
-
-
-
-
-!!3.1 General Concepts
-
-
-
-Even an 8 bit card is able to receive back-to-back packets
-without any problems. The difficulty arises when the computer
-doesn't get the Rx'd packets off the card quick enough to
-make room for more incoming packets. If the computer does not
-quickly clear the card's memory of the packets already received,
-the card will have no place to put the new packet.
-
-
-In this case
-the card either drops the new packet, or writes over top of
-a previously received packet. Either one seriously interrupts
-the smooth flow of traffic by causing/requesting re-transmissions
-and can seriously degrade performance by up to a factor of 5!
-
-
-Cards with more onboard memory are able to ``buffer'' more
-packets, and thus can handle larger bursts of
-back-to-back packets without dropping packets.
-This in turn means that the card does not require as low
-a latency from the the host computer with respect to pulling
-the packets out of the buffer to avoid dropping packets.
-
-
-Most 8 bit cards have an 8kB buffer, and most 16 bit cards have
-a 16kB buffer. Most Linux drivers will reserve 3kB of that
-buffer (for two Tx buffers), leaving only 5kB of
-receive space for an 8 bit card. This is room enough for
-only three full sized (1500 bytes) ethernet packets.
-
-
-
-
-!!3.2 ISA Cards and ISA Bus Speed
-
-
-
-As mentioned above, if the packets are removed from the card
-fast enough, then a drop/overrun condition won't occur even
-when the amount of Rx packet buffer memory is small. The
-factor that sets the rate at which packets are removed from
-the card to the computer's memory is the speed of the data path
-that joins the two -- that being the ISA bus speed. (If the
-CPU is a dog-slow 386sx-16, then this will also play a role.)
-
-
-The recommended ISA bus clock is about 8MHz, but many
-motherboards and peripheral devices can be run at higher
-frequencies. The clock frequency for the ISA bus can usually
-be set in the CMOS setup, by selecting a divisor of the
-mainboard/CPU clock frequency. Some ISA and PCI/ISA
-mainboards may not have this option, and so you are stuck
-with the factory default.
-
-
-For example, here are some receive speeds as measured by
-the TTCP program on a 40MHz 486, with an 8 bit WD8003EP
-card, for different ISA bus speeds.
-
-
-
-----
-
-ISA Bus Speed (MHz) Rx TTCP (kB/s)
-------------------- --------------
-6.7 740
-13.4 970
-20.0 1030
-26.7 1075
-
-----
-
-
-You would be hard pressed to do better than 1075kB/s with
-''any'' 10Mb/s ethernet card, using TCP/IP. However, don't expect
-every system to work at fast ISA bus speeds. Most systems will
-not function properly at speeds above 13MHz. (Also, some
-PCI systems have the ISA bus speed fixed at 8MHz, so that
-the end user does not have the option of increasing it.)
-
-
-In addition to faster transfer speeds, one will usually also
-benefit from a reduction in CPU usage due to the shorter
-duration memory and I/O cycles. (Note that hard disks and
-video cards located on the ISA bus will also usually experience
-a performance increase from an increased ISA bus speed.)
-
-
-Be sure to back up your data prior to experimenting with
-ISA bus speeds in excess of 8MHz, and thouroughly test
-that all ISA peripherals are operating properly after
-making any speed increases.
-
-
-
-
-!!3.3 Setting the TCP Rx Window
-
-
-
-
-
-
-Once again, cards with small amounts of onboard RAM and
-relatively slow data paths between the card and the computer's
-memory run into trouble. The default TCP Rx
-window setting is 32kB, which means that a fast computer on
-the same subnet as you can dump 32k of data on you without
-stopping to see if you received any of it okay.
-
-
-Recent versions of the route command have the ability
-to set the size of this window on the fly. Usually it is only
-for the local net that this window must be reduced, as computers
-that are behind a couple of routers or gateways are `buffered'
-enough to not pose a problem. An example usage would be:
-
-
-
-----
-
-route add <whatever> ... window <win_size>
-
-----
-
-
-where win_size is the size of the window you wish to
-use (in bytes). An 8 bit 3c503 card on an ISA bus operating
-at a speed of 8MHz or less would work well with a window
-size of about 4kB. Too large a window will cause overruns
-and dropped packets, and a drastic reduction in ethernet
-throughput. You can check the operating status by doing
-a cat /proc/net/dev which will display any
-dropped or overrun conditions that occurred.
-
-
-
-
-!!3.4 Increasing NFS performance
-
-
-
-Some people have found that using 8 bit
-cards in NFS clients causes poorer than expected performance,
-when using 8kB (native Sun) NFS packet size.
-
-
-The possible reason for this could be due to the difference
-in on board buffer size between the 8 bit and the 16 bit cards.
-The maximum ethernet packet size is about 1500 bytes. Now that
-8kB NFS packet will arrive as about 6 back to back maximum size
-ethernet packets. Both the 8 and 16 bit cards have no problem
-Rx'ing back to back packets. The problem arises when the machine
-doesn't remove the packets from the cards buffer in time, and the
-buffer overflows. The fact that 8 bit cards take an extra ISA
-bus cycle per transfer doesn't help either. What you ''can'' do
-if you have an 8 bit card is either set the NFS transfer
-size to 2kB (or even 1kB), or try increasing the ISA bus speed
-in order to get the card's buffer cleared out faster.
-I have found that an old WD8003E card at 8MHz (with no other
-system load) can keep up with a large receive at 2kB NFS size,
-but not at 4kB, where performance was degraded by a factor of three.
-
-
-On the other hand, if the default mount option is to use 1kB
-size and you have at least a 16 bit ISA card, you may find
-a significant increase in going to 4kB (or even 8kB).
-
-
-
-----
-
-!! 4. Vendor/Manufacturer/Model Specific Information
-
-
-
-
-
-The following lists many cards in alphabetical order by vendor
-name and then product identifier. Beside each product ID, you
-will see either `Supported', `Semi-Supported' or `Not Supported'.
-
-
-Supported means that a driver for that card exists, and many
-people are happily using it and it seems quite reliable.
-
-
-Semi-Supported means that a driver exists, but at least one
-of the following descriptions is true:
-(1) The driver and/or hardware are buggy, which may cause poor
-performance, failing connections or even crashes.
-(2) The driver is new or the card is fairly uncommon,
-and hence the driver has
-seen very little use/testing and the driver author has had
-very little feedback. Obviously (2) is preferable to (1), and
-the individual description of the card/driver should make it
-clear which one holds true. In either case, you will probably have
-to answer `Y' when asked ``Prompt for development and/or
-incomplete code/drivers?'' when running make config.
-
-
-Not Supported means there is not a driver currently available
-for that card. This could be due to a lack of interest in
-hardware that is rare/uncommon, or because the vendors won't
-release the hardware documentation required to write a driver.
-
-
-Note that the difference between `Supported' and `Semi-Supported'
-is rather subjective, and is based on user feedback observed
-in newsgroup postings and mailing list messages. (After all, it
-is impossible for one person to test all drivers with all cards
-for each kernel version!!!) So be warned that you may find
-a card listed as semi-supported works perfectly for you (which
-is great), or that a card listed as supported gives you no end
-of troubles and problems (which is not so great).
-
-
-After the status, the name of the driver given in the linux kernel
-is listed. This will also be the name of the driver module that
-would be used in the alias eth0 driver_name line that is
-found in the /etc/conf.modules module configuration file.
-
-
-
-
-
-
-
-!! 4.1 3Com
-
-
-
-
-
-
-If you are not sure what your card is, but you think it is a
-3Com card, you can probably figure it out from the assembly
-number. 3Com has a document `Identifying 3Com Adapters By
-Assembly Number' (ref 24500002) that would most likely clear
-things up. See
-Technical Information from 3Com
-for info on how to get documents from 3Com.
-
-
-Also note that 3Com has a WWW/FTP site with various goodies:
-www.3Com.com that you may want to check out. They
-even have linux drivers for some of their cards there you
-may wish to test out. It has been reported that their
-drivers are not stable and/or unuseable on SMP and non
-ix86 based machines, so you may want to keep that in mind.
-
-
-
-
-
-
-
-! 3c501
-
-
-Status: Semi-Supported, Driver Name: 3c501
-
-
-This obsolete stone-age 8 bit card is really
-too brain-damaged to use. Avoid it like the plague. Do not
-purchase this card, even as a joke. It's performance
-is horrible, and it breaks in many ways.
-
-
-For those not yet convinced, the 3c501 can only do one
-thing at a time -- while you are removing one packet
-from the single-packet buffer it cannot receive
-another packet, nor can it receive a packet while
-loading a transmit packet. This was fine for a
-network between two 8088-based computers where
-processing each packet and replying took 10's of
-msecs, but modern networks send back-to-back
-packets for almost every transaction.
-
-
-AutoIRQ works, DMA isn't used, the autoprobe only
-looks at 0x280 and 0x300, and the debug level is set
-with the third boot-time argument.
-
-
-Once again, the use of a 3c501 is ''strongly discouraged''!
-Even more so with a IP multicast kernel, as you will
-grind to a halt while listening to ''all'' multicast
-packets. See the comments at the top of the source code
-for more details.
-
-
-
-
-! !EtherLink II, 3c503, 3c503/16
-
-
-Status: Supported, Driver Name: 3c503 (+8390)
-
-
-The 3c503 does not have ``EEPROM setup'',
-so a diagnostic/setup program
-isn't needed before running the card with Linux. The
-shared memory address of the 3c503 is set using jumpers
-that are shared with the boot PROM address. This is
-confusing to people familiar with other ISA cards,
-where you always leave the jumper set to ``disable''
-unless you have a boot PROM.
-
-
-These cards should be about the same speed as the same bus
-width WD80x3, but turn out to be actually a bit slower.
-These shared-memory ethercards also have a
-programmed I/O mode that doesn't use the 8390
-facilities (their engineers found too many bugs!)
-The Linux 3c503 driver can also work with the 3c503
-in programmed-I/O mode, but this is slower and less
-reliable than shared memory mode. Also, programmed-I/O
-mode is not as well tested when updating the drivers.
-You shouldn't use the programmed-I/O mode
-unless you need it for MS-DOS compatibility.
-
-
-The 3c503's IRQ line is set in software, with no hints
-from an EEPROM. Unlike the MS-DOS drivers, the
-Linux driver has capability to autoIRQ: it uses the
-first available IRQ line in {5,2/9,3,4}, selected each
-time the card is ifconfig'ed. (Older driver versions
-selected the IRQ at boot time.) The ioctl() call
-in `ifconfig' will return EAGAIN if no IRQ line is
-available at that time.
-
-
-Some common problems that people have with the 503
-are discussed in
-Problems with....
-
-
-If you intend on using this driver as a loadable module
-you should probably see
-Using the Ethernet Drivers as Modules
-for module specific information.
-
-
-Note that some old diskless 386 workstations have an on board
-3c503 (made by 3Com and sold under different names, like `Bull')
-but the vendor ID is not a 3Com ID and so it won't be detected.
-More details can be found in the Etherboot package, which you
-will need anyways to boot these diskless boxes.
-
-
-
-
-! Etherlink Plus 3c505
-
-
-Status: Semi-Supported, Driver Name: 3c505
-
-
-These cards use the i82586 chip but are not that many of them about.
-It is included in the standard kernel, but it is classed as
-an alpha driver. See
-Alpha Drivers
-for important information on using alpha-test ethernet drivers
-with Linux.
-
-
-There is also the file
-/usr/src/linux/drivers/net/README.3c505
-that you should read if you are going to use one of these cards.
-It contains various options that you can enable/disable.
-
-
-
-
-! Etherlink-16 3c507
-
-
-Status: Semi-Supported, Driver Name: 3c507
-
-
-This card uses one of the Intel chips, and the
-development of the driver is closely related to
-the development of the Intel Ether Express driver.
-The driver is included in the standard kernel
-release, but as an alpha driver.
-See
-Alpha Drivers for important
-information on using alpha-test ethernet drivers
-with Linux.
-
-
-
-
-! Etherlink III, 3c509 / 3c509B
-
-
-Status: Supported, Driver Name: 3c509
-
-
-This card is fairly inexpensive and has
-good performance for an ISA non-bus-master design.
-The drawbacks are that the original 3c509
-requires very low interrupt latency. The 3c509B
-shouldn't suffer from the same problem, due to
-having a larger buffer. (See below.) These cards
-use PIO transfers, similar to a ne2000 card, and so
-a shared memory card such as a wd8013 will be more
-efficient in comparison.
-
-
-The original 3c509 has a small packet buffer
-(4kB total, 2kB Rx, 2kB Tx), causing the driver to
-occasionally drop a packet if interrupts are masked for
-too long. To minimize this problem, you can try unmasking
-interrupts during IDE disk transfers (see man hdparm) and/or
-increasing your ISA bus speed so IDE transfers finish sooner.
-
-
-The newer model 3c509B has 8kB on board, and the buffer
-can be split 4/4, 5/3 or 6/2 for Rx/Tx. This setting
-is changed with the DOS configuration utility, and is stored
-on the EEPROM. This should alleviate the
-above problem with the original 3c509.
-
-
-3c509B users should use either the supplied DOS
-utility to disable the ''plug and play'' support, ''and''
-to set the output media to what they require. The linux
-driver currently does ''not'' support the Autodetect
-media setting, so you ''have'' to select 10Base-T or
-10Base-2 or AUI.
-Note that to turn off PnP entirely, you should do a
-3C5X9CFG /PNP:DISABLE and then follow that with a hard
-reset to ensure that it takes effect.
-
-
-Some people ask about the ``Server or Workstation'' and ``Highest
-Modem Speed'' settings presented in the DOS configuration utility.
-Donald writes ``These are only hints to the drivers, and the Linux
-driver does not use these parameters: it always optimizes for high
-throughput rather than low latency (`Server'). Low latency was
-critically important for old, non-windowed, IPX throughput.
-To reduce the latency the MS-DOS driver for the 3c509 disables
-interrupts for some operations, blocking serial port interrupts.
-Thus the need for the `modem speed' setting. The Linux driver avoids
-the need to disable interrupts for long periods by operating only
-on whole packets e.g. by not starting to transmit a packet
-until it is completely transferred to the card.''
-
-
-Note that the ISA card detection uses a different method
-than most cards. Basically, you ask the cards to respond
-by sending data to an ID_PORT (port 0x100 to 0x1ff
-on intervals of 0x10).
-This detection method means that
-a particular card will ''always'' get detected first
-in a multiple ISA 3c509 configuration.
-The card with the lowest hardware ethernet address
-will ''always'' end up being eth0. This shouldn't matter
-to anyone, except for those people who want to assign
-a 6 byte hardware address to a particular interface.
-If you have multiple 3c509 cards, it is best to append
-ether=,,ethN commands without the I/O port specified
-(i.e. use I/O=zero) and allow the probe to sort out which
-card is first. Using a non-zero I/O value will ensure that it
-does not detect all your cards, so don't do it.
-
-
-If this really bothers you, have a look at Donald's latest driver,
-as you may be able to use a 0x3c509 value in the unused mem
-address fields to order the detection to suit your needs.
-
-
-
-
-! 3c515
-
-
-Status: Supported, Driver Name: 3c515
-
-
-This is 3Com's ISA 100Mbps offering,
-codenamed ``!CorkScrew''. A relatively new driver from
-Donald for these cards is included in the v2.2 kernels.
-For the most up to date information, you
-should probably look on the Vortex page:
-
-
-
-Vortex
-
-
-
-
-
-
-! 3c523
-
-
-Status: Semi-Supported, Driver Name: 3c523
-
-
-This MCA bus card uses the i82586, and Chris Beauregard
-has modified the ni52 driver to work with these cards. The
-driver for it can be found in the v2.2 kernel source tree.
-
-
-More details can be found on the
-MCA-Linux page at
-http://glycerine.cetmm.uni.edu/mca/
-
-
-
-
-! 3c527
-
-
-Status: Not Supported.
-
-
-Yes, another MCA card. No, not too much interest in it.
-Better chances with the 3c529 if you are stuck with MCA.
-
-
-
-
-! 3c529
-
-
-Status: Supported, Driver Name: 3c509
-
-
-This card actually uses the same chipset as the 3c509.
-Donald actually put hooks into the 3c509 driver to check
-for MCA cards after probing for EISA cards, and before
-probing for ISA cards, long before MCA support was
-added to the kernel. The required MCA probe code is
-included in the driver shipped with v2.2 kernels.
-More details can be found on the MCA-Linux page at:
-
-
-http://glycerine.cetmm.uni.edu/mca/
-
-
-
-
-!3c562
-
-
-Status: Supported, Driver Name: 3c589 (distributed separately)
-
-
-This PCMCIA card is the combination of a 3c589B ethernet card
-with a modem. The modem appears as a standard modem to the
-end user. The only difficulty is getting the two separate
-linux drivers to share one interrupt. There are a couple of new
-registers and some hardware interrupt sharing support.
-You need to use a v2.0 or newer kernel that has the support
-for interrupt sharing.
-
-
-
-
-
-Thanks again to Cameron for getting a sample unit and
-documentation sent off to David Hinds. Look for support in David's
-PCMCIA package release.
-
-
-See
-PCMCIA Support for more
-info on PCMCIA chipsets, socket enablers, etc.
-
-
-
-
-!3c575
-
-
-Status: Unknown.
-
-
-A driver for this PCMCIA card is under development and hopefully
-will be included in David's PCMCIA package in the future.
-Best to check the PCMCIA package to get the current status.
-
-
-
-
-
-
-
-! 3c579
-
-
-Status: Supported, Driver Name: 3c509
-
-
-The EISA version of the 509. The current EISA version
-uses the same 16 bit wide chip rather than a 32 bit
-interface, so the performance increase isn't stunning.
-Make sure the card is configured for EISA addressing mode.
-Read the above 3c509 section for info on the driver.
-
-
-
-
-
-
-
-! 3c589 / 3c589B
-
-
-Status: Semi-Supported, Driver Name: 3c589
-
-
-Many people have been using this PCMCIA card for quite some time
-now. Note that support for it is not (at present) included
-in the default kernel source tree.
-The "B" in the name means the same here as it does for
-the 3c509 case.
-
-
-There are drivers available on Donald's ftp site and in
-David Hinds PCMCIA package. You will also need
-a supported PCMCIA controller chipset.
-See
-PCMCIA Support for more
-info on PCMCIA drivers, chipsets, socket enablers, etc.
-
-
-
-
-! 3c590 / 3c595
-
-
-Status: Supported, Driver Name: 3c59x
-
-
-These ``Vortex'' cards are for PCI bus machines, with the '590
-being 10Mbps and the '595 being 3Com's 100Mbs offering.
-Also note that you can run the '595 as a '590 (i.e. in a 10Mbps mode).
-The driver is included in the v2.0 kernel source, but is
-also continually being updated. If you have problems with the
-driver in the v2.0 kernel, you
-can get an updated driver from the following URL:
-
-
-
-Vortex
-
-Note that there are two different 3c590 cards out there, early
-models that had 32kB of on-board memory, and later models that
-only have 8kB of memory. Chances are you won't be
-able to buy a new 3c59x for much longer, as it is being replaced
-with the 3c90x card. If you are buying a used one off somebody,
-try and get the 32kB version. The 3c595 cards have 64kB,
-as you can't get away with only 8kB RAM at 100Mbps!
-
-
-A thanks to Cameron Spitzer and Terry Murphy of 3Com for
-sending cards and documentation to Donald so he could write
-the driver.
-
-
-
-
-!3c592 / 3c597
-
-
-Status: Supported, Driver Name: 3c59x
-
-
-These are the EISA versions of the 3c59x
-series of cards. The 3c592/3c597 (aka Demon) should work with
-the vortex driver discussed above.
-
-
-
-
-!3c900 / 3c905 / 3c905B / 3c905C
-
-
-Status: Supported, Driver Name: 3c59x
-
-
-These cards (aka `Boomerang', aka !EtherLink III XL) have been
-released to take over the place of the 3c590/3c595 cards.
-
-
-The support for the Cyclone `B' revision was only recently added.
-To use this card with older v2.0 kernels, you must obtain the
-updated 3c59x.c driver from Donald's site at:
-
-
-
-Vortex-Page
-
-
-
-
-
-
-!3c985
-
-
-Status: Supported, Driver Name: acenic
-
-
-This driver, by Jes Sorensen, is available in v2.2 kernels
-It supports several other Gigabit cards in addition to
-the 3Com model.
-
-
-
-
-!! 4.2 Accton
-
-
-
-
-
-
-
-
-!Accton MPX
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-Don't let the name fool you. This is still supposed to be a
-NE2000 compatible card, and should work with the ne2000 driver.
-
-
-
-
-!Accton EN1203, EN1207, !EtherDuo-PCI
-
-
-Status: Supported, Driver Name: de4x5, tulip, OR rtl8139
-
-
-Apparently there have been several revisions of the
-EN1207 (A through D) with A, B, and C being tulip based
-and the D revision being !RealTek 8139 based (different driver).
-So as with all purchases, you should try and make sure
-you can return it if it doesn't work for you.
-
-
-
-
-!Accton EN2209 Parallel Port Adaptor (!EtherPocket)
-
-
-Status: Semi-Supported, Driver Name: ?
-
-
-A driver for these parallel port adapters is available
-but not yet part of the 2.0 or 2.1 kernel source. You have to
-get the driver from:
-
-
-http://www.unix-ag.uni-siegen.de/~nils/accton_linux.html
-
-
-
-
-
-
-
-!Accton EN2212 PCMCIA Card
-
-
-Status: Semi-Supported, Driver Name: ?
-
-
-David Hinds has been working on a driver for this card, and
-you are best to check the latest release of his PCMCIA
-package to see what the present status is.
-
-
-
-
-
-
-
-!! 4.3 Allied Telesyn/Telesis
-
-
-
-
-
-
-
-
-! AT1500
-
-
-Status: Supported, Driver Name: lance
-
-
-These are a series of low-cost ethercards using the 79C960 version
-of the AMD LANCE. These are bus-master cards, and hence one of
-the faster ISA bus ethercards available.
-
-
-DMA selection and chip numbering information can be found in
-AMD LANCE.
-
-
-More technical information on AMD LANCE based Ethernet cards
-can be found in
-Notes on AMD....
-
-
-
-
-! AT1700
-
-
-Status: Supported, Driver Name: at1700
-
-
-Note that to access this driver during make config
-you still have to answer `Y' when asked ``Prompt for
-development and/or incomplete code/drivers?'' at
-the first. This is simply due to lack of feedback on the
-driver stability due to it being a relatively rare card.
-If you have problems with the driver that ships with
-the kernel then you may be interested in the alternative
-driver available at:
-http://www.cc.hit-u.ac.jp/nagoya/at1700/
-
-
-The Allied Telesis AT1700 series ethercards are based
-on the Fujitsu MB86965. This chip uses a programmed
-I/O interface, and a pair of fixed-size transmit
-buffers. This allows small groups of packets to
-be sent back-to-back, with a short pause while
-switching buffers.
-
-
-A unique feature is the ability to drive 150ohm STP
-(Shielded Twisted Pair) cable commonly installed for
-Token Ring, in addition to 10baseT 100ohm UTP
-(unshielded twisted pair). A fibre optic
-version of the card (AT1700FT) exists as well.
-
-
-The Fujitsu chip used on the AT1700 has a design flaw:
-it can only be fully reset by doing a power cycle of the machine.
-Pressing the reset button doesn't reset the bus interface. This
-wouldn't be so bad, except that it can only be reliably detected
-when it has been freshly reset. The solution/work-around is to
-power-cycle the machine if the kernel has a problem detecting
-the AT1700.
-
-
-
-
-! AT2400
-
-
-Status: Supported, Driver Name: ne, ne2k-pci (+8390)
-
-
-Yet another PCI NE2000 clone card. This one is based on
-the !RealTek 8029 chip.
-
-
-
-
-! AT2450
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-This is the PCI version of the AT1500, and it doesn't suffer
-from the problems that the Boca 79c970 PCI card does.
-DMA selection and chip numbering information can be found in
-AMD LANCE.
-
-
-More technical information on AMD LANCE based Ethernet cards
-can be found in
-Notes on AMD....
-
-
-
-
-!AT2500
-
-
-Status: Semi-Supported, Driver Name: rtl8139
-
-
-This card uses the !RealTek 8139 chip - see the
-section
-!RealTek 8139.
-
-
-
-
-! AT2540FX
-
-
-Status: Semi-Supported, Driver Name: eepro100
-
-
-This card uses the i82557 chip, and hence may/should work
-with the eepro100 driver. If you try this please send in
-a report so this information can be updated.
-
-
-
-
-!! 4.4 AMD / Advanced Micro Devices
-
-
-
-
-
-
-Carl Ching of AMD was kind enough to provide a very
-detailed description of all the relevant AMD ethernet
-products which helped clear up this section.
-
-
-
-
-! AMD LANCE (7990, 79C960/961/961A, PCnet-ISA)
-
-
-Status: Supported, Driver Name: lance
-
-
-There really is no AMD ethernet card. You are probably reading this
-because the only markings you could find on your card said AMD
-and the above number. The 7990 is the original `LANCE' chip,
-but most stuff (including this document) refer to all these
-similar chips as `LANCE' chips. (...incorrectly, I might add.)
-
-
-These above numbers refer to chips from AMD
-that are the heart of many ethernet cards.
-For example, the Allied Telesis AT1500 (see
-AT1500) and the NE1500/2100 (see
-NE1500) use these chips.
-
-
-The 7990/79c90 have long been replaced by newer versions.
-The 79C960 (a.k.a. PCnet-ISA) essentially contains the 79c90
-core, along with all the other hardware support required, which
-allows a single-chip ethernet solution. The 79c961 (PCnet-ISA+)
-is a jumperless Plug and Play version of the '960. The final
-chip in the ISA series is the 79c961A (PCnet-ISA II), which
-adds full duplex capabilities.
-All cards with one of these chips should work with
-the lance.c driver, with the exception of very old cards that
-used the original 7990 in a shared memory configuration. These
-old cards can be spotted by the lack of jumpers for a DMA channel.
-
-
-One common problem people have is the `busmaster arbitration
-failure' message. This is printed out when the LANCE driver
-can't get access to the bus after a reasonable amount of time
-has elapsed (50us). This usually indicates that the motherboard
-implementation of bus-mastering DMA is broken, or some other device
-is hogging the bus, or there is a DMA channel conflict. If your BIOS
-setup has the `GAT option' (for Guaranteed Access Time) then try
-toggling/altering that setting to see if it helps.
-
-
-Also note that the driver only looks at the addresses:
-0x300, 0x320, 0x340, 0x360 for a valid card, and any
-address supplied by an ether= boot argument is silently
-ignored (this will be fixed) so make sure your card is configured
-for one of the above I/O addresses for now.
-
-
-The driver will still work fine, even
-if more than 16MB of memory is installed, since low-memory
-`bounce-buffers' are used when needed (i.e. any data from
-above 16MB is copied into a buffer below 16MB before being
-given to the card to transmit.)
-
-
-The DMA channel can be set with the low bits
-of the otherwise-unused dev->mem_start value (a.k.a. PARAM_1).
-(see
-PARAM_1)
-If unset it is probed for by enabling each free DMA channel
-in turn and checking if initialization succeeds.
-
-
-The HP-J2405A board is an exception: with this board it's easy
-to read the EEPROM-set values for the IRQ, and DMA.
-
-
-See
-Notes on AMD...
-for more info on these chips.
-
-
-
-
-! AMD 79C965 (PCnet-32)
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-This is the PCnet-32 -- a 32 bit bus-master version of the
-original LANCE chip for VL-bus and local bus systems.
-chip. While these chips can be operated with the standard
-lance.c driver, a 32 bit version (pcnet32.c) is
-also available that does not have to concern itself with
-any 16MB limitations associated with the ISA bus.
-
-
-
-
-! AMD 79C970/970A (PCnet-PCI)
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-This is the PCnet-PCI -- similar to the PCnet-32, but designed
-for PCI bus based systems. Please see the
-above PCnet-32 information.
-This means that you need to build a kernel with
-PCI BIOS support enabled. The '970A adds full duplex support
-along with some other features to the original '970 design.
-
-
-Note that the Boca implementation of the 79C970 fails on
-fast Pentium machines. This is a hardware problem, as it
-affects DOS users as well. See the Boca section for more
-details.
-
-
-
-
-!AMD 79C971 (PCnet-FAST)
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-This is AMD's 100Mbit chip for PCI systems, which also supports
-full duplex operation. It was introduced in June 1996.
-
-
-
-
-!AMD 79C972 (PCnet-FAST+)
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-This has been confirmed to work just like the '971.
-
-
-
-
-!AMD 79C974 (PCnet-SCSI)
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-This is the PCnet-SCSI -- which is basically treated like
-a '970 from an Ethernet point of view.
-Also see the above information. Don't ask if the
-SCSI half of the chip is supported -- this is the
-''Ethernet-!HowTo'', not the SCSI-!HowTo.
-
-
-
-
-!! 4.5 Ansel Communications
-
-
-
-
-
-
-
-
-!AC3200 EISA
-
-
-Status: Semi-Supported, Driver Name: ac3200
-
-
-Note that to access this driver during make config
-you still have to answer `Y' when asked ``Prompt for
-development and/or incomplete code/drivers?'' at
-the first. This is simply due to lack of feedback on the
-driver stability due to it being a relatively rare card.
-
-
-This driver is included in the present kernel as an
-alpha test driver. It is based on the common NS8390
-chip used in the ne2000 and wd80x3 cards.
-Please see
-Alpha Drivers in
-this document for important information regarding
-alpha drivers.
-
-
-If you use it, let one of us know how things work out,
-as feedback has been low, even though the driver has
-been in the kernel since v1.1.25.
-
-
-If you intend on using this driver as a loadable module
-you should probably see
-Using the Ethernet Drivers as Modules
-for module specific information.
-
-
-
-
-!!4.6 Apricot
-
-
-
-
-
-
-
-
-!Apricot Xen-II On Board Ethernet
-
-
-Status: Semi-Supported, Driver Name: apricot
-
-
-This on board ethernet uses an i82596 bus-master chip.
-It can only be at I/O address 0x300.
-By looking at the driver source,
-it appears that the IRQ is also hardwired to 10.
-
-
-Earlier versions of the driver had a tendency to think
-that anything living at 0x300 was an apricot NIC.
-Since then the hardware address is checked to avoid these
-false detections.
-
-
-
-
-!! 4.7 Arcnet
-
-
-
-Status: Supported, Driver Name: arcnet (arc-rimi, com90xx, com20020)
-
-
-With the very low cost and better performance of ethernet,
-chances are that most places will be giving away their Arcnet
-hardware for free, resulting in a lot of home systems with Arcnet.
-
-
-An advantage of Arcnet is that all of the cards have identical
-interfaces, so one driver will work for everyone. It also has
-built in error handling so that it supposedly never loses a packet.
-(Great for UDP traffic!) Note that the arcnet driver
-uses `arc0' as its name instead of the usual `eth0' for
-ethernet devices.
-
-
-There are information files contained in the standard kernel for
-setting jumpers, general hints and where to mail bug reports.
-
-
-Supposedly the driver also works with the 100Mbs ARCnet cards
-as well!
-
-
-
-
-!!4.8 AT&T
-
-
-
-
-
-
-Note that AT&T's StarLAN is an orphaned technology, like
-!SynOptics !LattisNet, and can't be used in a standard 10Base-T
-environment, without a hub that `speaks' both.
-
-
-
-
-!AT&T T7231 (LanPACER+)
-
-
-Status: Not Supported.
-
-
-These StarLAN cards use an interface similar to the i82586
-chip. At one point, Matthijs Melchior
-(matthijs.n.melchior@att.com) was playing with the 3c507
-driver, and almost had something useable working. Haven't
-heard much since that.
-
-
-
-
-!! 4.9 Boca Research
-
-
-
-
-
-
-Yes, they make more than just multi-port serial cards.
-
-
-
-
-!Boca BEN400
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-Apparently this is a NE2000 clone, using a VIA VT86C916 chip.
-
-
-
-
-! Boca BEN (ISA, VLB, PCI)
-
-
-Status: Supported, Driver Name: lance, pcnet32
-
-
-These cards are based on AMD's PCnet chips.
-Perspective buyers should be warned that many users have had
-endless problems with these VLB/PCI cards. Owners of fast Pentium
-systems have been especially hit. Note that this is not a driver
-problem, as it hits DOS/Win/NT users as well.
-Boca's technical support number is (407) 241-8088, and you
-can also reach them at 75300.2672@compuserve.com.
-The older ISA cards don't appear to suffer the same problems.
-
-
-Boca was offering a `warranty repair' for
-affected owners, which involved adding one of the missing
-capacitors, but it appears that this fix didn't work 100
-percent for most people, although it helps some.
-
-
-More general information on the AMD chips can be found in
-AMD LANCE.
-
-
-More technical information on AMD LANCE based Ethernet cards
-can be found in
-Notes on AMD....
-
-
-
-
-!! 4.10 Cabletron
-
-
-
-
-
-
-Donald writes:
-`Yes, another one of these companies that won't release its
-programming information. They waited for months before actually
-confirming that all their information was proprietary, deliberately
-wasting my time. Avoid their cards like the plague if you can.
-Also note that some people have phoned Cabletron, and have been
-told things like `a D. Becker is working on a driver
-for linux' -- making it sound like I work for them. This is
-NOT the case.'
-
-
-
-
-
-Apparently Cabletron has changed their policy with respect to
-programming information (like Xircom) since Donald made the above
-comment several years ago -- send e-mail to support@ctron.com
-if you want to verify this or ask for programming information.
-However, at this point in time, there is little demand for
-modified/updated drivers for the older E20xx and E21xx cards.
-
-
-
-
-
-
-
-! E10**, E10**-x, E20**, E20**-x
-
-
-Status: Semi-Supported, Driver Name: ne (+8390)
-
-
-These are NEx000 almost-clones that are reported to
-work with the standard NEx000 drivers, thanks to a
-ctron-specific check during the probe. If there are
-any problems, they are unlikely to be fixed, as the
-programming information is unavailable.
-
-
-
-
-! E2100
-
-
-Status: Semi-Supported, Driver Name: e2100 (+8390)
-
-
-Again, there is not much one can do when the
-programming information is proprietary.
-The E2100 is a poor design. Whenever it maps its
-shared memory in during a packet transfer, it
-maps it into the ''whole 128K region!'' That means you
-__can't__ safely use another interrupt-driven shared
-memory device in that region, including another E2100.
-It will work most of the time, but every once in
-a while it will bite you. (Yes, this problem can
-be avoided by turning off interrupts while
-transferring packets, but that will almost certainly
-lose clock ticks.) Also, if you mis-program the board,
-or halt the machine at just the wrong moment, even
-the reset button won't bring it back. You will ''have''
-to turn it off and ''leave'' it off for about 30 seconds.
-
-
-Media selection is automatic, but you can override this
-with the low bits of the dev->mem_end parameter.
-See
-PARAM_2. Module users
-can specify an xcvr=N value as an option in
-the /etc/conf.modules file.
-
-
-Also, don't confuse the E2100 for a NE2100 clone.
-The E2100 is a shared memory !NatSemi DP8390 design,
-roughly similar to a brain-damaged WD8013, whereas
-the NE2100 (and NE1500) use a bus-mastering AMD
-LANCE design.
-
-
-There is an E2100 driver included in the standard kernel.
-However, seeing as programming info isn't available,
-don't expect bug-fixes. Don't use one
-unless you are already stuck with the card.
-
-
-If you intend on using this driver as a loadable module
-you should probably see
-Using the Ethernet Drivers as Modules
-for module specific information.
-
-
-
-
-! E22**
-
-
-Status: Semi-Supported, Driver Name: lance
-
-
-According to information in a Cabletron Tech Bulletin, these
-cards use the standard AMD PC-Net chipset (see
-AMD PC-Net) and should work with the generic lance
-driver.
-
-
-
-
-
-
-
-!!4.11 Cogent
-
-
-
-
-
-
-Here is where and how to reach them:
-
-
-
-
-
-
-
-Cogent Data Technologies, Inc.
-175 West Street, P.O. Box 926
-Friday Harbour, WA 98250, USA.
-Cogent Sales
-15375 S.E. 30th Place, Suite 310
-Bellevue, WA 98007, USA.
-Technical Support:
-Phone (360) 378-2929 between 8am and 5pm PST
-Fax (360) 378-2882
-Compuserve GO COGENT
-Bulletin Board Service (360) 378-5405
-Internet: support@cogentdata.com
-
-
-
-
-
-!EM100-ISA/EISA
-
-
-Status: Semi-Supported, Driver Name: smc9194
-
-
-These cards use the SMC 91c100 chip and may work with the
-SMC 91c92 driver, but this has yet to be verified.
-
-
-
-
-!Cogent eMASTER+, EM100-PCI, EM400, EM960, EM964
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-These are yet another DEC 21040 implementation that should
-hopefully work fine with the standard 21040 driver.
-
-
-The EM400 and the EM964 are four port cards using a
-DEC 21050 bridge and 4 21040 chips.
-
-
-See
-DEC 21040
-for more information on these cards, and the present driver
-situation.
-
-
-
-
-!!4.12 Compaq
-
-
-
-
-
-
-Compaq aren't really in the business of making ethernet
-cards, but a lot of their systems have embedded ethernet
-controllers on the motherboard.
-
-
-
-
-!Compaq Deskpro / Compaq XL (Embedded AMD Chip)
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-Machines such as the XL series have an AMD 79c97x PCI chip
-on the mainboard that can be used with the standard LANCE
-driver. But before you can use it, you have to do some
-trickery to get the PCI BIOS to a place where Linux can
-see it. Frank Maas was kind enough to provide the
-details:
-
-
-`` The problem with this Compaq machine however is that the PCI
-directory is loaded in high memory, at a spot where the Linux
-kernel can't (won't) reach. Result: the card is never detected nor
-is it usable (sideline: the mouse won't work either)
-The workaround (as described thoroughly in
-http://www-c724.uibk.ac.at/XL/)
-is to load MS-DOS, launch a little driver Compaq wrote and then
-load the Linux kernel using LOADLIN. Ok, I'll give you time to
-say `yuck, yuck', but for now this is the only working solution
-I know of. The little driver simply moves the PCI directory to
-a place where it is normally stored (and where Linux can find it).''
-
-
-More general information on the AMD chips can be found in
-AMD LANCE.
-
-
-
-
-!Compaq Nettelligent/!NetFlex (Embedded ThunderLAN Chip)
-
-
-Status: Supported, Driver Name: tlan
-
-
-These systems use a Texas Instruments ThunderLAN chip
-Information on the ThunderLAN driver can be found in
-ThunderLAN.
-
-
-
-
-!Compaq PCI card
-
-
-Status: Supported, Driver Name: eepro100
-
-
-Check your card - if it has part number 323551-821
-and/or an intel 82558 chip on it then it is another
-Intel EEPro100 based card.
-
-
-
-
-
-
-
-!!4.13 Danpex
-
-
-
-
-
-
-
-
-!Danpex EN9400
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-Yet another card based on the DEC 21040 chip, reported to
-work fine, and at a relatively cheap price.
-
-
-See
-DEC 21040
-for more information on these cards, and the present driver
-situation.
-
-
-
-
-!! 4.14 D-Link
-
-
-
-
-
-
-
-
-! DE-100, DE-200, DE-220-T, DE-250
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-Some of the early D-Link cards didn't have the 0x57
-PROM signature, but the ne2000 driver knows about them.
-For the software configurable cards, you can get the
-config program from www.dlink.com.
-The DE2** cards were the most
-widely reported as having the spurious transfer address
-mismatch errors with early versions of linux.
-Note that there are also cards from
-Digital (DEC) that are also named DE100 and DE200,
-but the similarity stops there.
-
-
-
-
-! DE-520
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-This is a PCI card using the PCI version of AMD's LANCE chip.
-DMA selection and chip numbering information can be found in
-AMD LANCE.
-
-
-More technical information on AMD LANCE based Ethernet cards
-can be found in
-Notes on AMD....
-
-
-
-
-!DE-528
-
-
-Status: Supported, Driver Name: ne, ne2k-pci (+8390)
-
-
-Apparently D-Link have also started making PCI NE2000 clones.
-
-
-
-
-
-
-
-! DE-530
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-This is a generic DEC 21040 PCI chip implementation,
-and is reported to work with the generic 21040 tulip driver.
-Note that this is NOT the DFE-530.
-
-
-See
-DEC 21040
-for more information on these cards, and the present driver
-situation.
-
-
-
-
-! DE-600
-
-
-Status: Supported, Driver Name: de600
-
-
-Laptop users and other folk who might want a quick
-way to put their computer onto the ethernet may want
-to use this. The driver is included with the default
-kernel source tree.
-Expect about 180kb/s transfer speed from this via the
-parallel port. You should read the README.DLINK
-file in the kernel source tree.
-
-
-Note that the device name that you pass to ifconfig
-is ''now'' eth0 and not the previously
-used dl0.
-
-
-If your parallel port is ''not'' at the standard 0x378
-then you will have to recompile, as the address is compiled
-directly into the driver. Also note that some laptops
-implement the on-board parallel port at 0x3bc which
-is where the parallel ports on monochrome cards were/are.
-
-
-
-
-! DE-620
-
-
-Status: Supported, Driver Name: de620
-
-
-Same as the DE-600, only with two output formats.
-Bjorn has written a driver for this model,
-for kernel versions 1.1 and above. See the above information
-on the DE-600.
-
-
-
-
-! DE-650
-
-
-Status: Semi-Supported, Driver Name: de650 (?)
-
-
-Some people have been using this PCMCIA card for
-some time now with their notebooks. It is a basic
-8390 design, much like a NE2000. The !LinkSys PCMCIA
-card and the IC-Card Ethernet are supposedly DE-650 clones
-as well. Note that at present, this driver is
-''not'' part of the standard kernel, and so you will
-have to do some patching.
-See
-PCMCIA Support in this document.
-
-
-
-
-!DFE-530TX
-
-
-Status Supported, Driver Name: via-rhine
-
-
-Another card using the VIA Rhine chipset.
-(see
-VIA Rhine)
-Don't confuse this with the DE-530 which is a tulip
-based card.
-
-
-
-
-!DFE-538TX
-
-
-Status Supported, Driver Name: rtl8139, 8139too
-
-
-This card uses the !RealTek 8139 chip - see the
-section
-!RealTek 8139.
-
-
-
-
-!! 4.15 DFI
-
-
-
-
-
-
-
-
-! DFINET-300 and DFINET-400
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-Yet another poor NE clone card - these
-use `DFI' in the first 3 bytes of the prom, instead
-of using 0x57 in bytes 14 and 15, which is what all the
-NE1000 and NE2000 cards should use. (The 300 is an 8 bit
-pseudo NE1000 clone, and the 400 is a pseudo NE2000 clone.)
-
-
-
-
-
-
-
-!! 4.16 Digital / DEC
-
-
-
-
-
-
-
-
-! DEPCA, DE100/1, DE200/1/2, DE210, DE422
-
-
-Status: Supported, Driver Name: depca
-
-
-There is documentation included in the source file
-`depca.c', which includes info on how to use more than
-one of these cards in a machine. Note that the DE422 is
-an EISA card. These cards are all based on the AMD LANCE chip.
-See
-AMD LANCE for more info.
-A maximum of two of the ISA cards can be used, because they
-can only be set for 0x300 and 0x200 base I/O address.
-If you are intending to do this, please read the notes in
-the driver source file depca.c in the standard kernel
-source tree.
-
-
-This driver will also work on Alpha CPU based machines, and
-there are various ioctl()s that the user can play with.
-
-
-
-
-! Digital !EtherWorks 3 (DE203, DE204, DE205)
-
-
-Status: Supported, Driver Name: ewrk3
-
-
-These cards use a proprietary
-chip from DEC, as opposed to the LANCE chip used in the
-earlier cards like the DE200. These cards support both shared
-memory or programmed I/O, although you take about a 50%performance hit if you use PIO mode. The shared memory size can
-be set to 2kB, 32kB or 64kB, but only 2 and 32 have been tested
-with this driver. David says that the performance is virtually
-identical between the 2kB and 32kB mode. There is more information
-(including using the driver as a loadable module) at the top
-of the driver file ewrk3.c and also in README.ewrk3.
-Both of these files come with the standard kernel distribution.
-This driver has Alpha CPU support like depca.c does.
-
-
-The standard driver has a number
-of interesting ioctl() calls that can be used to get or clear
-packet statistics, read/write the EEPROM, change the
-hardware address, and the like. Hackers can see the source
-code for more info on that one.
-
-
-David has also written a configuration utility for this
-card (along the lines of the DOS program NICSETUP.EXE)
-along with other tools. These can be found on
-most Linux FTP sites in the directory
-/pub/Linux/system/Network/management -- look for the
-file ewrk3tools-X.XX.tar.gz.
-
-
-
-
-
-
-
-! DE425 EISA, DE434, DE435, DE500
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-These cards are based on the 21040 chip mentioned below.
-The DE500 uses the 21140 chip to provide 10/100Mbs
-ethernet connections.
-Have a read of the 21040 section below for extra info.
-There are also some compile-time options available for
-non-DEC cards using this driver. Have a look at
-README.de4x5 for details.
-
-
-All the Digital cards will autoprobe for their media (except,
-temporarily, the DE500 due to a patent issue).
-
-
-This driver is also Alpha CPU ready and supports being loaded
-as a module. Users can access the driver internals through
-ioctl() calls - see the 'ewrk3' tools and the de4x5.c sources
-for information about how to do this.
-
-
-
-
-! DEC 21040, 21041, 2114x, Tulip
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-The DEC 21040 is a bus-mastering single chip ethernet solution
-from Digital, similar to AMD's PCnet chip. The 21040 is
-specifically designed for the PCI bus architecture.
-Apparently these chips are no longer being produced, as Intel
-has bought the semiconductor portion of DEC and is favouring
-their own ethernet chip(s).
-
-
-You have a choice of ''two'' drivers for cards based on this
-chip. There is the DE425 driver discussed above, and the
-generic 21040 `tulip' driver.
-
-
-__Warning:__ Even though your card may be based upon this chip,
-''the drivers may not work for you''. David C. Davies writes:
-
-
-``There are no guarantees that either `tulip.c' OR `de4x5.c'
-will run any DC2114x based card other than those they've been
-written to support. WHY?? You ask. Because there is a register,
-the General Purpose Register (CSR12) that (1) in the DC21140A is
-programmable by each vendor and they all do it differently
-(2) in the DC21142/3 this is now an SIA control register
-(a la DC21041). The only small ray of hope is that we can decode the
-SROM to help set up the driver. However, this is not a guaranteed
-solution since some vendors (e.g. SMC 9332 card) don't follow the
-Digital Semiconductor recommended SROM programming format."
-
-
-In non-technical terms, this means that if you aren't sure that an
-unknown card with a DC2114x chip will work with the linux driver(s),
-then make sure you can return the card to the place of
-purchase ''before'' you pay for it.
-
-
-The 21041 chip is also found in place of the 21040
-on most of the later SMC !EtherPower cards.
-The 21140 is for supporting 100Base-T and
-works with the Linux drivers for the 21040 chip.
-To use David's de4x5 driver with non-DEC cards, have a
-look at README.de4x5 for details.
-
-
-If you are having trouble with the tulip driver,
-you can try the newest version from Donald's ftp/WWW
-site.
-
-
-
-Tulip Driver
-
-There is also a (non-exhaustive) list of
-various cards/vendors that use the 21040 chip.
-
-
-
-
-!!4.17 Farallon
-
-
-
-Farallon sells !EtherWave adaptors and transceivers. This device
-allows multiple 10baseT devices to be daisy-chained.
-
-
-
-
-!Farallon Etherwave
-
-
-Status: Supported, Driver Name: 3c509
-
-
-This is reported to be a 3c509 clone that includes the
-!EtherWave transceiver. People have used these successfully
-with Linux and the present 3c509 driver. They are too expensive
-for general use, but are a great option for special cases. Hublet
-prices start at $125, and Etherwave
-adds $75-$100 to the price of the board -- worth
-it if you have pulled one wire too few, but not if you are two
-network drops short.
-
-
-
-
-!Farallon PCI 593
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-It has been reported that this card was detected with
-the de4x5 driver.
-
-
-
-
-!!4.18 Fujitsu
-
-
-
-
-
-
-Unlike many network chip manufacturers, Fujitsu have also
-made and sold some network cards based upon their chip.
-
-
-
-
-!Fujitsu FMV-181/182/183/184
-
-
-Status: Supported, Driver Name: fmv18x
-
-
-According to the driver, these cards are a straight forward
-Fujitsu MB86965 implementation, which would make them
-very similar to the Allied Telesis AT1700 cards.
-
-
-
-
-!! 4.19 Hewlett Packard
-
-
-
-
-
-
-The 272** cards use programmed I/O, similar to the NE*000 boards,
-but the data transfer port can be `turned off' when you aren't
-accessing it, avoiding problems with autoprobing drivers.
-
-
-Thanks to Glenn Talbott for helping clean up the confusion in this
-section regarding the version numbers of the HP hardware.
-
-
-
-
-!HP Night Director+ 10/100
-
-
-
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-Apparently these cards use the AMD 79C972 chip.
-
-
-
-
-
-
-
-! 27245A
-
-
-Status: Supported, Driver Name: hp (+8390)
-
-
-8 bit 8390 based 10BaseT, not recommended for all the
-8 bit reasons. It was re-designed a couple years
-ago to be highly integrated which caused some
-changes in initialization timing which only
-affected testing programs, not LAN drivers. (The
-new card is not `ready' as soon after switching
-into and out of loopback mode.)
-
-
-If you intend on using this driver as a loadable module
-you should probably see
-Using the Ethernet Drivers as Modules
-for module specific information.
-
-
-
-
-!HP !EtherTwist, PC Lan+ (27247, 27252A)
-
-
-Status: Supported, Driver Name: hp+ (+8390)
-
-
-The HP PC Lan+ is different to the standard HP PC Lan
-card. This driver was added to the list of drivers in the standard
-kernel during the v1.1.x development cycle. It can be
-operated in either a PIO mode like a ne2000, or a shared
-memory mode like a wd8013.
-
-
-The 47B is a 16 Bit 8390 based 10BaseT w/AUI, and
-the 52A is a 16 Bit 8390 based ThinLAN w/AUI.
-These cards have 32K onboard RAM for Tx/Rx packet buffering
-instead of the usual 16KB, and they both offer LAN
-connector autosense.
-
-
-If you intend on using this driver as a loadable module
-you should probably see
-Using the Ethernet Drivers as Modules
-for module specific information.
-
-
-
-
-!HP-J2405A
-
-
-Status: Supported, Driver Name: lance
-
-
-These are lower priced, and slightly faster than the
-27247/27252A, but are missing some features, such
-as AUI, ThinLAN connectivity, and boot PROM socket.
-This is a fairly generic LANCE design, but a minor
-design decision makes it incompatible with a generic
-`NE2100' driver. Special support for it (including
-reading the DMA channel from the board) is included
-thanks to information provided by HP's Glenn
-Talbott.
-
-
-More technical information on LANCE based cards can be found in
-Notes on AMD...
-
-
-
-!HP-Vectra On Board Ethernet
-
-
-Status: Supported, Driver Name: lance
-
-
-The HP-Vectra has an AMD PCnet chip on the motherboard.
-DMA selection and chip numbering information can be found in
-AMD LANCE.
-
-
-More technical information on LANCE based cards can be found in
-Notes on AMD...
-
-
-
-!HP 10/100 VG Any Lan Cards (27248B, J2573, J2577, J2585, J970, J973)
-
-
-Status: Supported, Driver Name: hp100
-
-
-
-
-
-This driver also supports some of the Compex VG products.
-Since the driver supports ISA, EISA and PCI cards, it
-is found under ISA cards when running make config
-on a kernel source.
-
-
-
-
-!HP !NetServer 10/100TX PCI (D5013A)
-
-
-Status: Supported, Driver Name: eepro100
-
-
-Apparently these are just a rebadged Intel !EtherExpress Pro
-10/100B card. See the Intel section for more information.
-
-
-
-
-
-
-
-!! 4.20 IBM / International Business Machines
-
-
-
-
-
-
-
-
-! IBM Thinkpad 300
-
-
-Status: Supported, Driver Name: znet
-
-
-This is compatible with the Intel based Zenith Z-note.
-See
-Z-note for more info.
-
-
-Supposedly this site has a comprehensive database of
-useful stuff for newer versions of the Thinkpad. I haven't
-checked it out myself yet.
-
-
-
-Thinkpad-info
-
-For those without a WWW browser handy, try
-peipa.essex.ac.uk:/pub/tp750/
-
-
-
-
-!IBM Credit Card Adaptor for Ethernet
-
-
-Status: Semi-Supported, Driver Name: ? (distributed separately)
-
-
-People have been using this PCMCIA card with Linux as well.
-Similar points apply, those being that you need a supported
-PCMCIA chipset on your notebook, and that you will have to
-patch the PCMCIA support into the standard kernel.
-See
-PCMCIA Support in this document.
-
-
-
-
-!IBM 10/100 !EtherJet PCI
-
-
-Status: Supported, Driver Name: eepro100
-
-
-This card is reported to be compatible with the Intel
-!EtherExpress Pro 100 driver.
-
-
-
-
-!IBM Token Ring
-
-
-Status: Semi-Supported, Driver Name: ibmtr
-
-
-To support token ring
-requires more than only writing a device driver, it also requires
-writing the source routing routines for token ring. It is the
-source routing that would be the most time comsuming to write.
-
-
-Initial driver development was done with IBM ISA and
-MCA token ring cards, and tested on an MCA 16/4 Megabit Token
-Ring board, but it should work with other Tropic based boards.
-
-
-
-
-!!4.21 ICL Ethernet Cards
-
-
-
-
-
-
-
-
-!ICL !EtherTeam 16i/32
-
-
-Status: Supported, Driver Name: eth16i
-
-
-This driver supports both the ISA (16i) and EISA (32) versions
-of the card. It uses the Fujitsu MB86965 chip that is also
-used on the at1700 cards.
-
-
-
-
-!! 4.22 Intel Ethernet Cards
-
-
-
-
-
-
-Note that the naming of the various Intel cards is ambiguous
-and confusing at best. If in doubt, then check the i8xxxx
-number on the main chip on the card or for PCI cards, use the
-PCI information in the /proc directory and then
-compare that to the numbers listed here.
-
-
-
-
-!Ether Express
-
-
-Status: Supported, Driver Name: eexpress
-
-
-This card uses the intel i82586.
-Earlier versions of this driver (in v1.2 kernels) were
-classed as alpha-test, as it didn't work well for most people.
-The driver in the v2.0 kernel seems to work much better
-for those who have tried it, although the driver source still
-lists it as experimental and more problematic on faster
-machines.
-
-
-The comments at the top of the
-driver source list some of the problems (and fixes!) associated
-with these cards. The slowdown hack of replacing all the outb
-with outb_p in the driver has been reported to avoid lockups
-for at least one user. Also check that the size of the RAM
-buffer reported by the driver matches what the Intel configuration
-utility reports.
-
-
-
-
-!Ether Express PRO/10 (PRO/10+)
-
-
-Status: Supported, Driver Name: eepro
-
-
-Bao Chau Ha has written a driver for these cards that has been
-included into early 1.3.x kernels. It may also work with some of
-the Compaq built-in ethernet systems that are based on the
-i82595 chip. You may have to use the configuration utility
-that came with the card to disable PnP support where applicable.
-
-
-
-
-!Ether Express PRO/10 PCI (EISA)
-
-
-Status: Semi-Supported, Driver Name: ? (distributed separately)
-
-
-There is a driver for the PCI version that is distributed
-separately from the default kernel.
-These cards use the PLX9036 PCI interface chip
-with the Intel i82596 LAN controller chip. If your card has
-the i82557 chip, then you ''don't'' have this card, but
-rather the version discussed next, and hence want the
-EEPro100 driver instead.
-
-
-You can get the alpha driver for the PRO/10 PCI card,
-along with instructions on how to use it at:
-
-
-
-EEPro10 Driver
-
-If you have the EISA card, you will probably have to hack the
-driver a bit to account for the different (PCI vs. EISA)
-detection mechanisms that are used in each case.
-
-
-
-
-
-
-
-! Ether Express PRO 10/100B
-
-
-Status: Supported, Driver Name: eepro100
-
-
-Note that this driver will ''not'' work with the older 100A cards.
-The chip numbers listed in the driver are i82557/i82558.
-For driver updates and/or driver support, have a look at:
-
-
-
-EEPro-100B Page
-
-
-
-!!4.23 Kingston
-
-
-
-Kingston make various cards, including NE2000+, AMD PCnet based
-cards, and DEC tulip based cards. Most of these cards should work
-fine with their respective driver. See
-Kingston Web Page
-
-
-
-
-
-
-!!4.24 !LinkSys
-
-
-
-!LinkSys make a handful of different NE2000 clones, some straight
-ISA cards, some ISA plug and play and some even ne2000-PCI clones
-based on one of the supported ne2000-PCI chipsets. There are
-just too many models to list here.
-
-
-!LinkSys are linux-friendly, with a linux specific WWW support
-page, and even have Linux printed on the boxes of some of their
-products. Have a look at:
-
-
-http://www.linksys.com/support/solution/nos/linux.htm
-
-
-
-
-!!LinkSys Etherfast 10/100 Cards.
-
-
-Status: Supported, Driver Name: tulip
-
-
-Note that with these cards there have been several `revisions' (i.e.
-different chipset used) all with the same card name. The 1st used
-the DEC chipset. The 2nd revision used the Lite-On PNIC 82c168 PCI
-Network Interface Controller, and the 3rd
-revision of the card uses a !LinkSys 82c169 NIC chip.
-Support for the latter two has been merged into the standard tulip
-driver -- you may need a driver upgrade to get support for them
-depending on how old your current driver version is.
-
-
-More PNIC information is available at:
-
-
-http://www.scyld.com/linux/drivers/pnic.html
-
-
-More information on the various versions of these cards can be found
-at the !LinkSys WWW site mentioned above.
-
-
-
-
-
-
-
-!!LinkSys Pocket Ethernet Adapter Plus (PEAEPP)
-
-
-Status: Supported, Driver Name: de620
-
-
-This is supposedly a DE-620 clone, and is reported to
-work well with that driver. See
-DE-620 for more information.
-
-
-
-
-!!LinkSys PCMCIA Adaptor
-
-
-Status: Supported, Driver Name: de650 (?)
-
-
-This is supposed to be a re-badged DE-650. See
-DE-650 for more information.
-
-
-
-
-!!4.25 Microdyne (Eagle)
-
-
-
-Eagle Technology (aka Novell cards) was sold to Microdyne.
-If you can't find your card listed here, check the Novell
-section of this document.
-While Microdyne are not actively selling network cards anymore,
-there is still some stuff relating to their products on their site
-at ftp.mcdy.com
-
-
-
-
-!Microdyne Exos 205T
-
-
-Status: Semi-Supported, Driver Name: ?
-
-
-Another i82586 based card. Dirk Niggemann
-dirk-n@dircon.co.uk
-has written a driver that he classes as ``pre-alpha''
-that he would like people to test. Mail him for more details.
-
-
-
-
-!!4.26 Mylex
-
-
-
-
-
-
-Mylex can be reached at the following numbers, in case anyone
-wants to ask them anything.
-
-
-
-
-MYLEX CORPORATION, Fremont
-Sales: 800-77-MYLEX, (510) 796-6100
-FAX: (510) 745-8016.
-
-
-
-They also have a web site:
-Mylex WWW Site
-
-
-
-!Mylex LNE390A, LNE390B
-
-
-Status: Supported, Driver Name: lne390 (+8390)
-
-
-These are fairly old EISA cards that make use of a shared
-memory implementation similar to the wd80x3. A driver for
-these cards is available in the current 2.1.x series of
-kernels. Ensure you set the shared memory address below
-1MB or above the highest address of the physical RAM installed in
-the machine.
-
-
-
-
-!Mylex LNP101
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-This is a PCI card that is based on DEC's 21040 chip.
-It is selectable between 10BaseT, 10Base2 and 10Base5 output.
-The LNP101 card has been verified to work with the generic
-21040 driver.
-
-
-See the section on the 21040 chip
-(
-DEC 21040)
-for more information.
-
-
-
-
-!Mylex LNP104
-
-
-Status: Semi-Supported, Driver Name: de4x5, tulip
-
-
-The LNP104 uses the DEC 21050 chip to deliver ''four''
-independent 10BaseT ports. It should work with recent 21040
-drivers that know how to share IRQs, but nobody has
-reported trying it yet (that I am aware of).
-
-
-
-
-!! 4.27 Novell Ethernet, NExxxx and associated clones.
-
-
-
-
-
-
-The prefix `NE' came from Novell Ethernet. Novell followed the
-cheapest !NatSemi databook design and sold the manufacturing rights
-(spun off?) Eagle, just to get reasonably-priced ethercards into
-the market. (The now ubiquitous NE2000 card.)
-
-
-
-
-! NE1000, NE2000
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-The ne2000 is now a generic name for a bare-bones design around
-the !NatSemi 8390 chip. They use programmed I/O rather than
-shared memory, leading to easier installation but
-slightly lower performance and a few problems.
-Some of the more common problems that arise
-with NE2000 cards are listed in
-Problems with...
-
-Some NE2000 clones use the National
-Semiconductor `AT/LANTic' 83905 chip, which offers
-a shared memory mode similar to the wd8013 and EEPROM
-software configuration. The shared memory mode will offer
-less CPU usage (i.e. more efficient) than the programmed
-I/O mode.
-
-
-In general it is not a good idea to put a NE2000
-clone at I/O address 0x300 because nearly
-''every'' device driver probes there at boot. Some
-poor NE2000 clones don't take kindly to being prodded
-in the wrong areas, and will respond by locking your
-machine. Also 0x320 is bad because SCSI drivers
-probe into 0x330.
-
-
-Donald has written a NE2000 diagnostic program (ne2k.c)
-for all ne2000 cards.
-See
-Diagnostic Programs for more
-information.
-
-
-If you intend on using this driver as a loadable module
-you should probably see
-Using the Ethernet Drivers as Modules
-for module specific information.
-
-
-
-
-! NE2000-PCI (!RealTek/Winbond/Compex)
-
-
-Status: Supported, Driver Name: ne, ne2k-pci (+8390)
-
-
-Yes, believe it or not, people are making PCI cards based on
-the more than ten year old interface
-design of the ne2000. At the moment
-nearly all of these cards are based on the !RealTek 8029 chip,
-or the Winbond 89c940 chip. The Compex, KTI, VIA and Netvin cards
-apparently also use these chips, but have a different PCI ID.
-
-
-The latest v2.0 kernel has support to automatically detect all
-these cards and use them. (If you are using a kernel v2..34 or
-older, you should upgrade to ensure your card will be detected.)
-There are now two drivers to choose from; the original ISA/PCI
-ne.c driver, and a relatively new PCI-only ne2k-pci.c
-driver.
-
-
-To use the original ISA/PCI driver you have to say `Y' to
-the `Other ISA cards' option when running make config as
-you are actually using the same NE2000 driver as the ISA cards
-use. (That should also give you a hint that these cards aren't
-anywhere as intelligent as say a PCNet-PCI or DEC 21040 card...)
-
-
-The newer PCI-only driver differs from the ISA/PCI driver in
-that all the support for old NE1000 8 bit cards has been removed
-and that data is moved to/from the card in bigger blocks, without
-any intervening pauses that the older ISA-NE2000's required for
-reliable operation. The result is a driver that is slightly
-smaller and slightly more efficient, but don't get too excited
-as the difference will not be obvious under normal use. (If you
-really wanted maximum efficiency/low CPU use, then a PCI-NE2000
-is simply a very poor choice.) Driver updates and more
-information can be found at:
-
-
-http://www.scyld.com/linux/drivers/ne2k-pci.html
-
-
-If you have a NE2000 PCI card that is ''not'' detected by
-the most current version of the driver, please contact the
-maintainer of the NE2000 driver as listed
-in /usr/src/linux/MAINTAINERS along with the output
-from a cat /proc/pci and dmesg so that
-support for your card can also be added to the driver.
-
-
-Also note that various card makers have been known to put
-`NE2000 Compatible' stickers on their product boxes even when
-it is completely different (e.g. PCNet-PCI or !RealTek 8139).
-If in doubt check the main chip number against this document.
-
-
-
-
-!NE-10/100
-
-
-Status: Not Supported.
-
-
-These are ISA 100Mbps cards based on the National Semiconductor
-DP83800 and DP83840 chips. There is currently no driver support,
-nor has anyone reported that they are working on a driver.
-Apparently documentation on the chip is unavailable with the
-exception of a single PDF file that doesn't give enough details
-for a driver.
-
-
-
-
-! NE1500, NE2100
-
-
-Status: Supported, Driver Name: lance
-
-
-These cards use the original 7990 LANCE chip from AMD and
-are supported using the Linux lance driver. Newer NE2100
-clones use the updated PCnet/ISA chip from AMD.
-
-
-Some earlier versions of the lance driver had problems
-with getting the IRQ line via autoIRQ from the original
-Novell/Eagle 7990 cards. Hopefully this is now fixed.
-If not, then specify the IRQ via LILO, and let us know
-that it still has problems.
-
-
-DMA selection and chip numbering information can be found in
-AMD LANCE.
-
-
-More technical information on LANCE based cards can be found in
-Notes on AMD...
-
-
-
-!NE/2 MCA
-
-
-Status: Semi-Supported, Driver Name: ne2
-
-
-There were a few NE2000 microchannel cards made by various
-companies. This driver, available in v2.2 kernels, will detect
-the following MCA cards: Novell Ethernet Adapter NE/2,
-Compex ENET-16 MC/P, and the Arco Ethernet Adapter AE/2.
-
-
-
-
-! NE3200
-
-
-Status: Not Supported.
-
-
-This old EISA card uses a 8MHz 80186 in conjunction with an i82586.
-Nobody is working on a driver for it, as there is no information
-available on the card, and no real demand for a driver either.
-
-
-
-
-! NE3210
-
-
-Status: Supported, Driver Name: ne3210 (+8390)
-
-
-This EISA card is completely different from the NE3200, as it
-uses a Nat Semi 8390 chip. The driver can be found in the v2.2
-kernel source tree. Ensure you set the shared memory address below
-1MB or above the highest address of the physical RAM installed in
-the machine.
-
-
-
-
-!NE5500
-
-
-Status: Supported, Driver Name: pcnet32
-
-
-These are just AMD PCnet-PCI cards ('970A) chips. More
-information on LANCE/PCnet based cards can be found in
-AMD LANCE.
-
-
-
-
-
-
-
-!!4.28 Proteon
-
-
-
-
-
-
-
-
-!Proteon P1370-EA
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-Apparently this is a NE2000 clone, and works fine with Linux.
-
-
-
-
-!Proteon P1670-EA
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-This is yet another PCI card that is based on DEC's Tulip chip.
-It has been reported to work fine with Linux.
-
-
-See the section on the 21040 chip
-(
-DEC 21040)
-for more driver information.
-
-
-
-
-
-
-
-!!4.29 Pure Data
-
-
-
-
-
-
-
-
-!PDUC8028, PDI8023
-
-
-Status: Supported, Driver Name: wd (+8390)
-
-
-The !PureData PDUC8028 and PDI8023 series of cards are
-`almost clones' of the wd80x3 cards - there is
-special code in the wd.c driver to probe for
-these cards.
-
-
-
-
-!!4.30 Racal-Interlan
-
-
-
-
-
-
-Racal Interlan can be reached via WWW at
-www.interlan.com. I believe they were also known as
-!MiCom-Interlan at one point in the past.
-
-
-
-
-!ES3210
-
-
-Status: Semi-Supported, Driver Name: es3210
-
-
-This is an EISA 8390 based shared memory card. An experimetal
-driver is shipped with v2.2 kernels and it is reported to
-work fine, but the EISA IRQ and shared memory address detection
-appears not to work with (at least) the early revision cards.
-(This problem is not unique to the Linux world either...)
-In that case, you have to supply them to the driver.
-For example, card at IRQ 5 and shared memory 0xd0000,
-with a modular driver, add
-options es3210 irq=5 mem=0xd0000 to /etc/conf.modules.
-Or with the driver compiled into the kernel, supply at
-boot ether=5,,0xd0000,eth0
-The I/O base is automatically detected
-and hence a value of zero should be used.
-
-
-
-
-!NI5010
-
-
-Status: Semi-Supported, Driver Name: ni5010
-
-
-You used to have to go get the driver for these old 8 bit
-!MiCom-Interlan cards separately, but now it is shipped with
-the v2.2 kernels as an experimental driver.
-
-
-
-
-!NI5210
-
-
-Status: Semi-Supported, Driver Name: ni52
-
-
-This card also uses one of the Intel chips.
-Michael Hipp has written a driver for this card. It is included
-in the standard kernel as an `alpha' driver. Michael would like
-to hear feedback from users that have this card. See
-Alpha Drivers for important
-information on using alpha-test ethernet drivers
-with Linux.
-
-
-
-
-! NI6510 (not EB)
-
-
-Status: Semi-Supported, Driver Name: ni65
-
-
-There is also a driver for the LANCE based NI6510, and it
-is also written by Michael Hipp. Again, it is also an
-`alpha' driver. For some reason, this card is not compatible
-with the generic LANCE driver. See
-Alpha Drivers for important
-information on using alpha-test ethernet drivers
-with Linux.
-
-
-
-
-!!EtherBlaster (aka NI6510EB)
-
-
-Status: Supported, Driver Name: lance
-
-
-As of kernel 1.3.23, the generic LANCE driver had a check
-added to it for the 0x52, 0x44 NI6510EB specific signature.
-Others have reported that this signature is not the same
-for all NI6510EB cards however, which will cause the lance
-driver to not detect your card. If this happens to you, you
-can change the probe (at about line 322 in lance.c) to printk()
-out what the values are for your card and then use them instead
-of the 0x52, 0x44 defaults.
-
-
-The cards should probably be run in `high-performance' mode
-and not in the NI6510 compatible mode when using the lance driver.
-
-
-
-
-
-
-
-!!4.31 !RealTek
-
-
-
-
-
-
-
-
-! !RealTek RTL8002/8012 (AT-Lan-Tec) Pocket adaptor
-
-
-Status: Supported, Driver Name: atp
-
-
-This is a generic, low-cost OEM pocket adaptor being sold by
-AT-Lan-Tec, and (likely) a number of other suppliers. A
-driver for it is included in the standard kernel.
-Note that there is substantial information contained in the
-driver source file `atp.c'.
-
-
-Note that the device name that you pass to ifconfig
-was ''not'' eth0 but atp0 for earlier versions
-of this driver.
-
-
-
-
-!!RealTek 8009
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-This is an ISA NE2000 clone, and is reported to work fine with
-the linux NE2000 driver.
-The rset8009.exe program can be obtained from !RealTek's
-WWW site at http://www.realtek.com.tw - or via ftp
-from the same site.
-
-
-
-
-!!RealTek 8019
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-This is a Plug and Pray version of the above. Use the DOS
-software to disable PnP and enable jumperless configuration;
-set the card to a sensible I/O address and IRQ and you should
-be ready to go. (If using the driver as a module, don't forget
-to add an io=0xNNN option to /etc/conf.modules).
-The rset8019.exe program can be obtained from !RealTek's
-WWW site at http://www.realtek.com.tw - or via ftp
-from the same site.
-
-
-
-
-!!RealTek 8029
-
-
-Status: Supported, Driver Name: ne, ne2k-pci (+8390)
-
-
-This is a PCI single chip implementation of a NE2000 clone.
-Various vendors are now selling cards with this chip. See
-NE2000-PCI for information on
-using any of these cards. Note that
-this is still a 10+ year old design just glued onto a
-PCI bus. Performance won't be staggeringly better than
-the equivalent ISA model.
-
-
-
-
-
-
-
-! !RealTek 8129/8139
-
-
-Status: Semi-Supported, Driver Name: rtl8139, 8139too
-
-
-Another PCI single chip ethernet solution from !RealTek.
-A driver for cards based upon this chip was included
-in the v2..34 release of linux. You currently have to answer
-`Y' when asked if you want experimental drivers for v2.2
-kernels to get access to this driver.
-
-
-Donald says that cards based on this chip are around the same
-price (or even cheaper in places - 13 bucks!) as a PCI NE2000
-clone card, and while the 8139 design is not the best 10/100
-board, it is better than a PCI NE2000 clone card.
-
-
-The 2.4.x kernels have another driver called 8139too
-which was based on rtl8139 but tries to adress some of the
-more common problems people were reporting, so you may wish
-to try that if using a 2.4 kernel.
-
-
-
-
-!!4.32 Sager
-
-
-
-
-
-
-
-
-!Sager NP943
-
-
-Status: Semi-Supported, Driver Name: 3c501
-
-
-This is just a 3c501 clone, with a different S.A. PROM
-prefix. I assume it is equally as brain dead as the
-original 3c501 as well. The driver checks
-for the NP943 I.D. and then just treats it as a 3c501
-after that. See
-3Com 3c501
-for all the reasons as to why you really don't want
-to use one of these cards.
-
-
-
-
-!!4.33 Schneider & Koch
-
-
-
-
-
-
-
-
-!SK G16
-
-
-Status: Supported, Driver Name: sk_g16
-
-
-This driver was included into the v1.1 kernels, and it was
-written by PJD Weichmann and SWS Bern. It appears that the
-SK G16 is similar to the NI6510, in that it is based on
-the first edition LANCE chip (the 7990). Once again, it
-appears as though this card won't work with the generic
-LANCE driver.
-
-
-
-
-!!4.34 SEEQ
-
-
-
-
-
-
-
-
-!SEEQ 8005
-
-
-Status: Supported, Driver Name: seeq8005
-
-
-There is little information
-about the card included in the driver, and hence little
-information to be put here. If you have a question, you
-are probably best trying to e-mail the driver author
-as listed in the source.
-
-
-
-
-!! 4.35 SMC (Standard Microsystems Corp.)
-
-
-
-
-
-
-
-
-
-The ethernet part of Western Digital was bought out by SMC
-many years ago when the wd8003 and wd8013 were the main
-product. Since then SMC has continued making 8390 based
-ISA cards (Elite16, Ultra, EtherEZ) and also added several
-PCI products to their range.
-
-
-Contact information for SMC:
-
-
-SMC / Standard Microsystems Corp., 80 Arkay Drive, Hauppage, New York,
-11788, USA. Technical Support via phone: 800-992-4762 (USA) or
-800-433-5345 (Canada) or 516-435-6250 (Other Countries).
-Literature requests: 800-SMC-4-YOU (USA) or 800-833-4-SMC (Canada)
-or 516-435-6255 (Other Countries). Technical Support via E-mail:
-techsupt@ccmail.west.smc.com. FTP Site: ftp.smc.com.
-WWW Site:
-SMC.
-
-
-
-
-!WD8003, SMC Elite
-
-
-Status: Supported, Driver Name: wd (+8390)
-
-
-These are the 8-bit versions of the card. The
-8 bit 8003 is slightly less expensive, but only
-worth the savings for light use. Note that some
-of the non-EEPROM cards (clones with jumpers, or
-old ''old'' old wd8003 cards) have no way of reporting
-the IRQ line used. In this case, auto-irq is used, and if
-that fails, the driver silently assings IRQ 5.
-You can get the SMC setup/driver disks from SMC's ftp site.
-Note that some of the
-newer SMC `!SuperDisk' programs will fail to detect
-the real old EEPROM-less cards. The file SMCDSK46.EXE
-seems to be a good all-round choice. Also the jumper
-settings for all their cards are in an ASCII text file in the
-aforementioned archive. The latest (greatest?) version
-can be obtained from ftp.smc.com.
-
-
-As these are basically the
-same as their 16 bit counterparts (WD8013 / SMC Elite16),
-you should see the next section for more information.
-
-
-
-
-
-
-
-! WD8013, SMC Elite16
-
-
-Status: Supported, Driver Name: wd (+8390)
-
-
-Over the
-years the design has added more registers and an
-EEPROM. (The first wd8003 cards appeared about ten years ago!)
-Clones usually go by the `8013' name, and
-usually use a non-EEPROM (jumpered) design.
-Late model SMC cards will have the SMC 83c690 chip instead
-of the original Nat Semi DP8390 found on earlier cards.
-The shared memory design makes the cards a bit faster
-than PIO cards, especially with larger packets.
-More importantly, from the
-driver's point of view, it avoids a few bugs in the
-programmed-I/O mode of the 8390, allows safe
-multi-threaded access to the packet buffer, and
-it doesn't have a programmed-I/O data register that
-hangs your machine during warm-boot probes.
-
-
-Non-EEPROM cards that can't just read the selected
-IRQ will attempt auto-irq, and if that fails, they will
-silently assign IRQ 10. (8 bit versions will assign IRQ 5)
-
-
-Cards with a non standard amount of memory on board can
-have the memory size specified at boot (or as an option
-in /etc/conf.modules if using modules).
-The standard memory size is
-8kB for an 8bit card and 16kB for a 16bit card.
-For example, the older WD8003EBT cards could be jumpered
-for 32kB memory. To make full use of that RAM, you would
-use something like (for I/O=0x280 and IRQ 9):
-----
-
-LILO: linux ether=9,0x280,0xd0000,0xd8000,eth0
-
-----
-
-
-Also see
-8013 problems
-for some of the more common problems and frequently
-asked questions that pop up often.
-
-
-If you intend on using this driver as a loadable module
-you should probably see
-Using the Ethernet Drivers as Modules
-for module specific information.
-
-
-
-
-! SMC Elite Ultra
-
-
-Status: Supported, Driver Name: smc-ultra (+8390)
-
-
-This ethercard is based on the
-83c790 chip from SMC, which has
-a few new features over the 83c690. While it has a mode that is
-similar to the older SMC ethercards, it's not entirely
-compatible with the old WD80*3 drivers. However, in
-this mode it shares most of its code with the other
-8390 drivers, while operating slightly faster than a
-WD8013 clone.
-
-
-Since part of the Ultra ''looks like''
-an 8013, the Ultra probe is supposed to find an
-Ultra before the wd8013 probe has a chance to
-mistakenly identify it.
-
-
-Donald mentioned that it is possible to write a separate
-driver for the Ultra's `Altego' mode which allows
-chaining transmits at the cost of inefficient use of receive
-buffers, but that will probably not happen.
-
-
-Bus-Master SCSI host adaptor users take note: In the
-manual that ships with Interactive UNIX, it mentions
-that a bug in the SMC Ultra will cause data corruption
-with SCSI disks being run from an aha-154X host adaptor.
-This will probably bite aha-154X compatible cards, such
-as the !BusLogic boards, and the AMI-!FastDisk SCSI host
-adaptors as well.
-
-
-SMC has acknowledged the problem occurs with
-Interactive, and older Windows NT drivers. It is
-a hardware conflict with early revisions of the card
-that can be worked around in the driver design. The current
-Ultra driver protects against this by only enabling the
-shared memory during data transfers with the card. Make sure
-your kernel version is at least 1.1.84, or that the driver
-version reported at boot is at least smc-ultra.c:v1.12
-otherwise you are vulnerable.
-
-
-If you intend on using this driver as a loadable module
-you should probably see
-Using the Ethernet Drivers as Modules
-for module specific information.
-
-
-
-
-! SMC Elite Ultra32 EISA
-
-
-Status: Supported, Driver Name: smc-ultra32 (+8390)
-
-
-This EISA card shares a lot in common with its ISA counterpart.
-A working (and stable) driver is included in both v2.
-and v2.2 kernels. Thanks go to Leonard
-Zubkoff for purchasing some of these cards so that linux support
-could be added for them.
-
-
-
-
-!SMC EtherEZ (8416)
-
-
-Status: Supported, Driver Name: smc-ultra (+8390)
-
-
-This card uses SMC's 83c795 chip and supports the Plug 'n Play
-specification. It also has an ''SMC Ultra'' compatible mode,
-which allows it to be used with the Linux Ultra driver.
-For best results, use the SMC supplied program (avail. from
-their www/ftp site) to disable PnP and configure it for
-shared memory mode. See the above information for notes on
-the Ultra driver.
-
-
-For v1.2 kernels, the card had to be configured for
-shared memory operation. However v2.0 kernels can use the
-card in shared memory or programmed I/O mode. Shared
-memory mode will be slightly faster, and use
-less CPU resources as well.
-
-
-
-
-! SMC !EtherPower PCI (8432)
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-NB: The !EtherPower II is an entirely different card. See
-below!
-These cards are
-a basic DEC 21040 implementation, i.e. one big chip
-and a couple of transceivers. Donald has used one
-of these cards for his development of the generic
-21040 driver (aka tulip.c). Thanks to Duke Kamstra,
-once again, for supplying a card to do development on.
-
-
-Some of the later revisons of this card use the newer
-DEC 21041 chip, which may cause problems with
-older versions of the tulip driver. If you have problems,
-make sure you are using the latest driver release, which
-may not yet be included in the current kernel source tree.
-
-
-See
-DEC 21040 for more
-details on using one of these cards, and the current
-status of the driver.
-
-
-Apparently, the latest revision of the card, the !EtherPower-II
-uses the 9432 chip. It is unclear at the moment if this one will
-work with the present driver. As always, if unsure, check
-that you can return the card if it doesn't work with the linux
-driver ''before'' paying for the card.
-
-
-
-
-! SMC !EtherPower II PCI (9432)
-
-
-Status: Semi-Supported, Driver Name: epic100
-
-
-These cards, based upon the SMC 83c170 chip, are entirely
-different than the Tulip based cards. A new driver
-has been included in kernels v2.0 and v2.2 to support
-these cards. For more details, see:
-
-
-http://www.scyld.com/linux/drivers/epic100.html
-
-
-
-
-
-
-
-!SMC 1211TX 10/100
-
-
-Status: Semi-Supported, Driver Name: rtl8139
-
-
-Apparently SMC is no longer the same company that brought you
-cards like the Ultra and the EPIC. The chip design part is now
-called SMSC and you will see the SMC name stuck on low end
-OEM boards like this one - a !RealTek 8139 with a modified
-EEPROM.
-
-
-
-
-!SMC 3008
-
-
-Status: Not Supported.
-
-
-These 8 bit cards are based on the Fujitsu MB86950, which is an
-ancient version of the MB86965 used in the Linux at1700
-driver. Russ says that you could probably hack up a driver
-by looking at the at1700.c code and his DOS packet driver
-for the Tiara card (tiara.asm). They are not very common.
-
-
-
-
-!SMC 3016
-
-
-Status: Not Supported.
-
-
-These are 16bit I/O mapped 8390 cards, much similar to a generic
-NE2000 card. If you can get the specifications from SMC, then
-porting the NE2000 driver would probably be quite easy.
-They are not very common.
-
-
-
-
-!SMC-9000 / SMC 91c92/4
-
-
-Status: Supported, Driver Name: smc9194
-
-
-The SMC9000 is a VLB card based on the 91c92 chip.
-The 91c92 appears on a few other brand cards as well,
-but is fairly uncommon.
-
-
-
-
-!SMC 91c100
-
-
-Status: Semi-Supported, Driver Name: smc9194
-
-
-The SMC 91c92 driver is supposed to work for cards based on this
-100Base-T chip, but at the moment this is unverified.
-
-
-
-
-!!4.36 Texas Instruments
-
-
-
-
-
-
-
-
-! ThunderLAN
-
-
-Status: Supported, Driver Name: tlan
-
-
-This driver covers many Compaq built-in ethernet devices,
-including the !NetFlex and Netelligent groups. It also supports
-the Olicom 2183, 2185, 2325 and 2326 products.
-
-
-
-
-!!4.37 Thomas Conrad
-
-
-
-
-
-
-
-
-!Thomas Conrad TC-5048
-
-
-
-
-
-This is yet another PCI card that is based on DEC's 21040 chip.
-
-
-See the section on the 21040 chip
-(
-DEC 21040)
-for more information.
-
-
-
-
-!!4.38 VIA
-
-
-
-
-
-
-You probably won't see a VIA networking card, as VIA make several
-networking chips that are then used by others in the construction
-of an ethernet card. They have a WWW site at:
-
-
-http://www.via.com.tw/
-
-
-
-
-!VIA 86C926 Amazon
-
-
-Status: Supported, Driver Name: ne, ne2k-pci (+8390)
-
-
-This controller chip is VIA's PCI-NE2000 offering. You
-can choose between the ISA/PCI ne.c driver or
-the PCI-only ne2k-pci.c driver. See the PCI-NE2000
-section for more details.
-
-
-
-
-! VIA 86C100A Rhine II (and 3043 Rhine I)
-
-
-Status Supported, Driver Name: via-rhine
-
-
-This relatively new driver can be found in current 2.
-and 2.1 kernels. It is an improvement over the 86C926
-NE2000 chip in that it supports bus master transfers, but
-strict 32 bit buffer alignment requirements limit the
-benefit gained from this. For more details and driver
-updates, see:
-
-
-http://www.scyld.com/linux/drivers/via-rhine.html
-
-
-
-
-
-
-
-!!4.39 Western Digital
-
-
-
-
-
-
-Please see
-SMC for
-information on SMC cards. (SMC bought out Western Digital's
-network card section many years ago.)
-
-
-
-
-!!4.40 Winbond
-
-
-
-Winbond don't really make and sell complete cards to the
-general public -- instead they make single chip ethernet
-solutions that other companies buy, stick onto a PCI board
-with their own name and then sell through retail stores.
-Some setup programs and tech support is available at:
-
-
-http://www.winbond.com.tw
-
-
-
-
-!Winbond 89c840
-
-
-Status: Semi-Supported, Driver Name: winbond-840
-
-
-This chip has been described as `the mutant spawn of a NE2000 and
-a Tulip clone' -- see the driver notes for more details.
-The driver isn't currently shipped with the kernel, as it
-is in the testing phase (as of Sept 1998). It is available at:
-
-
-http://www.scyld.com/linux/drivers/test/winbond-840.c
-
-
-
-
-!Winbond 89c904, 89c905, 89c906
-
-
-Status: Supported, Driver Name: ne (+8390)
-
-
-These are Winbond's ISA 10Mbps ne2000 compatible ethernet
-chips. Setup programs are available at the Winbond site.
-
-
-
-
-!Winbond 89c940
-
-
-Status: Supported, Driver Name: ne, ne2k-pci (+8390)
-
-
-This chip is one of the two commonly found on the low price
-PCI ne2000 cards sold by lots of manufacturers. Note that
-this is still a 10+ year old design just glued onto a
-PCI bus. Performance won't be staggeringly better than
-the equivalent ISA model.
-
-
-
-
-!! 4.41 Xircom
-
-
-
-
-
-
-For the longest time, Xircom wouldn't release the programming
-information required to write a driver, unless you signed
-your life away. Apparently enough linux users have pestered them
-for driver support (they claim to support all popular networking
-operating systems...) so that they have changed their policy
-to allow documentation to be released without having to
-sign a non-disclosure agreement. Some people have said they
-they will release the source code to the SCO driver, while others
-have been told that they are no longer providing information
-on `obsolete' products like the earlier PE models.
-If you are interested and want to check into this yourself, you can
-reach Xircom at 1-800-874-7875, 1-800-438-4526 or +1-818-878-7600.
-
-
-
-
-!Xircom PE1, PE2, PE3-10B*
-
-
-Status: Not Supported.
-
-
-Not to get your hopes up, but if you have one of these parallel
-port adaptors, you may be able to use it in the DOS emulator
-with the Xircom-supplied DOS drivers. You will have to allow
-DOSEMU access to your parallel port, and will probably have
-to play with SIG (DOSEMU's Silly Interrupt Generator).
-
-
-
-
-!Xircom PCMCIA Cards
-
-
-Status: Semi-Supported, Driver Name: ????
-
-
-Some of the Xircom PCMCIA card(s) have drivers that are
-available with David Hinds PCMCIA package. Check there
-for the most up to date indformation
-
-
-
-
-!! 4.42 Zenith
-
-
-
-
-
-
-
-
-! Z-Note
-
-
-Status: Supported, Driver Name: znet
-
-
-The built-in Z-Note network adaptor is based on the Intel
-i82593 using ''two'' DMA channels. There is an (alpha?) driver
-available in the present kernel version. As with all notebook
-and pocket adaptors, it is under the `Pocket and portable
-adaptors' section when running make config.
-Also note that the IBM !ThinkPad 300 is compatible with the Z-Note.
-
-
-
-
-!! 4.43 Znyx
-
-
-
-
-
-
-
-
-!Znyx ZX342 (DEC 21040 based)
-
-
-Status: Supported, Driver Name: de4x5, tulip
-
-
-You have a choice of ''two'' drivers for cards based on this
-chip. There is the DE425 driver written by David, and the
-generic 21040 driver that Donald has written.
-
-
-Note that as of 1.1.91, David has added a compile time option that
-may allow non-DEC cards (such as the Znyx cards) to work with
-this driver. Have a look at README.de4x5 for details.
-
-
-See
-DEC 21040
-for more information on these cards, and the present driver
-situation.
-
-
-
-
-!! 4.44 Identifying an Unknown Card
-
-
-
-
-
-
-Okay, so your uncle's cousin's neighbour's friend had a brother
-who found an old ISA ethernet card in the AT case he was using as
-a cage for his son's pet hampster. Somehow you ended up with
-the card and want to try and use it with linux, but nobody
-has a clue what the card is and there isn't any documentation.
-
-
-First of all, look for any obvious model numbers that might
-give a clue. Any model number that contains 2000 will most
-likely be a NE2000 clone. Any cards with 8003 or 8013
-on them somewhere will be Western/Digital WD80x3 cards
-or SMC Elite cards or clones of them.
-
-
-
-
-!Identifying the Network Interface Controller
-
-
-Look for the biggest chip on the card. This will be the
-network controller (NIC) itself, and most can be identified by
-the part number. If you know which NIC is on the card, the
-following might be able to help you figure out what card it is.
-
-
-Probably still the most common NIC is the National Semiconductor
-DP8390 aka NS32490 aka DP83901 aka DP83902 aka DP83905 aka DP83907.
-And those are just the ones made by National! Other companies
-such as Winbond and UMC make DP8390 and DP83905 clone parts,
-such as the Winbond 89c904 (DP83905 clone) and the UMC 9090.
-If the card has some form of 8390 on it, then chances are it
-is a ne1000 or ne2000 clone card. The second most common 8390
-based card are wd80x3 cards and clones. Cards with a DP83905
-can be configured to be an ne2000 ''or'' a wd8013. Never versions
-of the genuine wd80x3 and SMC Elite cards have an 83c690 in place
-of the original DP8390. The SMC Ultra cards have an 83c790,
-and use a slightly different driver than the wd80x3 cards.
-The SMC EtherEZ cards have an 83c795, and use the same driver
-as the SMC Ultra. All BNC cards based on some sort of 8390 or
-8390 clone will usually have an 8392 (or 83c692, or ???392)
-16 pin DIP chip very close to the BNC connector.
-
-
-Another common NIC found on older cards is the Intel i82586.
-Cards having this NIC include the 3c505, 3c507, 3c523, Intel
-!EtherExpress-ISA, Microdyne Exos-205T, and the Racal-Interlan NI5210.
-
-
-The original AMD LANCE NIC was numbered AM7990, and newer
-revisions include the 79c960, 79c961, 79c965, 79c970, and 79c974.
-Most cards with one of the above will work with the Linux LANCE
-driver, with the exception of the old Racal-Interlan NI6510
-cards that have their own driver.
-
-
-Newer PCI cards having a DEC 21040, 21041, 21140, or similar
-number on the NIC should be able to use the linux tulip or
-de4x5 driver.
-
-
-Other PCI cards having a big chip marked RTL8029 or
-89C940 or 86C926 are ne2000
-clone cards, and the ne driver in linux version v2.0 and up
-should automatically detect these cards at boot.
-
-
-
-
-!Identifying the Ethernet Address
-
-
-
-
-
-Each ethernet card has its own six byte address that is
-unique to that card. The first three bytes of that address
-are the same for each card made by that particular manufacturer.
-For example all SMC cards start with 00:00:c0.
-The last three are assigned by the manufacturer uniquely to each
-individual card as they are produced.
-
-
-If your card has a sticker on it giving all six bits of its
-address, you can look up the vendor from the first three.
-However it is more common to see only the last three bytes
-printed onto a sticker attached to a socketed PROM,
-which tells you nothing.
-
-
-You can determine which vendors have which assigned addresses
-from RFC-1340. Apparently there is a more up to date listing
-available in various places as well. Try a WWW or FTP search
-for !EtherNet-codes or Ethernet-codes and you will
-find something.
-
-
-
-
-!Identifying the Card by the FCC ID Number
-
-
-
-
-
-As part of the certification process a card typically
-has to pass before being sold to the user, it gets tested
-by the FCC, and from this gets a FCC ID which is supposed
-to be printed on the card somewhere. For example, a
-card has on it FCC ID: J158013EWC - and this
-card happens to be a SMC/WD8013-EWC. Some web sites
-like www.driverguide.com and drdriver.com
-make use of listings of FCC IDs that may help with less
-obvious ID numbers.
-
-
-
-
-!Tips on Trying to Use an Unknown Card
-
-
-
-
-
-If you are still not sure what the card is, but have at least
-narrowed it down some, then you can build a kernel with a
-whole bunch of drivers included, and see if any of them
-autodetect the card at boot.
-
-
-If the kernel doesn't detect the card, it may be that the
-card is not configured to one of the addresses that the
-driver probes when looking for a card. In this case, you
-might want to try getting scanport.tar.gz from your
-local linux ftp site, and see if that can locate where your
-card is jumpered for. It scans ISA I/O space from 0x100
-to 0x3ff looking for devices that aren't registered in
-/proc/ioports. If it finds an unknown device starting
-at some particular address, you can then explicity point the
-ethernet probes at that address with an ether= boot
-argument.
-
-
-If you manage to get the card detected, you can then
-usually figure out the unknown jumpers by changing them
-one at a time and seeing at what I/O base and IRQ that the
-card is detected at. The IRQ settings can also usually be
-determined by
-following the traces on the back of the card to where the
-jumpers are soldered through. Counting the `gold fingers'
-on the backside, from the end of the card with the metal bracket,
-you have IRQ 9, 7, 6, 5, 4, 3, 10, 11, 12, 15, 14 at fingers
-4, 21, 22, 23, 24, 25, 34, 35, 36, 37, 38 respectively.
-Eight bit cards only have up to finger 31.
-
-
-Jumpers that appear to do nothing usually are for selecting
-the memory address of an optional boot ROM. Other jumpers that
-are located near the BNC or RJ-45 or AUI connectors are usually
-to select the output media. These are also typically near
-the `black box' voltage converters marked YCL, Valor, or Fil-Mag.
-
-
-A nice collection of jumper settings for various cards can
-be found at the following URL:
-
-
-
-Ethercard Settings
-
-
-
-
-
-
-!!4.45 Drivers for Non-Ethernet Devices
-
-
-
-
-
-
-There are a few other drivers that are in the linux source
-that present an ''ethernet-like'' device to network
-programs, while not really being ethernet. These are briefly
-listed here for completeness.
-
-
-dummy.c - The purpose of this driver is to provide a device
-to point a route through, but not to actually transmit packets.
-
-
-eql.c - Load Equalizer, enslaves multiple devices (usually
-modems) and balances the Tx load across them while presenting
-a single device to the network programs.
-
-
-ibmtr.c - IBM Token Ring, which is not really ethernet.
-Broken-Ring requires source routing and other uglies.
-
-
-loopback.c - Loopback device, for which all packets
-from your machine and destined for your own machine go.
-It essentially just moves the packet off the Tx queue and
-onto the Rx queue.
-
-
-pi2.c - Ottawa Amateur Radio Club PI and PI2 interface.
-
-
-plip.c - Parallel Line Internet Protocol, allows two
-computers to send packets to each other over two joined
-parallel ports in a point-to-point fashion.
-
-
-ppp.c - Point-to-Point Protocol (RFC1331), for the
-Transmission of Multi-protocol Datagrams over a
-Point-to-Point Link (again usually modems).
-
-
-slip.c - Serial Line Internet Protocol, allows two
-computers to send packets to each other over two joined
-serial ports (usually via modems) in a point-to-point fashion.
-
-
-tunnel.c - Provides an IP tunnel through which you can
-tunnel network traffic transparently across subnets
-
-
-wavelan.c - An Ethernet-like radio transceiver
-controlled by the Intel 82586 coprocessor which is used on
-other ethercards such as the Intel !EtherExpress.
-
-
-
-----
-
-!! 5. Cables, Coax, Twisted Pair
-
-
-If you are starting a network from scratch, you will have to decide
-whether to use thin ethernet (RG58 co-ax cable with BNC connectors)
-or 10baseT (twisted pair telco-style cables with RJ-45 eight wire `phone'
-connectors).
-The old-fashioned thick ethernet, RG-5 cable with N connectors is
-obsolete and rarely seen anymore.
-
-
-See
-Type of cable... for
-an introductory look at cables.
-Also note that the FAQ from ''comp.dcom.lans.ethernet'' has a lot
-of useful information on cables and such. FTP to
-rtfm.mit.edu and look in /pub/usenet-by-hierarchy/
-for the FAQ for that newsgroup.
-
-
-
-
-!! 5.1 Thin Ethernet (thinnet)
-
-
-
-
-
-
-Thin ethernet cable is pretty inexpensive. If
-you are making your own cables solid-core RG58A is $.27/m. and
-stranded RG58AU is $.45/m. Twist-on BNC
-connectors are < $2 ea.,
-and other misc. pieces are similarly inexpensive. It is essential
-that you properly terminate each end of the cable with 50 ohm
-terminators, so budget $2 ea. for a pair. It's also vital that
-your cable have no `stubs' -- the `T' connectors must be attached
-directly to the ethercards.
-
-
-There are two main drawbacks to using thinnet. The first is that it
-is limited to 10Mb/sec - 100Mb/sec requires twisted pair. The second
-drawback is that if you have
-a big loop of machines connected together, and some bonehead breaks
-the loop by taking one cable off the side of his tee, the whole
-network goes down because it sees an infinite impedance (open
-circuit) instead of the required 50 ohm termination. Note that
-you can remove the tee piece from the card itself without killing
-the whole subnet, as long as you don't remove the cables from the
-tee itself. Of course this will disturb the machine that you
-pull the actual tee off of. 8-) And if you are doing a small
-network of two machines, you ''still'' need the tees and the 50 ohm
-terminators -- you ''can't'' just cable them together!
-
-
-
-
-
-There are also some fancy cable systems which ''look like''
-a single lead going to the card, but the lead is actually
-two runs of cable
-laying side-by-side covered by an outer sheath, giving the
-lead an oval shaped cross-section. At the turnaround point
-of the loop, a BNC connector is spliced in which connects to
-your card. So you have the equivalent of two runs of cable and
-a BNC T, but in this case, it is impossible for the user to
-remove a cable from one side of the T and disturb the network.
-
-
-
-
-
-
-
-!! 5.2 Twisted Pair
-
-
-
-
-
-
-Twisted pair networks require active hubs,
-which start around $50, and the raw cable cost can
-actually be higher than thinnet. You can pretty much ignore
-claims that you can use your existing telephone
-wiring as it is a rare installation where that turns out to be the
-case.
-
-
-On the other hand, all 100Mb/sec
-ethernet proposals use twisted pair, and most new business
-installations use twisted pair.
-Also, Russ Nelson adds that `New installations should use Category 5
-wiring. Anything else is a waste of your installer's time, as
-100Base-whatever is going to require Cat 5.'
-
-
-If you are only connecting two machines, it is possible to avoid
-using a hub, by swapping the Rx and Tx pairs (1-2 and 3-6).
-
-
-If you hold the RJ-45 connector facing you (as if you were
-going to plug it into your mouth) with the lock tab on the top,
-then the pins are numbered 1 to 8 from left to right. The pin
-usage is as follows:
-
-
-
-
-Pin Number Assignment
----------- ----------
-1 Output Data (+)
-2 Output Data (-)
-3 Input Data (+)
-4 Reserved for Telephone use
-5 Reserved for Telephone use
-6 Input Data (-)
-7 Reserved for Telephone use
-8 Reserved for Telephone use
-
-
-
-If you want to make a cable, the following should spell it
-out for you. Differential signal pairs must be on the same
-twisted pair to get the required minimal impedance/loss of a UTP cable.
-If you look at the above table, you will see that 1+2 and 3+6 are
-the two sets of differential signal pairs. Not 1+3 and 2+6 !!!!!!
-At 10MHz, with short lengths, you *may* get away with such errors,
-if it is only over a short length. Don't even think about it at 100MHz.
-
-
-For a normal patch cord, with ends `A' and `B', you want straight
-through pin-to-pin mapping, with the input and output each using a
-pair of twisted wires (for impedance issues). That means 1A goes to 1B,
-2A goes to 2B, 3A goes to 3B and 6A goes to 6B. The wires joining
-1A-1B and 2A-2B must be a twisted pair. Also the wires joining 3A-3B
-and 6A-6B must be another twisted pair.
-
-
-Now if you don't have a hub, and want to make a `null cable', what you
-want to do is make the input of `A' be the output of `B' and the
-output of `A' be the input of `B', without changing the polarity.
-Tha means connecting 1A to 3B (out+ A to in+ B) and 2A to 6B
-(out- A to in- B). These two wires must be a twisted pair. They carry
-what card/plug `A' considers output, and what is seen as input
-for card/plug `B'. Then connect 3A to 1B (in+ A to out+ B) and also
-connect 6A to 2B (in- A to out- B). These second two must also be
-a twisted pair. They carry what card/plug `A' considers input, and
-what card/plug `B' considers output.
-
-
-So, if you consider a normal patch cord, chop one end off of it,
-swap the places of the Rx and Tx twisted pairs into the new plug,
-and crimp it down, you then have a `null' cable. Nothing complicated.
-You just want to feed the Tx signal of one card into the Rx of the
-second and vice versa.
-
-
-Note that before 10BaseT was ratified as a standard, there
-existed other network formats using RJ-45
-connectors, and the same wiring scheme as above. Examples
-are !SynOptics's !LattisNet, and AT&T's StarLAN.
-In some cases, (as with early 3C503 cards) you could set jumpers
-to get the card to talk to hubs of different types, but in most cases
-cards designed for these older types of networks will not work with
-standard 10BaseT networks/hubs. (Note that if the cards also have
-an AUI port, then there is no reason as to why you can't use that,
-combined with an AUI to 10BaseT transceiver.)
-
-
-
-
-
-
-
-!!5.3 Thick Ethernet
-
-
-
-Thick ethernet is mostly obsolete, and is usually used only to remain
-compatible with an existing implementation. You can stretch the rules
-and connect short spans of thick and thin ethernet together with a
-passive $3 N-to-BNC connector, and that's often the best
-solution to expanding an existing thicknet. A correct (but expensive)
-solution is to use a repeater in this case.
-----
-
-!! 6. Software Configuration and Card Diagnostics
-
-
-
-
-
-In most cases, if the configuration is done by software,
-and stored in an EEPROM, you will usually have to boot
-DOS, and use the vendor supplied DOS program to set the cards
-IRQ, I/O, mem_addr and whatnot. Besides, hopefully it is
-something you will only be setting once. If you don't have
-the DOS software for your card, try looking on the WWW site
-of your card manufacturer. If you don't know the site name,
-take a guess at it, i.e. `www.my_vendor.com' where `my_vendor'
-is the name of your card manufacturer. This works for SMC,
-3Com, and many ''many'' other manufacturers.
-
-
-There are some cards for which Linux versions of
-the config utils exist, and they are listed here.
-Donald has written a few small card diagnostic
-programs that run under Linux. Most of these are a result
-of debugging tools that he has created while writing the
-various drivers. Don't expect
-fancy menu-driven interfaces. You will have to read the
-source code to use most of these. Even if your particular
-card doesn't have a corresponding diagnostic, you can
-still get some information just by typing
-cat /proc/net/dev -- assuming that your card
-was at least detected at boot.
-
-
-In either case, you will have to run most of these programs
-as root (to allow I/O to the ports) and you probably want
-to shut down the ethercard before doing so by typing
-ifconfig eth0 down first.
-
-
-
-
-!! 6.1 Configuration Programs for Ethernet Cards
-
-
-
-
-
-
-
-
-!WD80x3 Cards
-
-
-
-
-
-For people with wd80x3 cards, there is the program wdsetup
-which can be found in wdsetup-.6a.tar.gz on Linux ftp sites.
-It is not being actively maintained, and has
-not been updated for quite a while. If it works fine for you
-then great, if not, use the DOS version that you should have got
-with your card. If you don't have the DOS version, you will be
-glad to know that the SMC setup/driver disks are available
-at SMC's ftp site.
-Of course, you ''have'' to have an EEPROM card to use this utility.
-Old, ''old'' wd8003 cards, and some wd8013 clones use jumpers
-to set up the card instead.
-
-
-
-
-!Digital / DEC Cards
-
-
-
-
-
-The Digital !EtherWorks 3 card can be configured in a similar
-fashion to the DOS program NICSETUP.EXE. David C. Davies
-wrote this and other tools for the !EtherWorks 3 in conjunction
-with the driver. Look on you local linux FTP site in the directory
-/pub/linux/system/Network/management for the file
-that is named ewrk3tools-X.XX.tar.gz.
-
-
-
-
-!NE2000+ or AT/LANTIC Cards
-
-
-
-
-
-Some Nat Semi DP83905 implementations (such as the AT/LANTIC
-and the NE2000+) are software configurable. (Note that these
-cards can also emulate a wd8013 card!) You can get the file
-/pub/linux/setup/atlantic.c from Donald's ftp
-server, www.scyld.com to configure this card.
-In addition, the configuration programs for the Kingston
-DP83905 cards seem to work with all cards, as they don't
-check for a vendor specific address before allowing you to
-use them. Follow the following URL:
-Kingston Software
-and get 20XX12.EXE and INFOSET.EXE.
-
-
-Be careful when configuring NE2000+ cards, as you can give
-them bad setting values which can cause problems. A typical
-example is accidentally enabling the boot ROM in the EEPROM
-(even if no ROM is installed) to a setting that conflicts
-with the VGA card. The result is a computer that just beeps
-at you when you turn it on and nothing appears on the screen.
-
-
-You can typically
-recover from this by doing the following: Remove the card
-from the machine, and then boot and enter the CMOS setup.
-Change the `Display Adapter' to `Not Installed' and change
-the default boot drive to `A:' (your floppy drive).
-Also change the `Wait for F1 if any Error' to `Disabled'.
-This way, the computer should boot without user intervention.
-Now create a bootable DOS floppy (`format a: /s /u') and copy
-the program default.exe from the 20XX12.EXE archive
-above onto that floppy. Then
-type echo default > a:autoexec.bat
-so that the program to set the card back to sane defaults will
-be run automatically when you boot from this floppy.
-Shut the machine off, re-install the ne2000+ card, insert your
-new boot floppy, and power it back up. It will still probably beep
-at you, but eventually you should see the floppy light come on
-as it boots from the floppy. Wait a minute or two for the floppy
-to stop, indicating that it has finished running the default.exe
-program, and then power down your computer. When you then turn it
-on again, you should hopefully have a working display again,
-allowing you to change your CMOS settings back, and to change
-the card's EEPROM settings back to the values you want.
-
-
-Note that if you don't have DOS handy, you can do the whole
-method above with a linux boot disk that automatically runs
-Donald's atlantic program (with the right command line
-switches) instead of a DOS boot disk that automatically runs
-the default.exe program.
-
-
-
-
-!3Com Cards
-
-
-
-
-
-The 3Com Etherlink III family of cards (i.e. 3c5x9) can
-be configured by using another config utility from Donald.
-You can get the file 3c5x9setup.c
-from Donald's ftp server, www.scyld.com to
-configure these cards. (Note that the DOS 3c5x9B config
-utility may have more options pertaining to the new ``B''
-series of the Etherlink III family.)
-
-
-
-
-
-
-
-!! 6.2 Diagnostic Programs for Ethernet Cards
-
-
-
-
-
-
-Any of the diagnostic programs that Donald has written can
-be obtained from his website.
-
-
-
-Ethercard Diagnostics
-
-Allied Telesis AT1700 -- at1700.c
-
-
-Cabletron E21XX -- e21.c
-
-
-HP PCLAN+ -- hp+.c
-
-
-Intel !EtherExpress -- eexpress.c
-
-
-PCI NE2000 cards -- ne2k-pci-diag.c
-
-
-ISA NE2000 cards -- ne2k.c
-
-
-!RealTek (ATP) Pocket adaptor atp-diag.c
-
-
-All Other Cards -- try typing cat /proc/net/dev and
-dmesg to see what useful info the kernel has on the
-card in question.
-
-
-
-----
-
-!! 7. Technical Information
-
-
-
-
-
-For those who want to understand a bit more about how the card
-works, or play with the present drivers, or even try to make
-up their own driver for a card that is presently unsupported, this
-information should be useful. If you do not fall into this category,
-then perhaps you will want to skip this section.
-
-
-
-
-!! 7.1 Programmed I/O vs. Shared Memory vs. DMA
-
-
-
-
-
-
-If you can already send and receive back-to-back packets, you just
-can't put more bits over the wire. Every modern ethercard can receive
-back-to-back packets. The Linux DP8390 drivers (wd80x3, SMC-Ultra,
-3c503, ne2000, etc) come pretty close to
-sending back-to-back packets (depending on the current interrupt
-latency) and the 3c509 and AT1500 hardware have no problem at all
-automatically sending back-to-back packets.
-
-
-
-
-
-
-
-!Programmed I/O (e.g. NE2000, 3c509)
-
-
-
-
-
-Pro: Doesn't use any constrained system resources,
-just a few I/O registers, and has no 16M limit.
-
-
-Con: Usually the slowest transfer rate, the CPU is waiting
-the whole time, and interleaved packet access is usually
-difficult to impossible.
-
-
-
-
-!Shared memory (e.g. WD80x3, SMC-Ultra, 3c503)
-
-
-
-
-
-Pro: Simple, faster than programmed I/O, and allows random
-access to packets. Where possible,
-the linux drivers compute the checksum of
-incoming IP packets as they are copied off the card, resulting in
-a further reduction of CPU usage vs. an equivalent PIO card.
-
-
-Con: Uses up memory space (a big one for DOS users, essentially
-a non-issue under Linux), and it still ties up the CPU.
-
-
-
-
-!Slave (normal) Direct Memory Access (e.g. none for Linux!)
-
-
-
-
-
-Pro: Frees up the CPU during the actual data transfer.
-
-
-Con: Checking boundary conditions, allocating contiguous buffers,
-and programming the DMA registers makes it the slowest
-of all techniques. It also uses up a scarce DMA
-channel, and requires aligned low memory buffers.
-
-
-
-
-! Bus Master Direct Memory Access (e.g. LANCE, DEC 21040)
-
-
-
-
-
-Pro: Frees up the CPU during the data transfer, can string
-together buffers, can require little or no CPU time lost on
-the ISA bus. Most of the bus-mastering linux drivers now use
-a `copybreak' scheme where large packets are put directly into
-a kernel networking buffer by the card, and small packets are
-copied by the CPU which primes the cache for subsequent
-processing.
-
-
-Con: (Only applicable to ISA bus cards)
-Requires low-memory buffers and a DMA channel for
-cards. Any bus-master will have problems with other bus-masters
-that are bus-hogs, such as some primitive SCSI adaptors. A few
-badly-designed motherboard chipsets have problems with
-bus-masters. And a reason for not using ''any'' type of
-DMA device is using a 486 processor designed for
-plug-in replacement of a 386: these processors must
-flush their cache with each DMA cycle. (This includes
-the Cx486DLC, Ti486DLC, Cx486SLC, Ti486SLC, etc.)
-
-
-
-
-
-
-
-!!7.2 Performance Implications of Bus Width
-
-
-
-
-
-
-The ISA bus can do 5.3MB/sec (42Mb/sec), which sounds like more than
-enough for 10Mbps ethernet. In the case of the 100Mbps cards, you
-clearly need a faster bus to take advantage of the network bandwidth.
-
-
-
-
-! ISA Eight bit vs ISA 16 bit Cards
-
-
-
-
-
-You probably can't buy a new 8 bit ISA ethercard anymore,
-but you will find lots of them turning up at computer swap
-meets and the like for the next few years, at very low prices.
-This will make them popular for ``home-ethernet'' systems.
-The above holds true for 16 bit ISA cards now as well, since PCI
-cards are now very common.
-
-
-Some 8 bit cards that will provide adequate performance for
-light to average use are the wd8003, the 3c503 and the ne1000.
-The 3c501 provides poor performance, and these poor 12 year
-old relics of the XT days should be avoided. (Send them to
-Alan, he collects them...)
-
-
-The 8 bit data path doesn't hurt performance that much, as you
-can still expect to get about 500 to 800kB/s ftp download speed
-to an 8 bit wd8003 card (on a fast ISA bus) from a fast host.
-And if most of your net-traffic is going to remote sites, then
-the bottleneck in the path will be elsewhere, and the only speed
-difference you will notice is during net activity on your local
-subnet.
-
-
-
-
-!!7.3 32 Bit (VLB/EISA/PCI) Ethernet Cards
-
-
-
-
-
-
-Note that a 10Mbs network typically doesn't justify requiring
-a 32 bit interface.
-See
-Programmed I/O vs. ... as to why
-having a 10Mbps ethercard on an 8MHz ISA bus is really not a
-bottleneck. Even though having the ethercard on a fast bus won't
-necessarily mean faster transfers, it will usually mean reduced
-CPU overhead, which is good for multi-user systems.
-Of course for 100Mbps networks, which are now commonplace,
-the 32 bit interface is a must to make use of the full bandwidth.
-
-
-
-
-!! 7.4 Writing a Driver
-
-
-
-
-
-
-The only thing that one needs to use an ethernet card with Linux
-is the appropriate driver. For this, it is essential that the
-manufacturer will release the technical programming information to
-the general public without you (or anyone) having to sign your life
-away. A good guide for the likelihood of getting documentation
-(or, if you aren't writing code, the likelihood that someone
-else will write that driver you really, really need) is the
-availability of the Crynwr (nee Clarkson) packet driver. Russ
-Nelson runs this operation, and has been very helpful in supporting
-the development of drivers for Linux. ''Net-surfers'' can try this
-URL to look up Russ' software.
-
-
-
-Russ Nelson's Packet Drivers
-
-Given the documentation, you can write a driver for
-your card and use it for Linux (at least in theory).
-Keep in mind that some old hardware that was designed for XT type
-machines will not function very well in a multitasking
-environment such as Linux. Use of these will lead to major
-problems if your network sees a reasonable amount of traffic.
-
-
-Most cards come with drivers for MS-DOS interfaces such as
-NDIS and ODI, but these are useless for Linux. Many people
-have suggested directly linking them in or automatic
-translation, but this is nearly impossible. The MS-DOS
-drivers expect to be in 16 bit mode and hook into `software
-interrupts', both incompatible with the Linux kernel. This
-incompatibility is actually a feature, as some Linux drivers
-are considerably better than their MS-DOS counterparts. The
-`8390' series drivers, for instance, use ping-pong transmit
-buffers, which are only now being introduced in the MS-DOS world.
-
-
-(Ping-pong Tx buffers means using at least 2 max-size
-packet buffers for Tx packets. One is loaded while the card
-is transmitting the other. The second is then sent as soon
-as the first finished, and so on. In this way, most cards
-are able to continuously send back-to-back packets onto
-the wire.)
-
-
-OK. So you have decided that you want to write a driver for the
-Foobar Ethernet card, as you have the programming information,
-and it hasn't been done yet. (...these are the two main
-requirements ;-) You should start with the skeleton
-network driver that is provided
-with the Linux kernel source tree. It can be found in the file
-linux/drivers/net/skeleton.c in all recent kernels.
-In 2.4.x (and newer) kernels it has been renamed
-to isa-skeleton.c
-Also have a look at the Kernel Hackers Guide, at the
-following URL:
-KHG
-
-
-
-
-
-
-!!7.5 Driver interface to the kernel
-
-
-
-
-
-
-Here are some notes on the functions that you would have to
-write if creating a new driver. Reading this in conjunction
-with the above skeleton driver may help clear things up.
-
-
-
-
-
-
-
-!Probe
-
-
-
-
-
-Called at boot to check for existence of card. Best if it
-can check un-obtrsively by reading from memory, etc. Can
-also read from I/O ports. Initial writing to I/O ports in a probe
-is ''not good'' as it may kill another device.
-Some device initialization is usually done here (allocating
-I/O space, IRQs,filling in the dev->??? fields etc.)
-You need to know what io ports/mem the card can be
-configured to, how to enable shared memory (if used)
-and how to select/enable interrupt generation, etc.
-
-
-
-
-!Interrupt handler
-
-
-
-
-
-Called by the kernel when the card posts an interrupt.
-This has the job of determining why the card posted
-an interrupt, and acting accordingly. Usual interrupt
-conditions are data to be rec'd, transmit completed,
-error conditions being reported. You need to know
-any relevant interrupt status bits so that you can
-act accordingly.
-
-
-
-
-!Transmit function
-
-
-
-
-
-Linked to dev->hard_start_xmit() and is called by the
-kernel when there is some data that the kernel wants
-to put out over the device. This puts the data onto
-the card and triggers the transmit. You need to
-know how to bundle the data and how to get it onto the
-card (shared memory copy, PIO transfer, DMA?) and in
-the right place on the card. Then you need to know
-how to tell the card to send the data down the wire, and
-(possibly) post an interrupt when done.
-When the hardware can't accept additional packets it should set
-the dev->tbusy flag. When additional room is available, usually
-during a transmit-complete interrupt, dev->tbusy should be cleared
-and the higher levels informed with mark_bh(INET_BH).
-
-
-
-
-!Receive function
-
-
-
-
-
-Called by the kernel interrupt handler when the card reports
-that there is data on the card. It pulls the data off
-the card, packages it into a sk_buff and lets the
-kernel know the data is there for it by doing a
-netif_rx(sk_buff). You need to know how to enable
-interrupt generation upon Rx of data, how to check any
-relevant Rx status bits, and how to get that data off the
-card (again sh mem, PIO, DMA, etc.)
-
-
-
-
-!Open function
-
-
-
-
-
-linked to dev->open and called by the networking layers
-when somebody does ifconfig eth0 up - this
-puts the device on line and enables it for Rx/Tx of
-data. Any special initialization incantations that were
-not done in the probe sequence (enabling IRQ generation, etc.)
-would go in here.
-
-
-
-
-!Close function (optional)
-
-
-
-
-
-This puts the card in a sane state when someone
-does ifconfig eth0 down.
-It should free the IRQs and DMA channels if the hardware permits,
-and turn off anything that will save power (like the transceiver).
-
-
-
-
-!Miscellaneous functions
-
-
-
-
-
-Things like a reset function, so that if things go south,
-the driver can try resetting the card as a last ditch effort.
-Usually done when a Tx times out or similar. Also a function
-to read the statistics registers of the card if so equipped.
-
-
-
-
-!! 7.6 Technical information from 3Com
-
-
-
-
-
-
-If you are interested in working on drivers for 3Com cards,
-you can get technical documentation from 3Com. Cameron has
-been kind enough to tell us how to go about it below:
-
-
-3Com's Ethernet Adapters are documented for driver writers
-in our `Technical References' (TRs). These manuals describe
-the programmer interfaces to the boards but they don't talk
-about the diagnostics, installation programs, etc that end
-users can see.
-
-
-The Interface Products Group marketing department has the
-TRs to give away. To keep this program efficient, we
-centralized it in a thing called `!CardFacts.' !CardFacts is
-an automated phone system. You call it with a touch-tone
-phone and it faxes you stuff. To get a TR, call !CardFacts
-at 408-727-7021. Ask it for Developer's Order Form,
-document number 9070. Have your fax number ready when you
-call. Fill out the order form and fax it to 408-764-5004.
-Manuals are shipped by Federal Express 2nd Day Service.
-
-
-There are people here who think we are too free with the
-manuals, and they are looking for evidence that the system
-is too expensive, or takes too much time and effort.
-So far, 3Com customers have been really good about
-this, and there's no problem with the level of requests
-we've been getting. We need your continued cooperation and
-restraint to keep it that way.
-
-
-
-
-!! 7.7 Notes on AMD PCnet / LANCE Based cards
-
-
-
-
-
-
-The AMD LANCE (Local Area Network Controller for Ethernet)
-was the original offering, and has since been replaced by
-the `PCnet-ISA' chip, otherwise known as the 79C960.
-Note that the name `LANCE'
-has stuck, and some people will refer to the new chip by the old
-name. Dave Roberts of the Network Products Division of AMD was kind
-enough to contribute the following information regarding this chip:
-
-
-`Functionally, it is equivalent to a NE1500. The register set
-is identical to the old LANCE with the 1500/2100 architecture
-additions. Older 1500/2100 drivers will work on the PCnet-ISA.
-The NE1500 and NE2100 architecture is basically the same.
-Initially Novell called it the 2100, but then tried to distinguish
-between coax and 10BASE-T cards. Anything that was 10BASE-T only was
-to be numbered in the 1500 range. That's the only difference.
-
-
-Many companies offer PCnet-ISA based products, including HP,
-Racal-Datacom, Allied Telesis, Boca Research, Kingston Technology, etc.
-The cards are basically the same except that some manufacturers
-have added `jumperless' features that allow the card to
-be configured in software. Most have not. AMD offers a standard
-design package for a card that uses the PCnet-ISA and many
-manufacturers use our design without change.
-What this means is that anybody who wants to write drivers for
-most PCnet-ISA based cards can just get the data-sheet from AMD. Call
-our literature distribution center at (800)222-9323 and ask for the
-Am79C960, PCnet-ISA data sheet. It's free.
-
-
-A quick way to understand whether the card is a `stock' card
-is to just look at it. If it's stock, it should just have one large
-chip on it, a crystal, a small IEEE address PROM, possibly a socket
-for a boot ROM, and a connector (1, 2, or 3, depending on the media
-options offered). Note that if it's a coax card, it will have some
-transceiver stuff built onto it as well, but that should be near the
-connector and away from the PCnet-ISA.'
-
-
-A note to would-be card hackers is that different LANCE
-implementations do `restart' in different ways. Some pick up
-where they left off in the ring, and others start right from
-the beginning of the ring, as if just initialised.
-
-
-
-
-!! 7.8 Multicast and Promiscuous Mode
-
-
-
-
-
-
-Another one of the things Donald has worked on is
-implementing multicast and promiscuous mode hooks.
-All of the ''released'' (i.e. __not__ ALPHA) ISA drivers
-now support promiscuous mode.
-
-
-Donald writes:
-`I'll start by discussing promiscuous mode, which is
-conceptually easy to implement. For most hardware you
-only have to set a register bit, and from then on you get
-every packet on the wire. Well, it's almost that easy;
-for some hardware you have to shut the board (potentially
-dropping a few packet), reconfigure it, and then re-enable
-the ethercard.
-OK, so that's easy, so I'll move on something that's not
-quite so obvious: Multicast. It can be done two ways:
-
-
-
-
-
-# Use promiscuous mode, and a packet filter like the
-Berkeley packet filter (BPF). The BPF is a pattern matching
-stack language, where you write a program that picks out the
-addresses you are interested in. Its advantage is that it's
-very general and programmable. Its disadvantage is that there
-is no general way for the kernel to avoid turning on promiscuous
-mode and running every packet on the wire through every registered
-packet filter. See
-The Berkeley Packet Filter
-for more info.
-
-#
-
-# Using the built-in multicast filter that most etherchips have.
-
-#
-
-
-
-I guess I should list what a few ethercards/chips provide:
-
-
-
-
-Chip/card Promiscuous Multicast filter
-----------------------------------------
-Seeq8001/3c501 Yes Binary filter (1)
-3Com/3c509 Yes Binary filter (1)
-8390 Yes Autodin II six bit hash (2) (3)
-LANCE Yes Autodin II six bit hash (2) (3)
-i82586 Yes Hidden Autodin II six bit hash (2) (4)
-
-
-
-
-
-
-# These cards claim to have a filter, but it's a simple
-yes/no `accept all multicast packets', or `accept no
-multicast packets'.
-
-#
-
-# AUTODIN II is the standard ethernet CRC (checksum)
-polynomial. In this scheme multicast addresses are hashed
-and looked up in a hash table. If the corresponding bit
-is enabled, this packet is accepted. Ethernet packets are
-laid out so that the hardware to do this is trivial -- you
-just latch six (usually) bits from the CRC circuit (needed
-anyway for error checking) after the first six octets (the
-destination address), and use them as an index into the
-hash table (six bits -- a 64-bit table).
-
-#
-
-# These chips use the six bit hash, and must have the
-table computed and loaded by the host. This means the
-kernel must include the CRC code.
-
-#
-
-# The 82586 uses the six bit hash internally, but it
-computes the hash table itself from a list of multicast
-addresses to accept.
-
-#
-
-
-
-Note that none of these chips do perfect filtering, and we
-still need a middle-level module to do the final
-filtering. Also note that in every case we must keep a
-complete list of accepted multicast addresses to recompute
-the hash table when it changes.
-
-
-
-
-!! 7.9 The Berkeley Packet Filter (BPF)
-
-
-
-
-
-
-The general idea of the developers is
-that the BPF functionality should not be provided
-by the kernel, but should be in a (hopefully little-used)
-compatibility library.
-
-
-For those not in the know: BPF (the Berkeley Packet Filter)
-is an mechanism for specifying to the kernel networking layers
-what packets you are interested in. It's implemented as a
-specialized stack language interpreter built into a low level
-of the networking code. An application passes a program
-written in this language to the kernel, and the kernel runs the
-program on each incoming packet. If the kernel has multiple
-BPF applications, each program is run on each packet.
-
-
-The problem is that it's difficult to deduce what kind of
-packets the application is really interested in from the packet
-filter program, so the general solution is to always run the
-filter. Imagine a program that registers a BPF program to
-pick up a low data-rate stream sent to a multicast address.
-Most ethernet cards have a hardware multicast address filter
-implemented as a 64 entry hash table that ignores most unwanted
-multicast packets, so the capability exists to make this a very
-inexpensive operation. But with the BPF the kernel must switch
-the interface to promiscuous mode, receive _all_ packets, and
-run them through this filter. This is work, BTW, that's very
-difficult to account back to the process requesting the packets.
-
-
-
-----
-
-!! 8. Networking with a Laptop/Notebook Computer
-
-
-
-
-
-There are several ways to put your laptop on a network.
-You can use the SLIP code (and run at serial line speeds);
-you can get a notebook with a supported
-PCMCIA slot built-in; you can get a laptop with a
-docking station and plug in an ISA ethercard; or you can use a
-parallel port Ethernet adapter.
-
-
-
-
-!!8.1 Using SLIP
-
-
-
-
-
-
-This is the cheapest solution, but by far the most difficult. Also,
-you will not get very high transmission rates. Since SLIP is not
-really related to ethernet cards, it will not be discussed further
-here. See the NET-2 Howto.
-
-
-
-
-
-
-
-!! 8.2 PCMCIA Support
-
-
-
-
-
-
-Try and
-determine exactly what hardware you have (ie. card manufacturer,
-PCMCIA chip controller manufacturer) and then ask on the LAPTOPS
-channel. Regardless, don't expect things to be all that simple.
-Expect to have to fiddle around a bit, and patch kernels, etc.
-Maybe someday you will be able to type `make config' 8-)
-
-
-At present, the two PCMCIA chipsets that are supported are
-the Databook TCIC/2 and the intel i82365.
-
-
-There is a number of programs on tsx-11.mit.edu in
-/pub/linux/packages/laptops/ that you may find useful. These
-range from PCMCIA Ethercard drivers to programs that communicate
-with the PCMCIA controller chip. Note that these drivers are
-usually tied to a specific PCMCIA chip (ie. the intel 82365
-or the TCIC/2)
-
-
-For NE2000 compatible cards, some people have had success
-with just configuring the card under DOS, and then booting
-linux from the DOS command prompt via loadlin.
-
-
-Things are looking up for Linux users that want PCMCIA support, as
-substantial progress is being made. Pioneering this effort is
-David Hinds. His latest PCMCIA support package can be obtained
-from:
-
-
-
-PCMCIA Package
-
-Look for a file like
-pcmcia-cs-X.Y.Z.tgz where X.Y.Z will be the latest version
-number. This is most likely uploaded to the tsx-11.mit.edu
-FTP site as well.
-
-
-Note that Donald's PCMCIA enabler works as a user-level
-process, and David Hinds' is a kernel-level solution.
-You may be best served by David's package as it is
-much more widely used and under continuous development.
-
-
-
-
-!!8.3 ISA Ethercard in the Docking Station.
-
-
-
-
-
-
-Docking stations for laptops typically cost about $250
-and provide two full-size ISA slots, two serial and one
-parallel port. Most docking stations are powered off of the
-laptop's batteries, and a few allow adding extra batteries in the
-docking station if you use short ISA cards. You can add an inexpensive
-ethercard and enjoy full-speed ethernet performance.
-
-
-
-
-!!8.4 Pocket / parallel port adaptors.
-
-
-
-
-
-
-The `pocket' ethernet adaptors may also fit your need.
-Note that the transfer speed will not be all that great
-(perhaps 200kB/s tops?) due to the limitations of the
-parallel port interface.
-
-
-Also most tie you down with a wall-brick power supply.
-You can sometimes avoid the wall-brick with the adaptors by buying
-or making a cable that draws power from the laptop's keyboard
-port. (See
-keyboard power)
-
-
-See
-DE-600 / DE-620 and
-!RealTek for two supported
-pocket adaptors.
-
-
-
-
-
-
-----
-
-!! 9. Miscellaneous.
-
-
-
-
-
-Any other associated stuff that didn't fit in anywhere else gets
-dumped here. It may not be relevant, and it may not be of general
-interest but it is here anyway.
-
-
-
-
-!! 9.1 Passing Ethernet Arguments to the Kernel
-
-
-
-
-
-
-Here are two generic kernel commands that can be passed to
-the kernel at boot time (ether and reserve).
-This can be done with LILO, loadlin,
-or any other booting utility that accepts optional arguments.
-
-
-For example, if the command was `blah' and it expected 3 arguments
-(say 123, 456, and 789) then, with LILO, you would use:
-
-
-LILO: linux blah=123,456,789
-
-
-For more information on (and a complete list of) boot time
-arguments, please see the
-!BootPrompt-HOWTO
-
-
-
-! The ether command
-
-
-
-
-
-The ether= argument is used in conjunction with
-drivers that are directly built into the kernel. The
-ether= argument will have ''absolutely no effect''
-on a modular driver. In its most generic form, it
-looks something like this:
-
-
-
-
-ether=IRQ,BASE_ADDR,PARAM_1,PARAM_2,NAME
-
-
-
-All arguments are optional. The first non-numeric argument
-is taken as the NAME.
-
-
-__IRQ:__
-Obvious. An IRQ value of `' (usually the default) means to autoIRQ.
-It's a historical accident that the IRQ setting is first rather than
-the base_addr -- this will be fixed whenever something else changes.
-
-
-__BASE_ADDR:__
-Also obvious. A value of `' (usually the default) means to
-probe a card-type-specific address list for an ethercard.
-
-
-__PARAM_1:__
-It was orginally used as an override value for the memory start
-for a shared-memory ethercard, like the WD80*3.
-Some drivers use the low four bits of this value to set the debug
-message level. 0 -- default, 1-7 -- level 1..7, (7 is maximum
-verbosity) 8 -- level 0 (no messages). Also, the LANCE driver
-uses the low four bits of this value to select the DMA channel.
-Otherwise it uses auto-DMA.
-
-
-__PARAM_2:__
-The 3c503 driver uses this to select between the internal and external
-transceivers. 0 -- default/internal, 1 -- AUI external.
-The Cabletron E21XX card also uses the low 4 bits of PARAM_2 to
-select the output media. Otherwise it detects automatically.
-
-
-__NAME:__
-Selects the network device the values refer to. The standard kernel
-uses the names `eth0', `eth1', `eth2' and `eth3' for bus-attached
-ethercards, and `atp0' for the parallel port `pocket' ethernet
-adaptor. The arcnet driver uses `arc0' as its name.
-The default setting is for a single ethercard to be probed for as
-`eth0'. Multiple cards can only be enabled by explicitly setting up
-their base address using these LILO parameters.
-The 1.0 kernel has LANCE-based ethercards as a special case. LILO
-arguments are ignored, and LANCE cards are always assigned
-`eth<n>' names starting at `eth0'. Additional non-LANCE ethercards
-must be explicitly assigned to `eth<n+1>', and the usual `eth0'
-probe disabled with something like `ether=,-1,eth0'.
-( Yes, this is bug. )
-
-
-
-
-! The reserve command
-
-
-
-
-
-This next lilo command is used just like `ether=' above, ie. it is
-appended to the name of the boot select specified in lilo.conf
-
-
-
-
-reserve=IO-base,extent{,IO-base,extent...}
-
-
-
-In some machines it may be necessary to prevent device drivers from
-checking for devices (auto-probing) in a specific region. This may be
-because of poorly designed hardware that causes the boot to ''freeze''
-(such as some ethercards), hardware that is mistakenly identified,
-hardware whose state is changed by an earlier probe, or merely
-hardware you don't want the kernel to initialize.
-
-
-The reserve boot-time argument addresses this problem by specifying
-an I/O port region that shouldn't be probed. That region is reserved
-in the kernel's port registration table as if a device has already
-been found in that region. Note that this mechanism shouldn't be
-necessary on most machines. Only when there is a problem or special
-case would it be necessary to use this.
-
-
-The I/O ports in the specified region are protected against
-device probes. This was put in to be used when some driver was
-hanging on a NE2000, or misidentifying some other device
-as its own. A correct device driver shouldn't probe a reserved
-region, unless another boot argument explicitly specifies that
-it do so. This implies that reserve will most often be used
-with some other boot argument. Hence if you specify a reserve
-region to protect a specific device, you must generally specify
-an explicit probe for that device. Most drivers ignore the port
-registration table if they are given an explicit address.
-
-
-For example, the boot line
-
-
-
-
-LILO: linux reserve=0x300,32 ether=,0x300,eth0
-
-
-
-keeps all device drivers except the ethercard drivers from
-probing 0x300-0x31f.
-
-
-As usual with boot-time specifiers there is an 11 parameter limit,
-thus you can only specify 5 reserved regions per reserve keyword.
-Multiple reserve specifiers will work if you have an unusually
-complicated request.
-
-
-
-
-!! 9.2 Using the Ethernet Drivers as Modules
-
-
-
-
-
-
-Most of the linux distributions now ship kernels that have
-very few drivers built-in. The drivers are instead supplied as
-a bunch of independent dynamically loadable modules. These
-modular drivers are typically loaded by the administrator
-with the modprobe(8) command, or in some cases they are
-automatically loaded by the kernel through `kerneld' (in
-2.) or `kmod' (in 2.1) which then calls modprobe.
-
-
-You particular distribution may offer nice graphical
-configuration tools for setting up ethernet modules. If possible
-you should try and use them first. The description that follows
-here gives information on what underlies any fancy configuration
-program, and what these programs change.
-
-
-The information that controls what modules are to be used and
-what options are supplied to each module is usually stored in
-the file /etc/conf.modules. The two main options of
-interest (for ethernet cards) that will be used in this file
-are alias and options. The modprobe command
-consults this file for module information.
-
-
-The actual modules themselves are typically stored in a directory
-named /lib/modules/`uname -r`/net where the
-uname -r command gives the kernel version (e.g. 2..34).
-You can look in there to see which module matches your card.
-
-
-The first thing you need in your conf.modules file is
-something to tell modprobe what driver to use for the
-eth0 (and eth1 and...) network interface. You
-use the alias command for this. For example, if you
-have an ISA SMC EtherEZ card which uses the smc-ultra.o
-driver module, you need to alias this driver to eth0
-by adding the line:
-
-
-
-
-alias eth0 smc-ultra
-
-
-
-The other thing you may need is an options line indicating
-what options are to be used with a particular module (or module
-alias). Continuing with the above example, if you only used the
-single alias line with no options line, the kernel would
-warn you (see dmesg) that autoprobing for ISA cards is not
-a good idea. To get rid of this warning, you would add another
-line telling the module what I/O base the card is configured to,
-in this case say the hexidecimal address 0x280 for example.
-
-
-
-
-options smc-ultra io=0x280
-
-
-
-Most ISA modules accept parameters like io=0x340 and
-irq=12 on the insmod command line. It is ''REQUIRED''
-or at least ''STRONGLY ADVISED'' that you supply these parameters
-to avoid probing for the card. Unlike PCI and EISA devices,
-there is no real safe way to do auto-probing for most ISA devices,
-and so it should be avoided when using drivers as modules.
-
-
-A list of all the options that each module accepts can be
-found in the file:
-
-
-/usr/src/linux/Documentation/networking/net-modules.txt
-
-
-It is recommended that you read that to find out what options
-you can use for your particular card.
-Note that some modules support comma separated value lists for modules
-that have the capability to handle multiple devices from a single
-module, such as all the 8390 based drivers, and the PLIP driver.
-For exmple:
-
-
-
-----
-
-options 3c503 io=0x280,0x300,0x330,0x350 xcvr=,1,,1
-
-----
-
-
-The above would have the one module controlling four
-3c503 cards, with card 2 and 4 using external
-transcievers. Don't put spaces around the `=' or commas.
-
-
-Also note that a ''busy'' module can't be removed. That means
-that you will have to ifconfig eth0 down (shut down the
-ethernet card) before you can remove the module(s).
-
-
-The command lsmod will show you what modules are
-loaded, whether they are in use, and rmmod will remove them.
-
-
-
-
-!!9.3 Related Documentation
-
-
-
-
-
-
-Much of this info came from saved postings from the comp.os.linux
-groups, which shows that it is a valuable resource of information.
-Other useful information came from a bunch of small files by Donald
-himself. Of course, if you are setting up an Ethernet card,
-then you will want to read the NET-2 Howto so that you can actually
-configure the software you will use. Also, if you fancy yourself as
-a bit of a hacker, you can always scrounge some additional info
-from the driver source files as well. There is usually a paragraph
-or two in there describing any important points before any actual
-code starts..
-
-
-For those looking for information that is not specific in any way
-to Linux (i.e. what is 10BaseT, what is AUI, what does a hub do, etc.)
-I strongly recommend making use of the newsgroup ''comp.dcom.lans.ethernet''
-and/or ''comp.sys.ibm.pc.hardware.networking''. Newsgroup archives
-such as those at dejanews.com can also be an invaluable source
-of information.
-You can grab the newsgroup FAQ from RTFM (which holds all the newsgroup
-FAQs) at the following URL:
-
-
-
-Usenet FAQs
-
-You can also have a look at the `Ethernet-Home Page' so to speak,
-which is at the following URL:
-
-
-
-Ethernet-!!HomePage
-
-
-
-
-
-
-!! 9.4 Disclaimer and Copyright
-
-
-
-This document is ''not'' gospel. However, it is probably the most
-up to date info that you will be able to find. Nobody is responsible
-for what happens to your hardware but yourself. If your ethercard
-or any other hardware goes up in smoke (...nearly impossible!)
-we take no responsibility. ie. THE AUTHORS ARE NOT RESPONSIBLE
-FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE
-INFORMATION INCLUDED IN THIS DOCUMENT.
-
-
-This document is Copyright (c) 1993-1999 by Paul Gortmaker.
-Permission is granted to make and distribute verbatim copies
-of this manual provided the copyright notice and this permission
-notice are preserved on all copies.
-
-
-Permission is granted to copy and distribute modified versions
-of this document under the conditions for verbatim copying,
-provided that this copyright notice is included exactly as in
-the original, and that the entire resulting derived work is
-distributed under the terms of a permission notice identical
-to this one.
-
-
-Permission is granted to copy and distribute translations
-of this document into another language, under the above
-conditions for modified versions.
-
-
-A hint to people considering doing a translation. First,
-translate the SGML source (available via FTP from the !HowTo
-main site) so that you can then generate other output formats.
-Be sure to keep a copy of the original English SGML source that
-you translated from! When an updated !HowTo is released,
-get the new SGML source for that version, and then a simple
-diff -u old.sgml new.sgml will show you exactly what has
-changed so that you can easily incorporate those changes into
-your translated SMGL source without having to re-read or
-re-translate everything.
-
-
-If you are intending to incorporate this document into a
-published work, please make contact (via e-mail) so that
-you can be supplied with the most up to date information
-available. In the past, out of date versions of the Linux
-!HowTo documents have been published, which caused the developers
-undue grief from being plagued with questions that were already
-answered in the up to date versions.
-
-
-
-
-!!9.5 Closing
-
-
-
-
-
-
-If you have found any glaring typos, or outdated info in this
-document, please send an e-mail. It is big, and it
-is easy to overlook stuff. If you have e-mailed about a change,
-and it hasn't been included in the next version, please don't
-hesitate to send it again, as it might have got lost amongst
-the usual sea of SPAM and junk mail I get.
-
-
-Thanks!
-
-
-Paul Gortmaker, p_gortmaker@yahoo
.com
-----
+Describe
[HowToEthernetHOWTO
] here.