Commit | Line | Data |
---|---|---|
1392de9d | 1 | .. SPDX-License-Identifier: GPL-2.0 |
992ebcf1 | 2 | |
1392de9d | 3 | ========================================= |
992ebcf1 | 4 | HPSA - Hewlett Packard Smart Array driver |
1392de9d | 5 | ========================================= |
992ebcf1 SC |
6 | |
7 | This file describes the hpsa SCSI driver for HP Smart Array controllers. | |
8 | The hpsa driver is intended to supplant the cciss driver for newer | |
9 | Smart Array controllers. The hpsa driver is a SCSI driver, while the | |
10 | cciss driver is a "block" driver. Actually cciss is both a block | |
11 | driver (for logical drives) AND a SCSI driver (for tape drives). This | |
12 | "split-brained" design of the cciss driver is a source of excess | |
13 | complexity and eliminating that complexity is one of the reasons | |
14 | for hpsa to exist. | |
15 | ||
1392de9d MCC |
16 | Supported devices |
17 | ================= | |
992ebcf1 | 18 | |
1392de9d MCC |
19 | - Smart Array P212 |
20 | - Smart Array P410 | |
21 | - Smart Array P410i | |
22 | - Smart Array P411 | |
23 | - Smart Array P812 | |
24 | - Smart Array P712m | |
25 | - Smart Array P711m | |
26 | - StorageWorks P1210m | |
992ebcf1 SC |
27 | |
28 | Additionally, older Smart Arrays may work with the hpsa driver if the kernel | |
29 | boot parameter "hpsa_allow_any=1" is specified, however these are not tested | |
30 | nor supported by HP with this driver. For older Smart Arrays, the cciss | |
31 | driver should still be used. | |
32 | ||
02ec19c8 SC |
33 | The "hpsa_simple_mode=1" boot parameter may be used to prevent the driver from |
34 | putting the controller into "performant" mode. The difference is that with simple | |
35 | mode, each command completion requires an interrupt, while with "performant mode" | |
36 | (the default, and ordinarily better performing) it is possible to have multiple | |
37 | command completions indicated by a single interrupt. | |
38 | ||
992ebcf1 | 39 | HPSA specific entries in /sys |
1392de9d | 40 | ============================= |
992ebcf1 SC |
41 | |
42 | In addition to the generic SCSI attributes available in /sys, hpsa supports | |
43 | the following attributes: | |
44 | ||
1392de9d MCC |
45 | HPSA specific host attributes |
46 | ============================= | |
47 | ||
48 | :: | |
992ebcf1 | 49 | |
1392de9d MCC |
50 | /sys/class/scsi_host/host*/rescan |
51 | /sys/class/scsi_host/host*/firmware_revision | |
52 | /sys/class/scsi_host/host*/resettable | |
53 | /sys/class/scsi_host/host*/transport_mode | |
992ebcf1 SC |
54 | |
55 | the host "rescan" attribute is a write only attribute. Writing to this | |
56 | attribute will cause the driver to scan for new, changed, or removed devices | |
57 | (e.g. hot-plugged tape drives, or newly configured or deleted logical drives, | |
58 | etc.) and notify the SCSI midlayer of any changes detected. Normally this is | |
59 | triggered automatically by HP's Array Configuration Utility (either the GUI or | |
60 | command line variety) so for logical drive changes, the user should not | |
61 | normally have to use this. It may be useful when hot plugging devices like | |
62 | tape drives, or entire storage boxes containing pre-configured logical drives. | |
63 | ||
d28ce020 | 64 | The "firmware_revision" attribute contains the firmware version of the Smart Array. |
1392de9d | 65 | For example:: |
d28ce020 SC |
66 | |
67 | root@host:/sys/class/scsi_host/host4# cat firmware_revision | |
68 | 7.14 | |
69 | ||
745a7a25 SC |
70 | The transport_mode indicates whether the controller is in "performant" |
71 | or "simple" mode. This is controlled by the "hpsa_simple_mode" module | |
72 | parameter. | |
73 | ||
941b1cda SC |
74 | The "resettable" read-only attribute indicates whether a particular |
75 | controller is able to honor the "reset_devices" kernel parameter. If the | |
76 | device is resettable, this file will contain a "1", otherwise, a "0". This | |
77 | parameter is used by kdump, for example, to reset the controller at driver | |
78 | load time to eliminate any outstanding commands on the controller and get the | |
79 | controller into a known state so that the kdump initiated i/o will work right | |
80 | and not be disrupted in any way by stale commands or other stale state | |
81 | remaining on the controller from the previous kernel. This attribute enables | |
82 | kexec tools to warn the user if they attempt to designate a device which is | |
83 | unable to honor the reset_devices kernel parameter as a dump device. | |
84 | ||
1392de9d MCC |
85 | HPSA specific disk attributes |
86 | ----------------------------- | |
87 | ||
88 | :: | |
992ebcf1 | 89 | |
1392de9d MCC |
90 | /sys/class/scsi_disk/c:b:t:l/device/unique_id |
91 | /sys/class/scsi_disk/c:b:t:l/device/raid_level | |
92 | /sys/class/scsi_disk/c:b:t:l/device/lunid | |
992ebcf1 SC |
93 | |
94 | (where c:b:t:l are the controller, bus, target and lun of the device) | |
95 | ||
1392de9d | 96 | For example:: |
992ebcf1 SC |
97 | |
98 | root@host:/sys/class/scsi_disk/4:0:0:0/device# cat unique_id | |
99 | 600508B1001044395355323037570F77 | |
100 | root@host:/sys/class/scsi_disk/4:0:0:0/device# cat lunid | |
101 | 0x0000004000000000 | |
102 | root@host:/sys/class/scsi_disk/4:0:0:0/device# cat raid_level | |
103 | RAID 0 | |
104 | ||
1392de9d MCC |
105 | HPSA specific ioctls |
106 | ==================== | |
992ebcf1 SC |
107 | |
108 | For compatibility with applications written for the cciss driver, many, but | |
109 | not all of the ioctls supported by the cciss driver are also supported by the | |
110 | hpsa driver. The data structures used by these are described in | |
111 | include/linux/cciss_ioctl.h | |
112 | ||
1392de9d MCC |
113 | CCISS_DEREGDISK, CCISS_REGNEWDISK, CCISS_REGNEWD |
114 | The above three ioctls all do exactly the same thing, which is to cause the driver | |
115 | to rescan for new devices. This does exactly the same thing as writing to the | |
116 | hpsa specific host "rescan" attribute. | |
992ebcf1 SC |
117 | |
118 | CCISS_GETPCIINFO | |
992ebcf1 SC |
119 | Returns PCI domain, bus, device and function and "board ID" (PCI subsystem ID). |
120 | ||
121 | CCISS_GETDRIVVER | |
1392de9d | 122 | Returns driver version in three bytes encoded as:: |
992ebcf1 | 123 | |
992ebcf1 SC |
124 | (major_version << 16) | (minor_version << 8) | (subminor_version) |
125 | ||
1392de9d | 126 | CCISS_PASSTHRU, CCISS_BIG_PASSTHRU |
992ebcf1 SC |
127 | Allows "BMIC" and "CISS" commands to be passed through to the Smart Array. |
128 | These are used extensively by the HP Array Configuration Utility, SNMP storage | |
129 | agents, etc. See cciss_vol_status at http://cciss.sf.net for some examples. |