This is the first release of my kernel PCMCIA device driver, with a
corresponding device driver and user-level enabler for the D-Link and
Linksys EtherCard ethernet adapters.  These drivers fully support hot
swapping of PCMCIA cards.

This version of the driver is known to work for kernel version 1.00.
This package contains some new files and some patches to existing
files.  All paths are relative to /usr/src (or wherever you put your
kernel source tree).

The following new kernel files are included:

-- linux/drivers/pcmcia/{Makefile,i82365.h,i82365.c,pcmcia.c}
-- linux/include/linux/pcmcia.h
-- linux/drivers/net/de650.c

The following kernel files are patched:

-- linux/{config.in,Makefile}
-- linux/include/linux/{major.h,if.h,sockios.h}
-- linux/net/inet/{dev.c,sock.c}
-- linux/init/main.c
-- linux/drivers/Makefile
-- linux/drivers/net/{Makefile,Space.c,8390.c}

There are also some non-kernel files:
-- pcmciad/{Makefile,dumbd.c,watch.c,pc_eth0,ifconfig}

If you've used an older version of the D-Link PCMCIA driver, you
should remove it and back out all associated kernel patches (these
include changes to drivers/net/{Makefile,CONFIG,Space.c,8390.h} and
config.in).

All the patches are in "pcmcia.patch"; apply them in /usr/src/linux
with:

        patch -p0 < pcmcia.patch

Then, run 'make config', 'make dep', and rebuild your kernel.  You
will also need to create a device file in /dev for each PCMCIA slot,
like this:

        mknod /dev/pc0 c 28 0
        mknod /dev/pc1 c 28 1

PCMCIA ethernet interfaces are given names "pc_eth0", "pc_eth1", etc.
In order to use the new drivers, you need to run a user-level daemon
to process card insertion/removal events.  I've provided one called
"dumbd" strictly as an example.  It can only handle setting up the
D-Link / Linksys card and isn't very user-friendly.  Values for the
card IRQ, I/O address, and shared memory window are hard coded in this
file.  Build dumbd in /usr/src/pcmciad.  This directory also contains
a script, "pc_eth0", which is invoked by dumbd to start up or shut
down a PCMCIA ethernet card.  You'll need to edit this file to match
your network configuration.  At the moment, dumbd looks for this file
in the current directory.  When you invoke dumbd, you need to specify
what PCMCIA sockets it should monitor, like this:

        ./dumbd /dev/pc0 &

Finally, the D-Link driver requires a new "ifconfig" that can handle
run-time configuration of the adapter IRQ, I/O address, and shared
memory window.  For now, I just put the binary in /usr/src/pcmciad;
you should save your old ifconfig and replace it with this one.

Once dumbd is up and running, you can plug/unplug your ethernet
adapter more or less at will, and it will be started up and shut down
automatically.  Try not to eject the card while making heavy use of
the network, because things sometimes get goofed up if something tries
to access the device after it is ejected but before the kernel driver
gets shut down.

The user-mode enabler program is currently the weak link -- it needs
to evolve into something like Barry Jaspan's pcmciad program so that
it can deal with a variety of card types.

A few more random things... edit /etc/rc/rc.inet1 so that it sets up
the loopback interface and then exits.  I included another program in
/usr/src/pcmciad, called "watch", that opens pcmcia device files and
just reports card insertion and removal events.  If you want to change
the hardware configuration for the D-Link card, you need to edit the
hard coded values in dumbd.c, and also change the values specified in
the ifconfig lines in pc_eth0.

	-- David Hinds
	   dhinds@allegro.stanford.edu
