summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/scsi/00-INDEX2
-rw-r--r--Documentation/scsi/ChangeLog.megaraid_sas13
-rw-r--r--Documentation/scsi/cpqfc.txt272
-rw-r--r--Documentation/scsi/hptiop.txt92
4 files changed, 105 insertions, 274 deletions
diff --git a/Documentation/scsi/00-INDEX b/Documentation/scsi/00-INDEX
index e7da8c3a255..12354830c6b 100644
--- a/Documentation/scsi/00-INDEX
+++ b/Documentation/scsi/00-INDEX
@@ -30,8 +30,6 @@ aic7xxx.txt
- info on driver for Adaptec controllers
aic7xxx_old.txt
- info on driver for Adaptec controllers, old generation
-cpqfc.txt
- - info on driver for Compaq Tachyon TS adapters
dpti.txt
- info on driver for DPT SmartRAID and Adaptec I2O RAID based adapters
dtc3x80.txt
diff --git a/Documentation/scsi/ChangeLog.megaraid_sas b/Documentation/scsi/ChangeLog.megaraid_sas
index 2dafa63bd37..0a85a7e8120 100644
--- a/Documentation/scsi/ChangeLog.megaraid_sas
+++ b/Documentation/scsi/ChangeLog.megaraid_sas
@@ -1,3 +1,16 @@
+
+1 Release Date : Wed Feb 03 14:31:44 PST 2006 - Sumant Patro <Sumant.Patro@lsil.com>
+2 Current Version : 00.00.02.04
+3 Older Version : 00.00.02.04
+
+i. Remove superflous instance_lock
+
+ gets rid of the otherwise superflous instance_lock and avoids an unsave
+ unsynchronized access in the error handler.
+
+ - Christoph Hellwig <hch@lst.de>
+
+
1 Release Date : Wed Feb 03 14:31:44 PST 2006 - Sumant Patro <Sumant.Patro@lsil.com>
2 Current Version : 00.00.02.04
3 Older Version : 00.00.02.04
diff --git a/Documentation/scsi/cpqfc.txt b/Documentation/scsi/cpqfc.txt
deleted file mode 100644
index dd33e61c064..00000000000
--- a/Documentation/scsi/cpqfc.txt
+++ /dev/null
@@ -1,272 +0,0 @@
-Notes for CPQFCTS driver for Compaq Tachyon TS
-Fibre Channel Host Bus Adapter, PCI 64-bit, 66MHz
-for Linux (RH 6.1, 6.2 kernel 2.2.12-32, 2.2.14-5)
-SMP tested
-Tested in single and dual HBA configuration, 32 and 64bit busses,
-33 and 66MHz. Only supports FC-AL.
-SEST size 512 Exchanges (simultaneous I/Os) limited by module kmalloc()
- max of 128k bytes contiguous.
-
-Ver 2.5.4 Oct 03, 2002
- * fixed memcpy of sense buffer in ioctl to copy the smaller defined size
-Ver 2.5.3 Aug 01, 2002
- * fix the passthru ioctl to handle the Scsi_Cmnd->request being a pointer
-Ver 2.5.1 Jul 30, 2002
- * fix ioctl to pay attention to the specified LUN.
-Ver 2.5.0 Nov 29, 2001
- * eliminated io_request_lock. This change makes the driver specific
- to the 2.5.x kernels.
- * silenced excessively noisy printks.
-
-Ver 2.1.2 July 23, 2002
- * initialize DumCmnd->lun in cpqfcTS_ioctl (used in fcFindLoggedInPorts as LUN index)
-
-Ver 2.1.1 Oct 18, 2001
- * reinitialize Cmnd->SCp.sent_command (used to identify commands as
- passthrus) on calling scsi_done, since the scsi mid layer does not
- use (or reinitialize) this field to prevent subsequent comands from
- having it set incorrectly.
-
-Ver 2.1.0 Aug 27, 2001
- * Revise driver to use new kernel 2.4.x PCI DMA API, instead of
- virt_to_bus(). (enables driver to work w/ ia64 systems with >2Gb RAM.)
- Rework main scatter-gather code to handle cases where SG element
- lengths are larger than 0x7FFFF bytes and use as many scatter
- gather pages as necessary. (Steve Cameron)
- * Makefile changes to bring cpqfc into line w/ rest of SCSI drivers
- (thanks to Keith Owens)
-
-Ver 2.0.5 Aug 06, 2001
- * Reject non-existent luns in the driver rather than letting the
- hardware do it. (some HW behaves differently than others in this area.)
- * Changed Makefile to rely on "make dep" instead of explicit dependencies
- * ifdef'ed out fibre channel analyzer triggering debug code
- * fixed a jiffies wrapping issue
-
-Ver 2.0.4 Aug 01, 2001
- * Incorporated fix for target device reset from Steeleye
- * Fixed passthrough ioctl so it doesn't hang.
- * Fixed hang in launch_FCworker_thread() that occurred on some machines.
- * Avoid problem when number of volumes in a single cabinet > 8
-
-Ver 2.0.2 July 23, 2001
- Changed the semiphore changes so the driver would compile in 2.4.7.
- This version is for 2.4.7 and beyond.
-
-Ver 2.0.1 May 7, 2001
- Merged version 1.3.6 fixes into version 2.0.0.
-
-Ver 2.0.0 May 7, 2001
- Fixed problem so spinlock is being initialized to UNLOCKED.
- Fixed updated driver so it compiles in the 2.4 tree.
-
- Ver 1.3.6 Feb 27, 2001
- Added Target_Device_Reset function for SCSI error handling
- Fixed problem with not reseting addressing mode after implicit logout
-
-
-Ver 1.3.4 Sep 7, 2000
- Added Modinfo information
- Fixed problem with statically linking the driver
-
-Ver 1.3.3, Aug 23, 2000
- Fixed device/function number in ioctl
-
-Ver 1.3.2, July 27, 2000
- Add include for Alpha compile on 2.2.14 kernel (cpq*i2c.c)
- Change logic for different FCP-RSP sense_buffer location for HSG80 target
- And search for Agilent Tachyon XL2 HBAs (not finished! - in test)
-
-Tested with
-(storage):
- Compaq RA-4x000, RAID firmware ver 2.40 - 2.54
- Seagate FC drives model ST39102FC, rev 0006
- Hitachi DK31CJ-72FC rev J8A8
- IBM DDYF-T18350R rev F60K
- Compaq FC-SCSI bridge w/ DLT 35/70 Gb DLT (tape)
-(servers):
- Compaq PL-1850R
- Compaq PL-6500 Xeon (400MHz)
- Compaq PL-8500 (500MHz, 66MHz, 64bit PCI)
- Compaq Alpha DS20 (RH 6.1)
-(hubs):
- Vixel Rapport 1000 (7-port "dumb")
- Gadzoox Gibralter (12-port "dumb")
- Gadzoox Capellix 2000, 3000
-(switches):
- Brocade 2010, 2400, 2800, rev 2.0.3a (& later)
- Gadzoox 3210 (Fabric blade beta)
- Vixel 7100 (Fabric beta firmare - known hot plug issues)
-using "qa_test" (esp. io_test script) suite modified from Unix tests.
-
-Installation:
-make menuconfig
- (select SCSI low-level, Compaq FC HBA)
-make modules
-make modules_install
-
-e.g. insmod -f cpqfc
-
-Due to Fabric/switch delays, driver requires 4 seconds
-to initialize. If adapters are found, there will be a entries at
-/proc/scsi/cpqfcTS/*
-
-sample contents of startup messages
-
-*************************
- scsi_register allocating 3596 bytes for CPQFCHBA
- ioremap'd Membase: c887e600
- HBA Tachyon RevId 1.2
-Allocating 119808 for 576 Exchanges @ c0dc0000
-Allocating 112904 for LinkQ @ c0c20000 (576 elements)
-Allocating 110600 for TachSEST for 512 Exchanges
- cpqfcTS: writing IMQ BASE 7C0000h PI 7C4000h
- cpqfcTS: SEST c0e40000(virt): Wrote base E40000h @ c887e740
-cpqfcTS: New FC port 0000E8h WWN: 500507650642499D SCSI Chan/Trgt 0/0
-cpqfcTS: New FC port 0000EFh WWN: 50000E100000D5A6 SCSI Chan/Trgt 0/1
-cpqfcTS: New FC port 0000E4h WWN: 21000020370097BB SCSI Chan/Trgt 0/2
-cpqfcTS: New FC port 0000E2h WWN: 2100002037009946 SCSI Chan/Trgt 0/3
-cpqfcTS: New FC port 0000E1h WWN: 21000020370098FE SCSI Chan/Trgt 0/4
-cpqfcTS: New FC port 0000E0h WWN: 21000020370097B2 SCSI Chan/Trgt 0/5
-cpqfcTS: New FC port 0000DCh WWN: 2100002037006CC1 SCSI Chan/Trgt 0/6
-cpqfcTS: New FC port 0000DAh WWN: 21000020370059F6 SCSI Chan/Trgt 0/7
-cpqfcTS: New FC port 00000Fh WWN: 500805F1FADB0E20 SCSI Chan/Trgt 0/8
-cpqfcTS: New FC port 000008h WWN: 500805F1FADB0EBA SCSI Chan/Trgt 0/9
-cpqfcTS: New FC port 000004h WWN: 500805F1FADB1EB9 SCSI Chan/Trgt 0/10
-cpqfcTS: New FC port 000002h WWN: 500805F1FADB1ADE SCSI Chan/Trgt 0/11
-cpqfcTS: New FC port 000001h WWN: 500805F1FADBA2CA SCSI Chan/Trgt 0/12
-scsi4 : Compaq FibreChannel HBA Tachyon TS HPFC-5166A/1.2: WWN 500508B200193F50
- on PCI bus 0 device 0xa0fc irq 5 IObaseL 0x3400, MEMBASE 0xc6ef8600
-PCI bus width 32 bits, bus speed 33 MHz
-FCP-SCSI Driver v1.3.0
-GBIC detected: Short-wave. LPSM 0h Monitor
-scsi : 5 hosts.
- Vendor: IBM Model: DDYF-T18350R Rev: F60K
- Type: Direct-Access ANSI SCSI revision: 03
-Detected scsi disk sdb at scsi4, channel 0, id 0, lun 0
- Vendor: HITACHI Model: DK31CJ-72FC Rev: J8A8
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdc at scsi4, channel 0, id 1, lun 0
- Vendor: SEAGATE Model: ST39102FC Rev: 0006
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdd at scsi4, channel 0, id 2, lun 0
- Vendor: SEAGATE Model: ST39102FC Rev: 0006
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sde at scsi4, channel 0, id 3, lun 0
- Vendor: SEAGATE Model: ST39102FC Rev: 0006
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdf at scsi4, channel 0, id 4, lun 0
- Vendor: SEAGATE Model: ST39102FC Rev: 0006
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdg at scsi4, channel 0, id 5, lun 0
- Vendor: SEAGATE Model: ST39102FC Rev: 0006
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdh at scsi4, channel 0, id 6, lun 0
- Vendor: SEAGATE Model: ST39102FC Rev: 0006
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdi at scsi4, channel 0, id 7, lun 0
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.48
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdj at scsi4, channel 0, id 8, lun 0
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.48
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdk at scsi4, channel 0, id 8, lun 1
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.40
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdl at scsi4, channel 0, id 9, lun 0
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.40
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdm at scsi4, channel 0, id 9, lun 1
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.54
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdn at scsi4, channel 0, id 10, lun 0
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.54
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdo at scsi4, channel 0, id 11, lun 0
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.54
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdp at scsi4, channel 0, id 11, lun 1
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.54
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdq at scsi4, channel 0, id 12, lun 0
- Vendor: COMPAQ Model: LOGICAL VOLUME Rev: 2.54
- Type: Direct-Access ANSI SCSI revision: 02
-Detected scsi disk sdr at scsi4, channel 0, id 12, lun 1
-resize_dma_pool: unknown device type 12
-resize_dma_pool: unknown device type 12
-SCSI device sdb: hdwr sector= 512 bytes. Sectors= 35843670 [17501 MB] [17.5 GB]
- sdb: sdb1
-SCSI device sdc: hdwr sector= 512 bytes. Sectors= 144410880 [70513 MB] [70.5 GB]
- sdc: sdc1
-SCSI device sdd: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
- sdd: sdd1
-SCSI device sde: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
- sde: sde1
-SCSI device sdf: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
- sdf: sdf1
-SCSI device sdg: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
- sdg: sdg1
-SCSI device sdh: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
- sdh: sdh1
-SCSI device sdi: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
- sdi: sdi1
-SCSI device sdj: hdwr sector= 512 bytes. Sectors= 2056160 [1003 MB] [1.0 GB]
- sdj: sdj1
-SCSI device sdk: hdwr sector= 512 bytes. Sectors= 2052736 [1002 MB] [1.0 GB]
- sdk: sdk1
-SCSI device sdl: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
- sdl: sdl1
-SCSI device sdm: hdwr sector= 512 bytes. Sectors= 8380320 [4091 MB] [4.1 GB]
- sdm: sdm1
-SCSI device sdn: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
- sdn: sdn1
-SCSI device sdo: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
- sdo: sdo1
-SCSI device sdp: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
- sdp: sdp1
-SCSI device sdq: hdwr sector= 512 bytes. Sectors= 2056160 [1003 MB] [1.0 GB]
- sdq: sdq1
-SCSI device sdr: hdwr sector= 512 bytes. Sectors= 2052736 [1002 MB] [1.0 GB]
- sdr: sdr1
-
-*************************
-
-If a GBIC of type Short-wave, Long-wave, or Copper is detected, it will
-print out; otherwise, "none" is displayed. If the cabling is correct
-and a loop circuit is completed, you should see "Monitor"; otherwise,
-"LoopFail" (on open circuit) or some LPSM number/state with bit 3 set.
-
-
-ERRATA:
-1. Normally, Linux Scsi queries FC devices with INQUIRY strings. All LUNs
-found according to INQUIRY should get READ commands at sector 0 to find
-partition table, etc. Older kernels only query the first 4 devices. Some
-Linux kernels only look for one LUN per target (i.e. FC device).
-
-2. Physically removing a device, or a malfunctioning system which hides a
-device, leads to a 30-second timeout and subsequent _abort call.
-In some process contexts, this will hang the kernel (crashing the system).
-Single bit errors in frames and virtually all hot plugging events are
-gracefully handled with internal driver timer and Abort processing.
-
-3. Some SCSI drives with error conditions will not handle the 7 second timeout
-in this software driver, leading to infinite retries on timed out SCSI commands.
-The 7 secs balances the need to quickly recover from lost frames (esp. on sequence
-initiatives) and time needed by older/slower/error-state drives in responding.
-This can be easily changed in "Exchanges[].timeOut".
-
-4. Due to the nature of FC soft addressing, there is no assurance that the
-same LUNs (drives) will have the same path (e.g. /dev/sdb1) from one boot to
-next. Dynamic soft address changes (i.e. 24-bit FC port_id) are
-supported during run time (e.g. due to hot plug event) by the use of WWN to
-SCSI Nexus (channel/target/LUN) mapping.
-
-5. Compaq RA4x00 firmware version 2.54 and later supports SSP (Selective
-Storage Presentation), which maps LUNs to a WWN. If RA4x00 firmware prior
-2.54 (e.g. older controller) is used, or the FC HBA is replaced (another WWN
-is used), logical volumes on the RA4x00 will no longer be visible.
-
-
-Send questions/comments to:
-Amy Vanzant-Hodge (fibrechannel@compaq.com)
-
diff --git a/Documentation/scsi/hptiop.txt b/Documentation/scsi/hptiop.txt
new file mode 100644
index 00000000000..d28a31247d4
--- /dev/null
+++ b/Documentation/scsi/hptiop.txt
@@ -0,0 +1,92 @@
+HIGHPOINT ROCKETRAID 3xxx RAID DRIVER (hptiop)
+
+Controller Register Map
+-------------------------
+
+The controller IOP is accessed via PCI BAR0.
+
+ BAR0 offset Register
+ 0x10 Inbound Message Register 0
+ 0x14 Inbound Message Register 1
+ 0x18 Outbound Message Register 0
+ 0x1C Outbound Message Register 1
+ 0x20 Inbound Doorbell Register
+ 0x24 Inbound Interrupt Status Register
+ 0x28 Inbound Interrupt Mask Register
+ 0x30 Outbound Interrupt Status Register
+ 0x34 Outbound Interrupt Mask Register
+ 0x40 Inbound Queue Port
+ 0x44 Outbound Queue Port
+
+
+I/O Request Workflow
+----------------------
+
+All queued requests are handled via inbound/outbound queue port.
+A request packet can be allocated in either IOP or host memory.
+
+To send a request to the controller:
+
+ - Get a free request packet by reading the inbound queue port or
+ allocate a free request in host DMA coherent memory.
+
+ The value returned from the inbound queue port is an offset
+ relative to the IOP BAR0.
+
+ Requests allocated in host memory must be aligned on 32-bytes boundary.
+
+ - Fill the packet.
+
+ - Post the packet to IOP by writing it to inbound queue. For requests
+ allocated in IOP memory, write the offset to inbound queue port. For
+ requests allocated in host memory, write (0x80000000|(bus_addr>>5))
+ to the inbound queue port.
+
+ - The IOP process the request. When the request is completed, it
+ will be put into outbound queue. An outbound interrupt will be
+ generated.
+
+ For requests allocated in IOP memory, the request offset is posted to
+ outbound queue.
+
+ For requests allocated in host memory, (0x80000000|(bus_addr>>5))
+ is posted to the outbound queue. If IOP_REQUEST_FLAG_OUTPUT_CONTEXT
+ flag is set in the request, the low 32-bit context value will be
+ posted instead.
+
+ - The host read the outbound queue and complete the request.
+
+ For requests allocated in IOP memory, the host driver free the request
+ by writing it to the outbound queue.
+
+Non-queued requests (reset/flush etc) can be sent via inbound message
+register 0. An outbound message with the same value indicates the completion
+of an inbound message.
+
+
+User-level Interface
+---------------------
+
+The driver exposes following sysfs attributes:
+
+ NAME R/W Description
+ driver-version R driver version string
+ firmware-version R firmware version string
+
+The driver registers char device "hptiop" to communicate with HighPoint RAID
+management software. Its ioctl routine acts as a general binary interface
+between the IOP firmware and HighPoint RAID management software. New management
+functions can be implemented in application/firmware without modification
+in driver code.
+
+
+-----------------------------------------------------------------------------
+Copyright (C) 2006 HighPoint Technologies, Inc. All Rights Reserved.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ linux@highpoint-tech.com
+ http://www.highpoint-tech.com