orinoco_cs: Orinoco and Prism 2 wireless card driver
----------------------------------------------------

A new driver for Lucent/Cabletron IEEE 802.11 wireless cards as well
as most Prism II based wireless cards. This driver is designed as a
replacement for the wvlan_cs.c driver - it's supposed to clean up some
things in that driver, in particular its dependence on the rather ugly
HCF-Light library from Lucent.

This driver has been included in the Linux kernel since version 2.4.3.
Usually it's easisest to use the driver in the kernel, only use the
versions here if you need the latest experimental versions or if you
need a later version but for some reason can't upgrade your kernel.

Contact:	David Gibson <hermes@gibson.dropbear.id.au>

Frequently Asked Questions:

Q: How do I compile/install the driver?

A: The easiest way is to use the version included in the kernel
   source, or in David Hinds' pcmcia-cs package.

   If you need to install a newer version from ozlabs.org, you will
   need the kernel source for the kernel you are currently running.
   The Makefile included with the driver assumes that the link 
   /lib/modules/<version>/build points to this, and that you are using
   the pcmcia modules from the kernel, rather than from pcmcia-cs.  If
   that's true, then just unpack the driver tar file, run "make",
   become root and run "make install".

Q: My machines with the orinoco driver in ad-hoc mode can't talk to
   machines running the wvlan_cs driver / FreeBSD's if_wi driver.
   What's up?

A: There are actually two versions of ad-hoc mode which are not
   interoperable.  One is the IEEE standard "IBSS" mode and the other
   is a Lucent proprietary protocol known as "demo ad-hoc mode".  The
   orinoco driver defaults to using IBSS mode on firmware which
   supports it (>= 6.06 for Lucent cards), the wvlan_cs and FreeBSD
   driver default to demo ad-hoc mode.  You'll have to switch one or
   the other end so they're using the same mode:

   For orinoco_cs the command:
		iwpriv ethXX set_port3 1
	will select demo ad-hoc mode on and
		iwpriv ethXX set_port3 0
	will select IBSS mode.
   For wvlan_cs the module parameters:
		 port_type=1 allow_ibss=1
	will select IBSS mode and
		port_type=3
	will select demo ad-hoc mode.
   For FreeBSD
	????

Q: Why do I get lots of "error -16 writing header to BAP" (or similar)
   messages in my log?

A: This is an error reported by the firmware, but its being triggered
   by a major bug in all versions of the driver prior to 0.09a.
   Upgrade to the latest driver as soon as possible.

Q: Are the mini-PCI wireless cards used in Dell laptops (and some
   other brands) supported?

A: Some of these are essentially a PCMCIA card with a PCI to
   PCMCIA bridge packaged into the mini-PCI form factor, so the PCMCIA
   subsystem should see it as a PCMCIA slot and be able to initialise
   the card.

   Some newer laptops have genuine PCI cards based on the Prism 2.5
   chipset.  These aren't supported yet, but the groundwork is there
   so we should be able to support them soon.

Q: How do I get the driver to work on my ARM based machine?

A: There seems to be a problem which causes one of the structures used
   in the driver to be misaligned on ARM machines (I believe this is a
   compiler bug on ARM).  For now try compiling the driver with the
   option "-mstructure-size-boundary=8" - eventually the use of the
   structure in this manner is likely to be phased out removing the
   problem.  This should no longer be necessary as of version 0.10.

Q: I compiled the module from the sources on www.ozlabs.org, but when
   I try to load it, I get lots of "unresolved symbol" messages.

A: Red Hat, Debian and most other distributions compile their kernels
   with "module symbol versioning" (CONFIG_MODVERSIONS) enabled.  This
   causes some problems with compiling modules outside the kernel tree
   itself.  You can either recompile the kernel with this option
   disabled, then recompile the module, or try adding:
	-DMODVERSIONS -include $(KERNEL_SRC)/include/linux/modversions.h
   to the CPPFLAGS option in the orinoco module Makefile.

Q: The driver doesn't work and I get a message like "get dev info on
   socket 1 failed: Resource temporarily unavailable".

A: This isn't a problem in the orinoco driver - this error is from the
   PCMCIA subsystem before the driver is even activated.  It usually
   indicates a PCMCIA configuration problem.

  In particular it can be cause if you attempt to use the orinoco
  driver by putting:
	device "wvlan_cs"
	  class "network" module "orinoco_cs"
  or similar in /etc/pcmcia/config.  Instead you must individually
  bind each card to the "orinoco_cs" device.

Q: When I try to compile the driver I get errors about "implicit
   declaration of min/max/min_t/max_t".

A: The driver uses the new type safe min and max macros introduced in
   2.4.10.  You're using a copy of the kernel source from before
   this.  Get some newer kernel source, or use the version of the
   driver included in David Hinds' pcmcia-cs package (which includes
   compatibility code).
