Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28e4b224 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (85 commits)
  [SCSI] 53c700: remove reliance on deprecated cmnd fields
  [SCSI] hptiop: don't use cmnd->bufflen
  [SCSI] hptiop: HighPoint RocketRAID 3xxx controller driver
  [SCSI] aacraid: small misc. cleanups
  [SCSI] aacraid: Update supported product information
  [SCSI] aacraid: Fix return code interpretation
  [SCSI] scsi_transport_sas: fix panic in sas_free_rphy
  [SCSI] remove RQ_SCSI_* flags
  [SCSI] remove scsi_request infrastructure
  [SCSI] mptfusion: change driver revision to 3.03.10
  [SCSI] mptfc: abort of board reset leaves port dead requiring reboot
  [SCSI] mptfc: fix fibre channel infinite request/response loop
  [SCSI] mptfc: set fibre channel fw target missing timers to one second
  [SCSI] mptfusion: move fc event/reset handling to mptfc
  [SCSI] spi transport: don't allow dt to be set on SE or HVD buses
  [SCSI] aic7xxx: expose the bus setting to sysfs
  [SCSI] scsi: remove Documentation/scsi/cpqfc.txt
  [SCSI] drivers/scsi: Use ARRAY_SIZE macro
  [SCSI] Remove last page_address from dc395x.c
  [SCSI] hptiop: HighPoint RocketRAID 3xxx controller driver
  ...

Fixed up conflicts in drivers/message/fusion/mptbase.c manually (due to
the sparc interrupt cleanups)
parents 22ae813b 67d59dfd
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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
+13 −0
Original line number Diff line number Diff line

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 
+4 −4
Original line number Diff line number Diff line
@@ -24,10 +24,10 @@ Supported Cards/Chipsets
	9005:0285:9005:0296	Adaptec	2240S (SabreExpress)
	9005:0285:9005:0290	Adaptec	2410SA (Jaguar)
	9005:0285:9005:0293	Adaptec 21610SA (Corsair-16)
	9005:0285:103c:3227	Adaptec 2610SA (Bearcat)
	9005:0285:103c:3227	Adaptec 2610SA (Bearcat HP release)
	9005:0285:9005:0292	Adaptec	2810SA (Corsair-8)
	9005:0285:9005:0294	Adaptec	Prowler
	9005:0286:9005:029d	Adaptec	2420SA (Intruder)
	9005:0286:9005:029d	Adaptec	2420SA (Intruder HP release)
	9005:0286:9005:029c	Adaptec	2620SA (Intruder)
	9005:0286:9005:029b	Adaptec	2820SA (Intruder)
	9005:0286:9005:02a7	Adaptec	2830SA (Skyray)
@@ -38,7 +38,7 @@ Supported Cards/Chipsets
	9005:0285:9005:0297	Adaptec	4005SAS (AvonPark)
	9005:0285:9005:0299	Adaptec	4800SAS (Marauder-X)
	9005:0285:9005:029a	Adaptec	4805SAS (Marauder-E)
	9005:0286:9005:02a2	Adaptec	4810SAS (Hurricane)
	9005:0286:9005:02a2	Adaptec	3800SAS (Hurricane44)
	1011:0046:9005:0364	Adaptec	5400S (Mustang)
	1011:0046:9005:0365	Adaptec	5400S (Mustang)
	9005:0283:9005:0283	Adaptec	Catapult (3210S with arc firmware)
@@ -72,7 +72,7 @@ Supported Cards/Chipsets
	9005:0286:9005:02a1	ICP	ICP9087MA (Lancer)
	9005:0286:9005:02a4	ICP	ICP9085LI (Marauder-X)
	9005:0286:9005:02a5	ICP	ICP5085BR (Marauder-E)
	9005:0286:9005:02a3	ICP	ICP5085AU (Hurricane)
	9005:0286:9005:02a3	ICP	ICP5445AU (Hurricane44)
	9005:0286:9005:02a6	ICP	ICP9067MA (Intruder-6)
	9005:0286:9005:02a9	ICP	ICP5087AU (Skyray)
	9005:0286:9005:02aa	ICP	ICP5047AU (Skyray)

Documentation/scsi/cpqfc.txt

deleted100644 → 0
+0 −272
Original line number Diff line number Diff line
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)
+92 −0
Original line number Diff line number Diff line
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
Loading