xref: /OK3568_Linux_fs/kernel/Documentation/scsi/dpti.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun===================
4*4882a593SmuzhiyunAdaptec dpti driver
5*4882a593Smuzhiyun===================
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunRedistribution and use in source form, with or without modification, are
8*4882a593Smuzhiyunpermitted provided that redistributions of source code must retain the
9*4882a593Smuzhiyunabove copyright notice, this list of conditions and the following disclaimer.
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunThis software is provided ``as is`` by Adaptec and
12*4882a593Smuzhiyunany express or implied warranties, including, but not limited to, the
13*4882a593Smuzhiyunimplied warranties of merchantability and fitness for a particular purpose,
14*4882a593Smuzhiyunare disclaimed. In no event shall Adaptec be
15*4882a593Smuzhiyunliable for any direct, indirect, incidental, special, exemplary or
16*4882a593Smuzhiyunconsequential damages (including, but not limited to, procurement of
17*4882a593Smuzhiyunsubstitute goods or services; loss of use, data, or profits; or business
18*4882a593Smuzhiyuninterruptions) however caused and on any theory of liability, whether in
19*4882a593Smuzhiyuncontract, strict liability, or tort (including negligence or otherwise)
20*4882a593Smuzhiyunarising in any way out of the use of this driver software, even if advised
21*4882a593Smuzhiyunof the possibility of such damage.
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunThis driver supports the Adaptec I2O RAID and DPT SmartRAID V I2O boards.
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunCredits
26*4882a593Smuzhiyun=======
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunThe original linux driver was ported to Linux by Karen White while at
29*4882a593SmuzhiyunDell Computer.  It was ported from Bob Pasteur's (of DPT) original
30*4882a593Smuzhiyunnon-Linux driver.  Mark Salyzyn and Bob Pasteur consulted on the original
31*4882a593Smuzhiyundriver.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun2.0 version of the driver by Deanna Bonds and Mark Salyzyn.
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunHistory
36*4882a593Smuzhiyun=======
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunThe driver was originally ported to linux version 2.0.34
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun==== ==========================================================================
41*4882a593SmuzhiyunV2.0 Rewrite of driver.  Re-architectured based on i2o subsystem.
42*4882a593Smuzhiyun     This was the first full GPL version since the last version used
43*4882a593Smuzhiyun     i2osig headers which were not GPL.  Developer Testing version.
44*4882a593SmuzhiyunV2.1 Internal testing
45*4882a593SmuzhiyunV2.2 First released version
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunV2.3 Changes:
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun     - Added Raptor Support
50*4882a593Smuzhiyun     - Fixed bug causing system to hang under extreme load with
51*4882a593Smuzhiyun     - management utilities running (removed GFP_DMA from kmalloc flags)
52*4882a593Smuzhiyun
53*4882a593SmuzhiyunV2.4 First version ready to be submitted to be embedded in the kernel
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun     Changes:
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun     - Implemented suggestions from Alan Cox
58*4882a593Smuzhiyun     - Added calculation of resid for sg layer
59*4882a593Smuzhiyun     - Better error handling
60*4882a593Smuzhiyun     - Added checking underflow conditions
61*4882a593Smuzhiyun     - Added DATAPROTECT checking
62*4882a593Smuzhiyun     - Changed error return codes
63*4882a593Smuzhiyun     - Fixed pointer bug in bus reset routine
64*4882a593Smuzhiyun     - Enabled hba reset from ioctls (allows a FW flash to reboot and use
65*4882a593Smuzhiyun       the new FW without having to reboot)
66*4882a593Smuzhiyun     - Changed proc output
67*4882a593Smuzhiyun==== ==========================================================================
68*4882a593Smuzhiyun
69*4882a593SmuzhiyunTODO
70*4882a593Smuzhiyun====
71*4882a593Smuzhiyun- Add 64 bit Scatter Gather when compiled on 64 bit architectures
72*4882a593Smuzhiyun- Add sparse lun scanning
73*4882a593Smuzhiyun- Add code that checks if a device that had been taken offline is
74*4882a593Smuzhiyun  now online (at the FW level) when test unit ready or inquiry
75*4882a593Smuzhiyun  command from scsi-core
76*4882a593Smuzhiyun- Add proc read interface
77*4882a593Smuzhiyun- busrescan command
78*4882a593Smuzhiyun- rescan command
79*4882a593Smuzhiyun- Add code to rescan routine that notifies scsi-core about new devices
80*4882a593Smuzhiyun- Add support for C-PCI (hotplug stuff)
81*4882a593Smuzhiyun- Add ioctl passthru error recovery
82*4882a593Smuzhiyun
83*4882a593SmuzhiyunNotes
84*4882a593Smuzhiyun=====
85*4882a593SmuzhiyunThe DPT card optimizes the order of processing commands.  Consequently,
86*4882a593Smuzhiyuna command may take up to 6 minutes to complete after it has been sent
87*4882a593Smuzhiyunto the board.
88*4882a593Smuzhiyun
89*4882a593SmuzhiyunThe files dpti_ioctl.h dptsig.h osd_defs.h osd_util.h sys_info.h are part of the
90*4882a593Smuzhiyuninterface files for Adaptec's management routines.  These define the structures used
91*4882a593Smuzhiyunin the ioctls.  They are written to be portable.  They are hard to read, but I need
92*4882a593Smuzhiyunto use them 'as is' or I can miss changes in the interface.
93