Files
scst/mpt
Yan Burman b990f13496 Merged revisions 5564-5565,5580,5591,5599,5604,5623,5632-5638,5645-5646,5652-5653 via svnmerge from
svn+ssh://yanb123@svn.code.sf.net/p/scst/svn/branches/3.0.x

................
  r5564 | vlnb | 2014-06-04 06:10:31 +0300 (Wed, 04 Jun 2014) | 3 lines
  
  Initialize merging from the trunk
................
  r5565 | vlnb | 2014-06-04 06:12:05 +0300 (Wed, 04 Jun 2014) | 13 lines
  
  Merged revisions 5543,5545 via svnmerge from 
  svn+ssh://vlnb@svn.code.sf.net/p/scst/svn/trunk
  
  ........
    r5543 | bvassche | 2014-05-23 00:33:53 -0700 (Fri, 23 May 2014) | 1 line
    
    RHEL 7 build fixes
  ........
    r5545 | bvassche | 2014-05-23 01:36:36 -0700 (Fri, 23 May 2014) | 1 line
    
    scripts/rebuild-rhel-kernel-rpm: Add RHEL 7 RC support
  ........
................
  r5580 | bvassche | 2014-06-11 17:33:30 +0300 (Wed, 11 Jun 2014) | 1 line
  
  ib_srpt: Merge build and login fixes from trunk
................
  r5591 | vlnb | 2014-06-12 02:52:43 +0300 (Thu, 12 Jun 2014) | 14 lines
  
  Merged revisions 5584 via svnmerge from 
  svn+ssh://vlnb@svn.code.sf.net/p/scst/svn/trunk
  
  ........
    r5584 | vlnb | 2014-06-11 12:33:18 -0700 (Wed, 11 Jun 2014) | 8 lines
    
    scst: RHEL 5 build fix
    
    Avoid that building the scst kernel module fails on RHEL 5 due to
    a missing kvasprintf() implementation.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
  ........
................
  r5599 | bvassche | 2014-06-13 09:59:13 +0300 (Fri, 13 Jun 2014) | 1 line
  
  ib_srpt: Merge from trunk
................
  r5604 | vlnb | 2014-06-14 03:31:55 +0300 (Sat, 14 Jun 2014) | 14 lines
  
  Merged revisions 5602 via svnmerge from 
  svn+ssh://vlnb@svn.code.sf.net/p/scst/svn/trunk
  
  ........
    r5602 | vlnb | 2014-06-13 16:57:26 -0700 (Fri, 13 Jun 2014) | 8 lines
    
    scst_pr_read_reservation(): Initialize returned buffer
    
    Avoid that this function returns an uninitialized buffer to the
    initiator if buffer_size < 8. Detected by Coverity.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
  ........
................
  r5623 | vlnb | 2014-06-25 07:00:14 +0300 (Wed, 25 Jun 2014) | 9 lines
  
  Merged revisions 5610 via svnmerge from 
  svn+ssh://vlnb@svn.code.sf.net/p/scst/svn/trunk
  
  ........
    r5610 | vlnb | 2014-06-18 20:51:48 -0700 (Wed, 18 Jun 2014) | 3 lines
    
    Update for 3.15 kernels
  ........
................
  r5632 | bvassche | 2014-06-29 08:18:01 +0300 (Sun, 29 Jun 2014) | 1 line
  
  scst_vdisk: 32-bit build fix (merge r5629 from trunk)
................
  r5633 | bvassche | 2014-06-29 08:20:31 +0300 (Sun, 29 Jun 2014) | 1 line
  
  ib_srpt: Remove existing ib_srpt.ko kernel modules before installation (merge r5621, r5628 and r5630 from trunk)
................
  r5634 | bvassche | 2014-06-29 08:22:58 +0300 (Sun, 29 Jun 2014) | 1 line
  
  Skip "depmod" while building an RPM (merge r5612 from trunk)
................
  r5635 | bvassche | 2014-06-29 08:24:11 +0300 (Sun, 29 Jun 2014) | 1 line
  
  ib_srpt: Set SCSI residual fields in SRP_CMD reply (merge r5622 from trunk)
................
  r5636 | bvassche | 2014-06-29 08:25:55 +0300 (Sun, 29 Jun 2014) | 1 line
  
  nightly build: Add kernel 3.15 build infrastructure (merge r5611 from trunk)
................
  r5637 | bvassche | 2014-06-29 08:27:14 +0300 (Sun, 29 Jun 2014) | 1 line
  
  regression tests: Sort hash keys before comparing (merge r5582 from trunk)
................
  r5638 | bvassche | 2014-06-29 08:28:45 +0300 (Sun, 29 Jun 2014) | 1 line
  
  regression tests: Sync with a recent sysfs change (merge r5581 from trunk)
................
  r5645 | bvassche | 2014-06-29 09:00:05 +0300 (Sun, 29 Jun 2014) | 1 line
  
  nightly build, scripts: Merge from trunk (r5533:r5642)
................
  r5646 | bvassche | 2014-06-29 09:10:22 +0300 (Sun, 29 Jun 2014) | 2 lines
  
  scst: Switch from the cpu_*() to the cpumask_*() API (merge r5596 from trunk)
................
  r5652 | bvassche | 2014-06-30 13:23:11 +0300 (Mon, 30 Jun 2014) | 1 line
  
  nightly build: Merge r5642:r5651 from trunk
................
  r5653 | bvassche | 2014-06-30 13:25:24 +0300 (Mon, 30 Jun 2014) | 1 line
  
  scst: Build fixes for kernel versions <= 2.6.34 (merge r5647 and r5648 from trunk)
................


git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x-iser@5665 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-07-07 10:28:33 +00:00
..
2014-01-19 19:26:29 +00:00
2008-07-09 06:53:41 +00:00
2006-12-13 11:42:59 +00:00

Target driver for LSI/MPT XXX cards
===================================

Version X.X.X, XX XXX 200X
--------------------------

This driver was originally developed by Hu Gang and then is developed by
Erik Habbinga <erikhabbinga@inphase-tech.com>. It is on the early stage
of development.

The current maintainer of this driver is Erik. Please send him all
question related to it (CC: scst-devel@lists.sourceforge.net).

Building from the Linux kernel tree
-----------------------------------

To build from the kernel tree, you should:

1. Link drivers/message/fusion/mpt_scst to $(SCST_DIR)/mpt.

2. Copy or link Makefile and Kconfig from $(SCST_DIR)/mpt/in-tree to
$(SCST_DIR)/mpt (Makefile will be replaced).

3. Patch drivers/message/fusion/Makefile and
drivers/message/fusion/Kconfig by diffs from $(SCST_DIR)/mpt/in-tree

4. Correct in drivers/message/fusion/Makefile SCST_INC_DIR variable so
it points to correct directory with SCST include files.

Building outside the Linux kernel tree
--------------------------------------

Edit Makefile, comment there line 

obj-$(CONFIG_FUSION_SCST) += mpt_scst.o

and uncomment line

obj-m += mpt_scst.o

Notes on implementation
-----------------------

The driver takes the mptstm target driver implemented by LSI
and ports it to the SCST architecture.

The LSI hardware returns an error when it realizes that command
status and sense data cannot be sent in the same transaction.
This happens during non-packetized SCSI command handling (not FC or
SAS).  For SCSI implementations, the driver speculatively caches
sense data.  If the hardware reports that the sense data could not
be sent, the driver will return the cached sense data without
involving SCST if the next command is REQUEST SENSE.  Cached sense
data is discarded on bus reset or if the next command after sense
send failure was not REQUEST SENSE.

Caching sense data in this fashion probably won't work in a tagged
command queuing environment. If SCSI hardware is being used, the
driver inspects responses to the INQUIRY command and clears the
BQUE and CMDQUE bits in the standard INQUIRY response to disable
tagged command queuing.

Known issues
------------

Newer versions of SCSI HBA firmware have a bug where the incorrect
amount of data is transferred for non-divisible-by-4 length transfers
(like standard 14 byte REQUEST SENSE). It's hit or miss for recently
bought cards if it has bad firmware or not. Some recently acquired PCIe
SCSI HBA had a mix of good and bad target firmware. Revision 1.03.29 is
where it broke, and all the target firmware on LSI's website is 1.03.34,
which is broken for target mode. As a workaround the SCSI parallel
transfer rate is forced to very slow asynchronous wide (Fast-5), which
doesn't quite hit >> 10 MB/sec, depending on the SCSI HBA firmware
revision. LSI is aware of the problem and the driver will be updated to
restore functionality upon a new good SCSI HBA firmware release.