Subject: Re: Token Ring driver for NetBSD
To: None <onno@simplex.nl>
From: John Messenger <John.Messenger@proteon.com>
List: tech-net
Date: 08/29/1996 14:49:41
Onno,

I hope you don't mind me copying this conversation to tech-net.

I'd be really interested to look at your driver.  Did you arrange to
have good separation between the chipset-specific stuff and the
token-ring code?  There's obviously scope for generic code to handle
most of the token-ring protocols like route discovery and ARP.  It
should be possible to combine these with FDDI as well.

The problems that I came across were: how to combine source-route
discovery and caching with the ARP cache without wasting storage on
non-token-ring interfaces; how to do ARP on token ring (the details of
how to react to non-IEEE hardware types and whether to compare source
addresses with the hardware address inside the packet to detect
bitswapped addresses due to bridging from Ethernet, etc).  I have a
collection of email messages relating to ARP that you can look at if
you are interested.  Also, I used an interface to Proteon's
proprietary RapidMAC microcode for the TMS380 (because I was involved
with its design), and that information can't be released at present.

In terms of programming the TMS380, that breaks down into two areas:
the hardware interface and the microcode interface.  For TI's
TurboMAC, these are both described in the TMS380 Second Generation
Token Ring Adapter Chipset User's Guide (known as the Yellow Book), a
publically available book from TI.  I know of no published information
available elecronically.  A third area you have to deal with is the
vendors' ASICs that sit between the TMS380 and the bus.  Typically
these have to be set up at initialisation time and not worried about
afterwards, but they determine the memory layout and so may vary from
vendor to vendor.

So unfortunately I have no code that I can release at the moment.  I
have plans to rewrite my driver to use TurboMAC, because this has a
more publishable microcode interface.  An area that we should
certainly try to work together on is the token-ring protocol code, and
this is where most of the hard work really is.  I haven't yet studied
Matt Thomas's  code for FDDI but I imagine that a comparison between
that code and the Ethernet code would be a good place to start.

Can I read your NetBSD Tropic driver?

Regards,
        -- John Messenger

>>>>> "Onno" == Onno van der Linden <onno@simplex.nl> writes:

    Onno> Fri, 2 Jun 95 11:37:48 BST John.Messenger@proteon.com (John
    Onno> Messenger) wrote:

    John>> I've got a problem with my token ring driver for a Proteon
    John>> p139x token ring card: I may not be able to distribute it
    John>> because of concerns over disclosure of proprietary information.
    John>> This may take some time to resolve either way.  It is for the
    John>> Texas TMS380 family of token ring controllers.  (The Linux
    John>> token ring driver is for the IBM/Tropic chipset).

    Onno> Since my port of the Mach driver to NetBSD for the Tropic
    Onno> chipset is nearly ready for testing I'm already looking at a
    Onno> following project: the TMS380 chipset (lots of Madge cards
    Onno> at work to test it on).

    Onno> It's been a year since you wrote the above so here are a
    Onno> couple of questions:

    Onno> 1. What's the current `legal status' of the driver you
    Onno> worked on ?

    Onno> 2. Depending on the answer to question 1: do you know if
    Onno> there's any programming information on the TMS380
    Onno> electronically available ? Searching the web with lycos I
    Onno> found a little information on the TMS380 but it was nowhere
    Onno> near to what I really want.

    Onno> Onno van der Linden (onno@simplex.nl)