mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
- Cosmetics git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@437 d57e44dd-8a1f-0410-8b47-8ef2f437770f
77 lines
2.9 KiB
Plaintext
77 lines
2.9 KiB
Plaintext
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.
|