Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6
[sfrench/cifs-2.6.git] / Documentation / scsi / hpsa.txt
1
2 HPSA - Hewlett Packard Smart Array driver
3 -----------------------------------------
4
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
12 for hpsa to exist.
13
14 Supported devices:
15 ------------------
16
17 Smart Array P212
18 Smart Array P410
19 Smart Array P410i
20 Smart Array P411
21 Smart Array P812
22 Smart Array P712m
23 Smart Array P711m
24 StorageWorks P1210m
25
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.
30
31 HPSA specific entries in /sys
32 -----------------------------
33
34   In addition to the generic SCSI attributes available in /sys, hpsa supports
35   the following attributes:
36
37   HPSA specific host attributes:
38   ------------------------------
39
40   /sys/class/scsi_host/host*/rescan
41   /sys/class/scsi_host/host*/firmware_revision
42
43   the host "rescan" attribute is a write only attribute.  Writing to this
44   attribute will cause the driver to scan for new, changed, or removed devices
45   (e.g. hot-plugged tape drives, or newly configured or deleted logical drives,
46   etc.) and notify the SCSI midlayer of any changes detected.  Normally this is
47   triggered automatically by HP's Array Configuration Utility (either the GUI or
48   command line variety) so for logical drive changes, the user should not
49   normally have to use this.  It may be useful when hot plugging devices like
50   tape drives, or entire storage boxes containing pre-configured logical drives.
51
52   The "firmware_revision" attribute contains the firmware version of the Smart Array.
53   For example:
54
55         root@host:/sys/class/scsi_host/host4# cat firmware_revision
56         7.14
57
58   HPSA specific disk attributes:
59   ------------------------------
60
61   /sys/class/scsi_disk/c:b:t:l/device/unique_id
62   /sys/class/scsi_disk/c:b:t:l/device/raid_level
63   /sys/class/scsi_disk/c:b:t:l/device/lunid
64
65   (where c:b:t:l are the controller, bus, target and lun of the device)
66
67   For example:
68
69         root@host:/sys/class/scsi_disk/4:0:0:0/device# cat unique_id
70         600508B1001044395355323037570F77
71         root@host:/sys/class/scsi_disk/4:0:0:0/device# cat lunid
72         0x0000004000000000
73         root@host:/sys/class/scsi_disk/4:0:0:0/device# cat raid_level
74         RAID 0
75
76 HPSA specific ioctls:
77 ---------------------
78
79   For compatibility with applications written for the cciss driver, many, but
80   not all of the ioctls supported by the cciss driver are also supported by the
81   hpsa driver.  The data structures used by these are described in
82   include/linux/cciss_ioctl.h
83
84   CCISS_DEREGDISK
85   CCISS_REGNEWDISK
86   CCISS_REGNEWD
87
88   The above three ioctls all do exactly the same thing, which is to cause the driver
89   to rescan for new devices.  This does exactly the same thing as writing to the
90   hpsa specific host "rescan" attribute.
91
92   CCISS_GETPCIINFO
93
94         Returns PCI domain, bus, device and function and "board ID" (PCI subsystem ID).
95
96   CCISS_GETDRIVVER
97
98         Returns driver version in three bytes encoded as:
99                 (major_version << 16) | (minor_version << 8) | (subminor_version)
100
101   CCISS_PASSTHRU
102   CCISS_BIG_PASSTHRU
103
104         Allows "BMIC" and "CISS" commands to be passed through to the Smart Array.
105         These are used extensively by the HP Array Configuration Utility, SNMP storage
106         agents, etc.  See cciss_vol_status at http://cciss.sf.net for some examples.
107