NOTE:  This driver is obsolete.  Digi provides a 2.6 driver (dgdm) at
http://www.digi.com for PCI cards.  They no longer maintain this driver,
and have no 2.6 driver for ISA cards.

This driver requires a number of user-space tools.  They can be aquired from
http://www.digi.com, but only works with 2.4 kernels.


The Digi Intl. epca driver. 
----------------------------
The Digi Intl. epca driver for Linux supports the following boards:

Digi PC/Xem, PC/Xr, PC/Xe, PC/Xi, PC/Xeve 
Digi EISA/Xem, PCI/Xem, PCI/Xr 

Limitations:
------------
Currently the driver only autoprobes for supported PCI boards. 

The Linux MAKEDEV command does not support generating the Digiboard
Devices.  Users executing digiConfig to setup EISA and PC series cards
will have their device nodes automatically constructed (cud?? for ~CLOCAL,
and ttyD?? for CLOCAL).  Users wishing to boot their board from the LILO
prompt, or those users booting PCI cards may use buildDIGI to construct 
the necessary nodes. 

Notes:
------
This driver may be configured via LILO.  For users who have already configured
their driver using digiConfig, configuring from LILO will override previous 
settings.  Multiple boards may be configured by issuing multiple LILO command 
lines.  For examples see the bottom of this document.

Device names start at 0 and continue up.  Beware of this as previous Digi 
drivers started device names with 1.

PCI boards are auto-detected and configured by the driver.  PCI boards will
be allocated device numbers (internally) beginning with the lowest PCI slot
first.  In other words a PCI card in slot 3 will always have higher device
nodes than a PCI card in slot 1. 

LILO config examples:
---------------------
Using LILO's APPEND command, a string of comma separated identifiers or 
integers can be used to configure supported boards.  The six values in order 
are:

   Enable/Disable this card or Override,
   Type of card: PC/Xe (AccelePort) (0), PC/Xeve (1), PC/Xem or PC/Xr (2), 
                 EISA/Xem (3), PC/64Xe (4), PC/Xi (5), 
   Enable/Disable alternate pin arrangement,
   Number of ports on this card,
   I/O Port where card is configured (in HEX if using string identifiers),
   Base of memory window (in HEX if using string identifiers), 

NOTE : PCI boards are auto-detected and configured.  Do not attempt to 
configure PCI boards with the LILO append command.  If you wish to override
previous configuration data (As set by digiConfig), but you do not wish to
configure any specific card (Example if there are PCI cards in the system) 
the following override command will accomplish this:
-> append="digi=2"

Samples:
   append="digiepca=E,PC/Xe,D,16,200,D0000"
                  or
   append="digi=1,0,0,16,512,851968"

Supporting Tools:
-----------------
Supporting tools include digiDload, digiConfig, buildPCI, and ditty.  See
drivers/char/README.epca for more details.  Note,
this driver REQUIRES that digiDload be executed prior to it being used. 
Failure to do this will result in an ENODEV error.

Documentation:
--------------
Complete documentation for this product may be found in the tool package. 

Sources of information and support:
-----------------------------------
Digi Intl. support site for this product:

->  http://www.digi.com

Acknowledgments:
----------------
Much of this work (And even text) was derived from a similar document 
supporting the original public domain DigiBoard driver Copyright (C)
1994,1995 Troy De Jongh.  Many thanks to Christoph Lameter 
(christoph@lameter.com) and Mike McLagan (mike.mclagan@linux.org) who authored 
and contributed to the original document. 

Changelog:
----------
10-29-04:	Update status of driver, remove dead links in document
		James Nelson <james4765@gmail.com>

2000 (?)	Original Document
