
Hi everyone,

After an extended but pleasant leave of absence, I'm back to hacking on the
Linux ARCnet driver again, and I've made a lot of progress!

This is the usual call for everyone who wants to try to find the bugs in my
new version.  I don't think there are very many of them this time -- the
driver is a lot less ugly than it used to be.  But a lot of it is also
rather new, so we need to find out if it still works on your favourite card
and talks to your favourite Other Software.

Linux-ARCnet 3.90 BETA is a prerelease version of version 4.0, which I
intend to be the very last major revision of the driver.  Let's face it, it
simply does everything now.
	
	
So what's new?

  - Massively redesigned the driver core.  There's now much less typecasting
    and weird pointer arithmetic, and we shouldn't have any race conditions
    anymore (although the convoluted way we handled things before seemed to
    eliminate the race conditions too, at least on single-processor
    systems).  In case you don't get the hint, people with SMP systems (that
    means you, Andrew) should try the new version and see if it works.
    
  - We should now be completely CPU arch-independent - people with ARCnet
    cards on their Alpha, PowerPC, or other systems should try them out and
    LET ME KNOW IF IT WORKS!
	    
  - You can use a COM20020-based PCMCIA card (such as the Contemporary
    Controls PCM20) without editing source code or recompiling now.
	    
  - Less code duplication between the hardware-specific modules, so they're
    much easier to read and maintain.
    
  - I also split the encapsulation drivers into separately loadable modules
    (rfc1201.c, rfc1051.c) and added a new "raw" encapsulation for all the
    people who want to write non-TCP/IP ARCnet programs in userspace. 

  - There are no longer any special encapsulation-specific devices (arc0e,
    arc0s).  Now, we can detect the encap automatically for each host on the
    network, so hosts can run whatever wonky drivers (Microsoft) they want
    and still talk transparently to your Linux system.  Of course,
    incompatible drivers still can't talk to each other unless they use
    Linux as a router.  But they _can_ use Linux as a router.
    

Missing features you should know about:

  - You MUST compile the driver as a module for now.  Anyone who wants to
    reintegrate it with the kernel should feel free!  I didn't try any 2.3.x
    kernels either - you might want to tell me what needs to change, if
    anything.

  - Currently the encap autodetection is "hard" -- you can't override it.
    Eventually, I think I'll bring back the arc0e/arc0s etc devices and
    let arc0 be the default autodetection.
    
  - Ethernet-encap is conspicuously missing.  Its glorious return is
    scheduled for the 3.90 ALPHA release, or maybe sooner if someone does it
    for me.  It would be a fun and easy project for someone who's bored.
    
  - COM9066 cards support 16-bit memory access, which doubles the speed of
    data transfers to/from the card.  This is a wonderful thing, and it
    should get turned on by default, _if_ it's available and functional.
    
  - IO-mapped COM90xx and memory-mapped RIM I hardware drivers don't yet
    compile.  I haven't ported them to the new layout yet (and I don't
    have a card to test RIM I with).  It would be great if someone with an
    Amiga could try to get RIM I working again.  COM90io should be a rather
    trivial job of merging the new COM20020 and COM90xx drivers.
    
  - The COM20020 driver doesn't do a very good job of choosing its hardware
    address.  In fact, I don't even understand what it's doing.  It does
    seem to pick an address, though.  I just have to make it look more
    correct.


So, don't just sit there!  Get it from my web page:

	http://www.worldvisions.ca/~apenwarr/arcnet/
	
For quick instructions on using this version, read the file QUICKSTART after
extracting the archive.

Have fun,

Avery
