(C) 1997-1998 Caldera, Inc.
(C) 1998 James Banks
(C) 1999-2001 Torben Mathiasen <tmm@image.dk, torben.mathiasen@compaq.com>

For driver information/updates visit http://opensource.compaq.com


TLAN driver for Linux, version 1.14a
README


I.  Supported Devices.

    Only PCI devices will work with this driver.

    Supported:
    Vendor ID	Device ID	Name
    0e11	ae32		Compaq Netelligent 10/100 TX PCI UTP
    0e11	ae34		Compaq Netelligent 10 T PCI UTP
    0e11	ae35		Compaq Integrated NetFlex 3/P
    0e11	ae40		Compaq Netelligent Dual 10/100 TX PCI UTP
    0e11	ae43		Compaq Netelligent Integrated 10/100 TX UTP
    0e11	b011		Compaq Netelligent 10/100 TX Embedded UTP
    0e11	b012		Compaq Netelligent 10 T/2 PCI UTP/Coax
    0e11	b030		Compaq Netelligent 10/100 TX UTP
    0e11	f130		Compaq NetFlex 3/P
    0e11	f150		Compaq NetFlex 3/P
    108d	0012		Olicom OC-2325	
    108d	0013		Olicom OC-2183
    108d	0014		Olicom OC-2326	


    Caveats:
    
    I am not sure if 100BaseTX daughterboards (for those cards which
    support such things) will work.  I haven't had any solid evidence
    either way.

    However, if a card supports 100BaseTx without requiring an add
    on daughterboard, it should work with 100BaseTx.

    The "Netelligent 10 T/2 PCI UTP/Coax" (b012) device is untested,
    but I do not expect any problems.
    

II.   Driver Options
	1. You can append debug=x to the end of the insmod line to get
           debug messages, where x is a bit field where the bits mean
	   the following:
	   
	   0x01		Turn on general debugging messages.
	   0x02		Turn on receive debugging messages.
	   0x04		Turn on transmit debugging messages.
	   0x08		Turn on list debugging messages.

	2. You can append aui=1 to the end of the insmod line to cause
           the adapter to use the AUI interface instead of the 10 Base T
           interface.  This is also what to do if you want to use the BNC
	   connector on a TLAN based device.  (Setting this option on a
	   device that does not have an AUI/BNC connector will probably
	   cause it to not function correctly.)

	3. You can set duplex=1 to force half duplex, and duplex=2 to
	   force full duplex.

	4. You can set speed=10 to force 10Mbs operation, and speed=100
	   to force 100Mbs operation. (I'm not sure what will happen
	   if a card which only supports 10Mbs is forced into 100Mbs
	   mode.)

	5. You have to use speed=X duplex=Y together now. If you just
	   do "insmod tlan.o speed=100" the driver will do Auto-Neg.
	   To force a 10Mbps Half-Duplex link do "insmod tlan.o speed=10 
	   duplex=1".

	6. If the driver is built into the kernel, you can use the 3rd
	   and 4th parameters to set aui and debug respectively.  For
	   example:

	   ether=0,0,0x1,0x7,eth0

	   This sets aui to 0x1 and debug to 0x7, assuming eth0 is a
	   supported TLAN device.

	   The bits in the third byte are assigned as follows:

		0x01 = aui
		0x02 = use half duplex
		0x04 = use full duplex
		0x08 = use 10BaseT
		0x10 = use 100BaseTx

	   You also need to set both speed and duplex settings when forcing
	   speeds with kernel-parameters. 
	   ether=0,0,0x12,0,eth0 will force link to 100Mbps Half-Duplex.

	7. If you have more than one tlan adapter in your system, you can
	   use the above options on a per adapter basis. To force a 100Mbit/HD
	   link with your eth1 adapter use:
	   
	   insmod tlan speed=0,100 duplex=0,1

	   Now eth0 will use auto-neg and eth1 will be forced to 100Mbit/HD.
	   Note that the tlan driver supports a maximum of 8 adapters.


III.  Things to try if you have problems.
	1. Make sure your card's PCI id is among those listed in
	   section I, above.
	2. Make sure routing is correct.
	3. Try forcing different speed/duplex settings


There is also a tlan mailing list which you can join by sending "subscribe tlan"
in the body of an email to majordomo@vuser.vu.union.edu.
There is also a tlan website at http://opensource.compaq.com

