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