Linux Support for TMS380 Token Ring Cards
The tms380tr driver set for Linux supports many of the various
cards around that use the Texas Instruments TMS380 line of
COMMprocessors. As of kernel 2.3.41, the driver is distributed
as a non-functional TMS380-handling module, plus functional
modules for each class of supported card.
The following modules exist, with support for the listed cards:
- tmspci (Generic TMS380 PCI support)
- SysKonnect TR4/16(+) PCI (SK-4590)
- SysKonnect TR4/16 PCI (SK-4591)
- Compaq 4/16 PCI
- Thomas-Conrad TC4048 4/16 PCI
- 3Com 3c339 TokenLink Velocity PCI
- Note: If your card is not listed here, but is a generic
TMS380-based board (contains only a TMS380PCIA and
TMS380C30 processor), try adding its PCI vendor and device
IDs to the table at the top of
drivers/net/tokenring/tmspci.c. Its very possible thats
all it takes to get your card working. If so, contact me
with the information so I can add it to the mainstream
tree.
- tmsisa (2.3.99x and 2.4.x only)
- abyss
- atula
- Madge Smart 16/4 AT Plus Ringnode (53-02) (ISA)
- Note: Other related cards may be supported as well. See
the notes at the top of drivers/net/tokenring/atula.c for
more information. Contact me if you would like to do
serious testing, and I'll see what I can do to make up for
your particular card's inadequencies.
- madgemc
- Madge Smart 16/4 Ringnode MC16 MicroChannel
- Madge Smart 16/4 Ringnode MC32 MicroChannel (not tested)
Planned support:
- Intel TokenExpress ISA cards with MB620228 config/glue chip
-- These are basically the same as the low-end ISA Madge
cards
- Some of the simpler Madge/Olicom cards (working with them now)
- Smart 16/4 Mk2 PCMCIA -- Should be mostly the same as the PCI Mk2, will definitly be supported (I have the cards in-hand)
- Smart 16/4 ISA (older version and newer PnP version) -- I don't have a lot of documentation on these, but I do have the cards to play with.
Notes for developement kernels prior to 2.3.41
I do not recommend using these kernels, however there are
varying degrees of support for cards in them. They use a single
module, but its named tms380tr.
Notes for Kernels prior to 2.3.22, including 2.2.x
In 2.2.x and kernels prior to 2.3.22, the driver is called
'sktr', after the original card it was written for (the
SysKonnects). It was renamed to better reflect the wide
usefulness of the code. The 2.2 driver will probably never
support any more cards than the SysKonnect and Compaq PCI cards,
as it would take drastic changes to back-port the new 2.3 driver
to 2.2. These cards are supported by the old sktr:
- SysKonnect TR4/16(+) ISA (SK-4190)
- SysKonnect TR4/16(+) PCI (SK-4590)
- SysKonnect TR4/16 PCI (SK-4591)
- Compaq 4/16 PCI
Known bugs/issues:
- New modular driverset is lacking support for the SysKonnect ISA board
- May still be problems in multicasting [2.2 and 2.3]
- Possible lockups when using larger MTUs (10000+) [2.3]
- Ring speed is not selectable -- defaults to 16mb, unless its set in the EEPROM on the card [2.2 and 2.3]
- ISA does't work on Alpha boards with weird/broken ISA DMA
controllers that don't work with DMA_MODE_CASCADE -- Driver
should fall back to (the currently unwritten) Pseudo-DMA
support in these cases [2.2 and 2.3]
Patches
The following are various patches made available for either
special purposes or for mid-release features/bugfixes.
- 2.3.22 through 2.3.26: 3Com 3c339 support (roussel@efi.com)
- 2.3.26: Probing/PCI fixes -- Fixes multicard support and updates to use new(ish) PCI routines. (phillim@amtrak.com)
- 2.3.26: Fix to multicard/PCI patch -- Cleanup patch to previous one. (phillim@amtrak.com)
- 2.3.27/28: tr_freedev removal fix. 2.3.27/28 were interim releases of the net_init cleanup. This should be fixed in releases past 2.3.29. Problem causes undefined references to tr_freedev in final kernel linking. Fixes both ibmtr and tms380tr. (kaos@ocs.com.au)
- 2.3.28: General update. Includes all patches up to this point. Against 2.3.28.
- 2.3.34: Bugfixes and beginnings of Madge support. Madge Smart 16/4 PCI Mk2 should be supported in this release. Brings everything up to my current tree (except PDMA and Intel ISA support, those are still broken). Not really a patch, but a full distribution. You can just untar in drivers/net/tokenring of your if you'd like. NOTE: This has not been tested on anything but the Madge PCI Mk2! Have fun!
- 2.3.35: First modular release. Starting in this release, tms380tr is no longer a single module, but a library module (ala 8390/ne2000) plus several card support modules. This reduces code size and memory footprint while increasing manageablility and portability. Overall, it seems to be a good design decision. This tarball comes ready to untar in a 2.3.35 drivers/net/tokenring, including an updated Config.in and Makefile. Just untar, make oldconfig, and select the modules you want. This tarball contains the tms380tr module, a tmspci module for generic PCI support, an abyss module for Madge PCI Mk2 support, and updated Config.in and Makefile. Note that this release contains absolutly not ISA card support, as I could not find enough information needed to put together a module for the SysKonnect ISA card (that was the only card supported anyway, and I'm not even sure it still worked). Watch out for reworked ISA support soon. In any case, this driver has been tested on the Madge Mk2 (using abyss) and a Thomas-Conrad TC4048 (using tmspci). I've also tested up to two abyss cards and a tmspci card running concurrently, with no problems. Also watch out for more driver modules...I've got a huge stack of cards sitting here from Madge and Olicom, I just need documentation for them now.
- 2.3.41-pre2: Resync. Brings 2.3.41-pre2 up to my tree, including new Madge MCA driver. I've sent this to Alan for inclusion in 2.3.41.
- 2.3.41-pre4: Everything should be synced up now. Looks like
the Documentation/Configure.help additions got lost somewhere.
I'll resend.
- 2.4.3: Fixes
tmspci and abyss in 2.4.3. Sorry for not being as good of
maintainer as I really should be. Thanks to Jochen Friedrich
for the register_trdev screwup (where'd that happen?!).
People who made this driver possible...
- Christoph Goos (cgoos at syskonnect dot de): Wrote 99% of the driver, and very nicely at that. Also thank SysKonnect for paying Christoph to write it!
- Jay Schulist (jschlst at samba dot anu dot edu dot au): Maintained the driver for a while. Got the original release into the mainstream kernel (back in 2.1.xx). Then promptly disappeared.
- Adam Fritzler (mid at zigamorph dot net): Renamed sktr to tms380tr, and then added more general support for the Compaq and Thomas-Conrad boards. Also marked as the maintainer of this new driver. Actively accepting patches (hint hint).
- Alan Cox: For putting up with my messed up patches and eventually getting everything shoved into Linus. And just for being Alan.
- Mike Phillips (phillim at amtrak dot com): Fixed PCI probing in 2.3.26+ and other random bugs involving detection and multicard.
- Jochen Friedrich (jochen at scram dot de): Wrote tmsisa.
- Madge Networks: Donated cards, time, and some sample source. Great company.
Adam Fritzler
Last modified: Thu Apr 19 11:41:10 PDT 2001