Commit | Line | Data |
---|---|---|
992ebcf1 SC |
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 | |
d28ce020 | 41 | /sys/class/scsi_host/host*/firmware_revision |
992ebcf1 SC |
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 | ||
d28ce020 SC |
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 | ||
992ebcf1 SC |
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 |