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