.. SPDX-License-Identifier: GPL-2.0

==================
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 driver is evolved from `the original 2.4 driver
<https://web.archive.org/web/20140129181343/http://www.garloff.de/kurt/linux/dc395/>`_.
Problems, questions and patches should be submitted to the `Linux SCSI
mailing list <linux-scsi@vger.kernel.org>`_.

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.
