2 HPSA - Hewlett Packard Smart Array driver
3 -----------------------------------------
5 This file describes the hpsa SCSI driver for HP Smart Array controllers.
6 The hpsa driver is intended to supplant the cciss driver for newer
7 Smart Array controllers. The hpsa driver is a SCSI driver, while the
8 cciss driver is a "block" driver. Actually cciss is both a block
9 driver (for logical drives) AND a SCSI driver (for tape drives). This
10 "split-brained" design of the cciss driver is a source of excess
11 complexity and eliminating that complexity is one of the reasons
26 Additionally, older Smart Arrays may work with the hpsa driver if the kernel
27 boot parameter "hpsa_allow_any=1" is specified, however these are not tested
28 nor supported by HP with this driver. For older Smart Arrays, the cciss
29 driver should still be used.
31 The "hpsa_simple_mode=1" boot parameter may be used to prevent the driver from
32 putting the controller into "performant" mode. The difference is that with simple
33 mode, each command completion requires an interrupt, while with "performant mode"
34 (the default, and ordinarily better performing) it is possible to have multiple
35 command completions indicated by a single interrupt.
37 HPSA specific entries in /sys
38 -----------------------------
40 In addition to the generic SCSI attributes available in /sys, hpsa supports
41 the following attributes:
43 HPSA specific host attributes:
44 ------------------------------
46 /sys/class/scsi_host/host*/rescan
47 /sys/class/scsi_host/host*/firmware_revision
49 the host "rescan" attribute is a write only attribute. Writing to this
50 attribute will cause the driver to scan for new, changed, or removed devices
51 (e.g. hot-plugged tape drives, or newly configured or deleted logical drives,
52 etc.) and notify the SCSI midlayer of any changes detected. Normally this is
53 triggered automatically by HP's Array Configuration Utility (either the GUI or
54 command line variety) so for logical drive changes, the user should not
55 normally have to use this. It may be useful when hot plugging devices like
56 tape drives, or entire storage boxes containing pre-configured logical drives.
58 The "firmware_revision" attribute contains the firmware version of the Smart Array.
61 root@host:/sys/class/scsi_host/host4# cat firmware_revision
64 HPSA specific disk attributes:
65 ------------------------------
67 /sys/class/scsi_disk/c:b:t:l/device/unique_id
68 /sys/class/scsi_disk/c:b:t:l/device/raid_level
69 /sys/class/scsi_disk/c:b:t:l/device/lunid
71 (where c:b:t:l are the controller, bus, target and lun of the device)
75 root@host:/sys/class/scsi_disk/4:0:0:0/device# cat unique_id
76 600508B1001044395355323037570F77
77 root@host:/sys/class/scsi_disk/4:0:0:0/device# cat lunid
79 root@host:/sys/class/scsi_disk/4:0:0:0/device# cat raid_level
85 For compatibility with applications written for the cciss driver, many, but
86 not all of the ioctls supported by the cciss driver are also supported by the
87 hpsa driver. The data structures used by these are described in
88 include/linux/cciss_ioctl.h
94 The above three ioctls all do exactly the same thing, which is to cause the driver
95 to rescan for new devices. This does exactly the same thing as writing to the
96 hpsa specific host "rescan" attribute.
100 Returns PCI domain, bus, device and function and "board ID" (PCI subsystem ID).
104 Returns driver version in three bytes encoded as:
105 (major_version << 16) | (minor_version << 8) | (subminor_version)
110 Allows "BMIC" and "CISS" commands to be passed through to the Smart Array.
111 These are used extensively by the HP Array Configuration Utility, SNMP storage
112 agents, etc. See cciss_vol_status at http://cciss.sf.net for some examples.