Text File for the SMC TokenCard TokenRing Linux driver (smctr.c).
        By Jay Schulist <jschlst@samba.org>

The Linux SMC Token Ring driver works with the SMC TokenCard Elite (8115T) 
ISA and SMC TokenCard Elite/A (8115T/A) MCA adapters.

Latest information on this driver can be obtained on the Linux-SNA WWW site.
Please point your browser to: http://www.linux-sna.org

This driver is rather simple to use. Select Y to Token Ring adapter support
in the kernel configuration. A choice for SMC Token Ring adapters will
appear. This drives supports all SMC ISA/MCA adapters. Choose this
option. I personally recommend compiling the driver as a module (M), but if you
you would like to compile it statically answer Y instead.

This driver supports multiple adapters without the need to load multiple copies
of the driver. You should be able to load up to 7 adapters without any kernel
modifications, if you are in need of more please contact the maintainer of this
driver.

Load the driver either by lilo/loadlin or as a module. When a module using the
following command will suffice for most:

# modprobe smctr
smctr.c: v1.00 12/6/99 by jschlst@samba.org
tr0: SMC TokenCard 8115T at Io 0x300, Irq 10, Rom 0xd8000, Ram 0xcc000.

Now just setup the device via ifconfig and set and routes you may have. After
this you are ready to start sending some tokens.

Errata:
1). For anyone wondering where to pick up the SMC adapters please browse
    to http://www.smc.com

2). If you are the first/only Token Ring Client on a Token Ring LAN, please
    specify the ringspeed with the ringspeed=[4/16] module option. If no
    ringspeed is specified the driver will attempt to autodetect the ring
    speed and/or if the adapter is the first/only station on the ring take
    the appropriate actions. 

    NOTE: Default ring speed is 16MB UTP.

3). PnP support for this adapter sucks. I recommend hard setting the 
    IO/MEM/IRQ by the jumpers on the adapter. If this is not possible
    load the module with the following io=[ioaddr] mem=[mem_addr]
    irq=[irq_num].

    The following IRQ, IO, and MEM settings are supported.

    IO ports:
    0x200, 0x220, 0x240, 0x260, 0x280, 0x2A0, 0x2C0, 0x2E0, 0x300,
    0x320, 0x340, 0x360, 0x380.

    IRQs:
    2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15

    Memory addresses:
    0xA0000, 0xA4000, 0xA8000, 0xAC000, 0xB0000, 0xB4000,
    0xB8000, 0xBC000, 0xC0000, 0xC4000, 0xC8000, 0xCC000,
    0xD0000, 0xD4000, 0xD8000, 0xDC000, 0xE0000, 0xE4000,
    0xE8000, 0xEC000, 0xF0000, 0xF4000, 0xF8000, 0xFC000

This driver is under the GNU General Public License. Its Firmware image is
included as an initialized C-array and is licensed by SMC to the Linux
users of this driver. However no warranty about its fitness is expressed or
implied by SMC.
