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