Index: oldkernel/linux/Documentation/Configure.help diff -u linux/Documentation/Configure.help:1.2 linux/Documentation/Configure.help:1.3 --- linux/Documentation/Configure.help:1.2 Thu Jun 1 14:51:28 2000 +++ linux/Documentation/Configure.help Thu Jun 1 14:57:34 2000 @@ -6090,6 +6090,36 @@ Documentation/networking/net-modules.txt. The module will be called 3c509.o. +3c90x series "Cyclone/Hurricane/Tornado" support +CONFIG_BC90X + If you have one or more of the following 3Com EtherLink PCI network + adapters, say Y and read README file distributed in the package. + + EtherLink 10/100 PCI Adapters + 3c905B-TX EtherLink 10/100 PCI with Remote Wake Up + 3c905B-T4 EtherLink 10/100 PCI T4 + 3c905B-COMBO EtherLink 10/100 PCI COMBO + 3c905C-TXM EtherLink 10/100 PCI For Complete PC Management + + EtherLink Server 10/100 PCI Adapters + 3c980-TX EtherLink Server 10/100 PCI + 3c980C-TX EtherLink Server 10/100 PCI + + EtherLink 100 PCI Adapters + 3c905B-FX EtherLink 100 PCI Fibert + + EtherLink 10 PCI Adapters + 3c900B-TPO EtherLink 10 PCI TPO + 3c900B-TPC EtherLink 10 PCI TPC + 3c900B-COMBO EtherLink 10 PCI COMBO + 3c900B-FL EtherLink 10 PCI Fiber + + + If you want to compile this as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt as well as + Documentation/networking/3c90x.txt. + 3c590 series (592/595/597) "Vortex" support CONFIG_VORTEX If you have a 3Com "Vortex" (Fast EtherLink 3c590/3c592/3c595/3c597) Index: oldkernel/linux/Documentation/networking/3c90x.txt diff -u /dev/null linux/Documentation/networking/3c90x.txt:1.1 --- /dev/null Mon Jul 31 21:12:12 2000 +++ linux/Documentation/networking/3c90x.txt Thu Jun 1 14:57:34 2000 @@ -0,0 +1,345 @@ +File: README + + 3Com (R) Corporation + EtherLink 10/100 PCI (3C90x) Network Interface Card + Driver for Linux + + +This file describes the 3C90x network interface card (NIC) driver for Linux. +It includes the following topics: + + * Supported NICs + * Supported Platforms and Distributions + * Loading the Driver Module + * Building the Driver + * Configuring the Driver + * Support Information + * Additional Information + + CAUTION: 3Com has not yet verified functionality of the 3C90x + driver on platforms, architectures, or configurations other than + those specified in this file. Although it may operate correctly + on other configurations, users are encouraged to exercise caution + when using the driver with other configurations. + + DISCLAIMER: 3Com makes no warranties or guarantees, expressly, + implied, or otherwise. Usage of this driver is solely at the + risk of the user. + + +* Supported NICs +---------------- + +The 3C90x NIC driver for Linux supports the following EtherLink NICs: + + EtherLink 10/100 PCI NICs + 3C905C Family and 3C920 ASICs EtherLink 10/100 PCI including + the -TX and -TX-M + 3C905B Family and 3C918 ASICs EtherLink 10/100 PCI including + the -TX -TX-M and -TX-NM + 3C905B-COMBO EtherLink 10/100 PCI COMBO + 3C905B-T4 EtherLink 10/100 PCI T4 + + EtherLink Server 10/100 PCI NICs + 3C980C-TX EtherLink Server 10/100 PCI + 3C980B-TX EtherLink Server 10/100 PCI + 3C980-TX EtherLink Server 10/100 PCI + + EtherLink 100 PCI NIC + 3C905B-FX EtherLink 100 PCI Fiber + + EtherLink 10 PCI NICs + 3C900B-TPO EtherLink 10 PCI TPO + 3C900B-TPC EtherLink 10 PCI TPC + 3C900B-COMBO EtherLink 10 PCI COMBO + 3C900B-FL EtherLink 10 PCI Fiber + + The 3c590/3c592/3c595/3c597 and 3C905 Families are supported + with the 3c59x driver from Donald Becker. + +* Supported Platforms and Distributions +--------------------------------------- + + The 3C90x driver for Linux has been tested with the following + commercial Linux distributions, using the i386 architecture: + + RedHat 5.2 + Kernel version 2.0.36 (i386) + + RedHat 6.0 + Kernel version 2.2.5-15 (i386) + Kernel version 2.2.5-22 (i386) + + NOTE: The driver has been tested on both SMP and UP machines. + + +* Loading the Driver Module +--------------------------- + + To load the 3C90x driver module on a RedHat 5.2 or 6.0 system, + place an "alias" in the file named /etc/conf.modules. + + The alias instructs the kernel module loader to use the + 3C90x driver module for a specific Linux Ethernet interface. + When the system attempts to use this Ethernet interface, it + causes the kernel module loader to load the 3c90x driver + into the system automatically, and initialize it for use. + + The alias listed below associates the Ethernet device "eth0" with + the 3c90x driver module. If you have one of the EtherLink NICs + that is supported by the driver, place the following line in the + /etc/conf.modules file: + + alias eth0 3c90x + + To enable additional supported EtherLink NICs, create additional + aliases, such as: + + alias eth1 3c90x + alias eth2 3c90x + + + Using 3c90x and 3c59x drivers + ------------------------------ + The 3C90x driver for Linux supports the "B" and "C" models of the + EtherLink 3C90x NIC family (see the supported NICs listed above). + + Support for older 3C900 and 3C59x NICs, as well as many current + 3Com NICs, is provided by the 3C59x driver in Linux. + + Because both of these drivers support many of the same models of NICs, + 3Com recommends using the 3C90x driver module for the most recent NICs + (those listed above), and the 3c59x driver for those older NICs + not supported by the 3c90x driver. + + Both the 3C90x and 3C59x driver modules can be used at the same time. + However, to make sure that the 3C90x driver is used with the + appropriate NIC, configure your system to load the 3C90x driver first. + This allows the 3C90x driver to attach itself to all of the NICs that + it supports. Once this is complete, the 3C59x driver can be loaded + and used by your system for any remaining 3Com NICs that are not + supported by the 3C90x driver. + + To accomplish this driver module loading order, it is important to + understand how both the 3C90x and 3C59x drivers scan the PCI slots + for the presence of a suitable NIC, how the kernel module loading + system works, and how the "eth0," "eth1," "eth2," etc. device names + are assigned. + + Both of the 3C90x and 3C59x drivers attempt to locate all of the + PCI network devices they support. If the 3C90x driver first locates + three supported network devices, they will be named eth0, eth1, and + eth2. If, subsequently, the 3C59x driver finds two devices, they + will be named eth3 and eth4. (Note that the ethN devices names are + assigned in a first-found order; this may not be what is requested + in the /etc/conf.modules file.) + + Both drivers scan for devices in PCI slot number order, beginning at + slot 0, and scanning to slot 255. Unfortunately, there is no + standard for how PCI slots are numbered relative to their location + in a PC; each PC vendor determines the numbering order of PCI slots. + This means that the slots in which you have placed your NICs affects + the order in which the NICs are "found" by the driver. The + device named eth0 will be the first device found and successfully + scanned by the driver; eth1 will be the second Ethernet device; + eth2 the third, and so on. + + To ensure that the 3C90x driver module is the first to detect all + supported NICs, place an "alias eth0 3c90x" alias in + /etc/conf.modules. + + Remember: ALL supported devices found by either the 3C90x or 3C59x + driver will be used by that driver. There is currently no way to + control specific NIC-to-driver assignments. + + +* Building the Driver +--------------------- + The 3C90x driver can be built either as a kernel loadable module, or + it can be compiled directly into the kernel. + + Building a loadable module: + --------------------------- + To build the 3c90x driver as a loadable module, compile the 3c90x.c + source file with the following command: + + gcc -c 3c90x.c -O2 -Wall -Wstrict-prototypes -fomit-frame-pointer \ + -fno-strength-reduce -pipe -m486 -malign-loops=2 \ + -malign-jumps=2 -malign-functions=2 -DCPU=486 \ + -DMODULE -D__KERNEL__ + + Additionally, you can modify this compile line by: + + Adding -DMODVERSIONS to the command line if your kernel was built + with symbol versioning (RedHat, etc.) + + Adding -D__SMP__ to the command line for SMP support + + + To install a loadable module, enter the following command: + + insmod 3c90x.o + + + Building the driver into the base kernel: + ---------------------------------------- + To build the 3C90x driver into the base kernel, run the patch utility + to alter the original kernel source to include the 3C90x driver + source, and then re-run the kernel configuration process. + + Note: It is assumed that the user understands how to configure and + build the Linux kernel, a process which is beyond the scope of this + document and not described here. + + Included with the 3C90x distribution tar file are two patch input files + named "patch-2.2.5" and "patch-2.0.36". These are used to patch your + original kernel source. Use the patch file that matches the version + of your kernel source. + + CAUTION: The following process MODIFIES your original kernel source + code. It is highly recommended that you backup your kernel source + code if you are concerned about these modifications. + + To build the 3C90x driver into the base kernel: + + 1. Run the following command to patch your kernel source code + and replace the with the root of your + kernel source code: + + % patch -d -p0 < + + NOTE: is the name of the patch file (patch-2.2.5 or + patch-2.0.36) that is appropriate for your kernel. Both + patch files are included with the driver: + + Use patch-2.2.5 for kernel versions 2.2.5-15 and 2.2.5-22. + Use patch-2.0.36 for kernel version 2.0.36-0.7. + + The root of your kernel source code may be /usr/src/linux. + + 2. After the patch has been applied successfully, reconfigure, + rebuild and reinstall your kernel. + + The patch applied to your kernel source updates the appropriate + files such that the "make config" process understands the new + 3c90x driver. Be sure to configure 3Com networking, and specifically + support for the 3c90x driver. + + + +* Configuring the Driver +------------------------ + + The 3C90x driver supports the following options, which can be + supplied as command line arguments to the insmod command or in the + /etc/conf.modules file. Unless otherwise stated, all settings take + the form of: + +