README file for the dc395x SCSI driver
==========================================

Status
------
The driver has been tested with CD-R and CD-R/W drives. These should
be safe to use. Testing with hard disks has not been done to any
great degree and caution should be exercised if you want to attempt
to use this driver with hard disks.

This is a 2.5 only driver. For a 2.4 driver please see the original
driver (which this driver started from) at
http://www.garloff.de/kurt/linux/dc395/

Problems, questions and patches should be submitted to the mailing
list. Details on the list, including archives, are available at
http://lists.twibble.org/mailman/listinfo/dc395x/

Parameters
----------
The driver uses the settings from the EEPROM set in the SCSI BIOS 
setup. If there is no EEPROM, the driver uses default values.
Both can be overridden by command line parameters (module or kernel
parameters).

The following parameters are available:

 - safe
   Default: 0, Acceptable values: 0 or 1

   If safe is set to 1 then the adapter will use conservative
   ("safe") default settings. This sets:

		shortcut for dc395x=7,4,9,15,2,10

 - adapter_id
   Default: 7, Acceptable values: 0 to 15

   Sets the host adapter SCSI ID.

 - max_speed
   Default: 1, Acceptable value: 0 to 7
   0 = 20   Mhz
   1 = 12.2 Mhz
   2 = 10   Mhz
   3 = 8    Mhz
   4 = 6.7  Mhz
   5 = 5.8  Hhz
   6 = 5    Mhz
   7 = 4    Mhz

 - dev_mode
   Bitmap for device configuration

   DevMode bit definition:
      Bit Val(hex) Val(dec)  Meaning
      *0    0x01       1     Parity check
      *1    0x02       2     Synchronous Negotiation
      *2    0x04       4     Disconnection
      *3    0x08       8     Send Start command on startup. (Not used)
      *4    0x10      16     Tagged Command Queueing
      *5    0x20      32     Wide Negotiation

 - adapter_mode
   Bitmap for adapter configuration

   AdaptMode bit definition
      Bit Val(hex) Val(dec)  Meaning
      *0    0x01       1     Support more than two drives. (Not used)
      *1    0x02       2     Use DOS compatible mapping for HDs greater than 1GB.
      *2    0x04       4     Reset SCSI Bus on startup.
      *3    0x08       8     Active Negation: Improves SCSI Bus noise immunity.
       4    0x10      16     Immediate return on BIOS seek command. (Not used)
    (*)5    0x20      32     Check for LUNs >= 1.

 - tags
   Default: 3, Acceptable values: 0-5
   
   The number of tags is 1<<x, if x has been specified

 - reset_delay
   Default: 1, Acceptable values: 0-180

   The seconds to not accept commands after a SCSI Reset


For the built  in driver the parameters should be prefixed with
dc395x. (eg "dc395x.safe=1")


Copyright
---------
The driver is free software. It is protected by the GNU General Public
License (GPL). Please read it, before using this driver. It should be
included in your kernel sources and with your distribution. It carries the
filename COPYING. If you don't have it, please ask me to send you one by
email.
Note: The GNU GPL says also something about warranty and liability. 
Please be aware the following: While we do my best to provide a working and
reliable driver, there is a chance, that it will kill your valuable data. 
We refuse to take any responsibility for that. The driver is provided as-is
and YOU USE IT AT YOUR OWN RESPONSIBILITY.
