Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 =========================================
0004 HPSA - Hewlett Packard Smart Array driver
0005 =========================================
0006 
0007 This file describes the hpsa SCSI driver for HP Smart Array controllers.
0008 The hpsa driver is intended to supplant the cciss driver for newer
0009 Smart Array controllers.  The hpsa driver is a SCSI driver, while the
0010 cciss driver is a "block" driver.  Actually cciss is both a block
0011 driver (for logical drives) AND a SCSI driver (for tape drives). This
0012 "split-brained" design of the cciss driver is a source of excess
0013 complexity and eliminating that complexity is one of the reasons
0014 for hpsa to exist.
0015 
0016 Supported devices
0017 =================
0018 
0019 - Smart Array P212
0020 - Smart Array P410
0021 - Smart Array P410i
0022 - Smart Array P411
0023 - Smart Array P812
0024 - Smart Array P712m
0025 - Smart Array P711m
0026 - StorageWorks P1210m
0027 
0028 Additionally, older Smart Arrays may work with the hpsa driver if the kernel
0029 boot parameter "hpsa_allow_any=1" is specified, however these are not tested
0030 nor supported by HP with this driver.  For older Smart Arrays, the cciss
0031 driver should still be used.
0032 
0033 The "hpsa_simple_mode=1" boot parameter may be used to prevent the driver from
0034 putting the controller into "performant" mode.  The difference is that with simple
0035 mode, each command completion requires an interrupt, while with "performant mode"
0036 (the default, and ordinarily better performing) it is possible to have multiple
0037 command completions indicated by a single interrupt.
0038 
0039 HPSA specific entries in /sys
0040 =============================
0041 
0042   In addition to the generic SCSI attributes available in /sys, hpsa supports
0043   the following attributes:
0044 
0045 HPSA specific host attributes
0046 =============================
0047 
0048   ::
0049 
0050     /sys/class/scsi_host/host*/rescan
0051     /sys/class/scsi_host/host*/firmware_revision
0052     /sys/class/scsi_host/host*/resettable
0053     /sys/class/scsi_host/host*/transport_mode
0054 
0055   the host "rescan" attribute is a write only attribute.  Writing to this
0056   attribute will cause the driver to scan for new, changed, or removed devices
0057   (e.g. hot-plugged tape drives, or newly configured or deleted logical drives,
0058   etc.) and notify the SCSI midlayer of any changes detected.  Normally this is
0059   triggered automatically by HP's Array Configuration Utility (either the GUI or
0060   command line variety) so for logical drive changes, the user should not
0061   normally have to use this.  It may be useful when hot plugging devices like
0062   tape drives, or entire storage boxes containing pre-configured logical drives.
0063 
0064   The "firmware_revision" attribute contains the firmware version of the Smart Array.
0065   For example::
0066 
0067         root@host:/sys/class/scsi_host/host4# cat firmware_revision
0068         7.14
0069 
0070   The transport_mode indicates whether the controller is in "performant"
0071   or "simple" mode.  This is controlled by the "hpsa_simple_mode" module
0072   parameter.
0073 
0074   The "resettable" read-only attribute indicates whether a particular
0075   controller is able to honor the "reset_devices" kernel parameter.  If the
0076   device is resettable, this file will contain a "1", otherwise, a "0".  This
0077   parameter is used by kdump, for example, to reset the controller at driver
0078   load time to eliminate any outstanding commands on the controller and get the
0079   controller into a known state so that the kdump initiated i/o will work right
0080   and not be disrupted in any way by stale commands or other stale state
0081   remaining on the controller from the previous kernel.  This attribute enables
0082   kexec tools to warn the user if they attempt to designate a device which is
0083   unable to honor the reset_devices kernel parameter as a dump device.
0084 
0085 HPSA specific disk attributes
0086 -----------------------------
0087 
0088   ::
0089 
0090     /sys/class/scsi_disk/c:b:t:l/device/unique_id
0091     /sys/class/scsi_disk/c:b:t:l/device/raid_level
0092     /sys/class/scsi_disk/c:b:t:l/device/lunid
0093 
0094   (where c:b:t:l are the controller, bus, target and lun of the device)
0095 
0096   For example::
0097 
0098         root@host:/sys/class/scsi_disk/4:0:0:0/device# cat unique_id
0099         600508B1001044395355323037570F77
0100         root@host:/sys/class/scsi_disk/4:0:0:0/device# cat lunid
0101         0x0000004000000000
0102         root@host:/sys/class/scsi_disk/4:0:0:0/device# cat raid_level
0103         RAID 0
0104 
0105 HPSA specific ioctls
0106 ====================
0107 
0108   For compatibility with applications written for the cciss driver, many, but
0109   not all of the ioctls supported by the cciss driver are also supported by the
0110   hpsa driver.  The data structures used by these are described in
0111   include/linux/cciss_ioctl.h
0112 
0113   CCISS_DEREGDISK, CCISS_REGNEWDISK, CCISS_REGNEWD
0114         The above three ioctls all do exactly the same thing, which is to cause the driver
0115         to rescan for new devices.  This does exactly the same thing as writing to the
0116         hpsa specific host "rescan" attribute.
0117 
0118   CCISS_GETPCIINFO
0119         Returns PCI domain, bus, device and function and "board ID" (PCI subsystem ID).
0120 
0121   CCISS_GETDRIVVER
0122         Returns driver version in three bytes encoded as::
0123 
0124                 (major_version << 16) | (minor_version << 8) | (subminor_version)
0125 
0126   CCISS_PASSTHRU, CCISS_BIG_PASSTHRU
0127         Allows "BMIC" and "CISS" commands to be passed through to the Smart Array.
0128         These are used extensively by the HP Array Configuration Utility, SNMP storage
0129         agents, etc.  See cciss_vol_status at http://cciss.sf.net for some examples.