1 .\" Copyright (C) 2011, Hewlett-Packard Development Company, L.P.
2 .\" Written by Stephen M. Cameron <scameron@beardog.cce.hp.com>
4 .\" %%%LICENSE_START(GPLv2_ONELINE)
5 .\" Licensed under GNU General Public License version 2 (GPLv2)
8 .\" shorthand for double quote that works everywhere.
10 .TH CCISS 4 2021-03-22 "Linux" "Linux Programmer's Manual"
12 cciss \- HP Smart Array block driver
15 modprobe cciss [ cciss_allow_hpsa=1 ]
18 .\" commit 253d2464df446456c0bba5ed4137a7be0b278aa8
20 This obsolete driver was removed from the kernel in version 4.14,
21 as it is superseded by the
23 driver in newer kernels.
26 is a block driver for older HP Smart Array RAID controllers.
28 .IR "cciss_allow_hpsa=1" :
29 This option prevents the
31 driver from attempting to drive any controllers that the
33 driver is capable of controlling, which is to say, the
35 driver is restricted by this option to the following controllers:
56 .SS Supported hardware
59 driver supports the following Smart Array boards:
69 Smart Array 6400 U320 Expansion Module
87 .SS Configuration details
88 To configure HP Smart Array controllers,
89 use the HP Array Configuration Utility
94 or the Offline ROM-based Configuration Utility (ORCA)
95 run from the Smart Array's option ROM at boot time.
98 The device naming scheme is as follows:
114 b7 b6 b5 b4 b3 b2 b1 b0
115 |\-\-\-\-+\-\-\-\-| |\-\-\-\-+\-\-\-\-|
117 | +\-\-\-\-\-\-\-\- Partition ID (0=wholedev, 1\-15 partition)
119 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Logical Volume number
122 The device naming scheme is:
125 /dev/cciss/c0d0 Controller 0, disk 0, whole device
126 /dev/cciss/c0d0p1 Controller 0, disk 0, partition 1
127 /dev/cciss/c0d0p2 Controller 0, disk 0, partition 2
128 /dev/cciss/c0d0p3 Controller 0, disk 0, partition 3
130 /dev/cciss/c1d1 Controller 1, disk 1, whole device
131 /dev/cciss/c1d1p1 Controller 1, disk 1, partition 1
132 /dev/cciss/c1d1p2 Controller 1, disk 1, partition 2
133 /dev/cciss/c1d1p3 Controller 1, disk 1, partition 3
137 .I /proc/driver/cciss/cciss[0\-9]+
138 contain information about
139 the configuration of each controller.
144 $ \fBcd /proc/driver/cciss\fP
147 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss0
148 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss1
149 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss2
151 cciss2: HP Smart Array P800 Controller
153 Firmware Version: 7.14
157 Current # commands on controller: 0
158 Max Q depth since init: 1
159 Max # commands on controller since init: 2
160 Max SG entries since init: 32
161 Sequential access devices: 0
163 cciss/c2d0: 36.38GB RAID 0
169 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/model
170 Displays the SCSI INQUIRY page 0 model for logical drive
175 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/rev
176 Displays the SCSI INQUIRY page 0 revision for logical drive
181 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/unique_id
182 Displays the SCSI INQUIRY page 83 serial number for logical drive
187 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/vendor
188 Displays the SCSI INQUIRY page 0 vendor for logical drive
193 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/block:cciss!cXdY
195 .IR /sys/block/cciss!cXdY .
197 .I /sys/bus/pci/devices/<dev>/ccissX/rescan
198 When this file is written to, the driver rescans the controller
199 to discover any new, removed, or modified logical drives.
201 .I /sys/bus/pci/devices/<dev>/ccissX/resettable
202 A value of 1 displayed in this file indicates that
203 the "reset_devices=1" kernel parameter (used by
205 is honored by this controller.
206 A value of 0 indicates that the
207 "reset_devices=1" kernel parameter will not be honored.
208 Some models of Smart Array are not able to honor this parameter.
210 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/lunid
211 Displays the 8-byte LUN ID used to address logical drive
216 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/raid_level
217 Displays the RAID level of logical drive
222 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/usage_count
223 Displays the usage count (number of opens) of logical drive
227 .SS SCSI tape drive and medium changer support
228 SCSI sequential access devices and medium changer devices are supported and
229 appropriate device nodes are automatically created (e.g.,
235 You must enable "SCSI tape drive support for Smart Array 5xxx" and
236 "SCSI support" in your kernel configuration to be able to use SCSI
237 tape drives with your Smart Array 5xxx controller.
239 Additionally, note that the driver will not engage the SCSI core at
241 The driver must be directed to dynamically engage the SCSI core via the
244 which the "block" side of the driver creates as
245 .I /proc/driver/cciss/cciss*
247 This is because at driver init time,
248 the SCSI core may not yet be initialized (because the driver is a block
249 driver) and attempting to register it with the SCSI core in such a case
251 This is best done via an initialization script
254 but could vary depending on distribution).
259 for x in /proc/driver/cciss/cciss[0\-9]*
261 echo "engage scsi" > $x
266 Once the SCSI core is engaged by the driver, it cannot be disengaged
267 (except by unloading the driver, if it happens to be linked as a module.)
269 Note also that if no sequential access devices or medium changers are
270 detected, the SCSI core will not be engaged by the action of the above
272 .SS Hot plug support for SCSI tape drives
273 Hot plugging of SCSI tape drives is supported, with some caveats.
276 driver must be informed that changes to the SCSI bus
278 This may be done via the
283 echo "rescan" > /proc/scsi/cciss0/1
285 This causes the driver to:
288 query the adapter about changes to the
289 physical SCSI buses and/or fiber channel arbitrated loop, and
291 make note of any new or removed sequential access devices
295 The driver will output messages indicating which
296 devices have been added or removed and the controller, bus, target, and
297 lun used to address each device.
298 The driver then notifies the SCSI midlayer
301 Note that the naming convention of the
304 contains a number in addition to the driver name
306 instead of just "cciss", which you might expect).
310 sequential access devices and medium changers are presented
311 as SCSI devices to the SCSI midlayer by the
314 Specifically, physical SCSI disk drives are
316 presented to the SCSI midlayer.
317 The only disk devices that are presented to the kernel are logical
318 drives that the array controller constructs from regions on
320 The logical drives are presented to the block layer
321 (not to the SCSI midlayer).
322 It is important for the driver to prevent the kernel from accessing the
323 physical drives directly, since these drives are used by the array
324 controller to construct the logical drives.
325 .SS SCSI error handling for tape drives and medium changers
326 The Linux SCSI midlayer provides an error-handling protocol that
327 is initiated whenever a SCSI command fails to complete within a
328 certain amount of time (which can vary depending on the command).
331 driver participates in this protocol to some extent.
332 The normal protocol is a four-step process:
334 First, the device is told to abort the command.
336 If that doesn't work, the device is reset.
338 If that doesn't work, the SCSI bus is reset.
340 If that doesn't work, the host bus adapter is reset.
345 driver as well as a SCSI driver and only the tape drives and medium
346 changers are presented to the SCSI midlayer.
347 Furthermore, unlike more
348 straightforward SCSI drivers, disk I/O continues through the block
349 side during the SCSI error-recovery process.
352 driver implements only the first two of these actions,
353 aborting the command, and resetting the device.
354 Note also that most tape drives will not oblige
355 in aborting commands, and sometimes it appears they will not even
356 obey a reset command, though in most circumstances they will.
357 If the command cannot be aborted and the device cannot be
358 reset, the device will be set offline.
360 In the event that the error-handling code is triggered and a tape drive is
361 successfully reset or the tardy command is successfully aborted, the
362 tape drive may still not allow I/O to continue until some command
363 is issued that positions the tape to a known position.
364 Typically you must rewind the tape (by issuing
365 .I "mt \-f /dev/st0 rewind"
366 for example) before I/O can proceed again to a tape drive that was reset.
369 .BR cciss_vol_status (8),
373 .UR http://cciss.sf.net
376 .I Documentation/blockdev/cciss.txt
378 .I Documentation/ABI/testing/sysfs\-bus\-pci\-devices\-cciss
379 in the Linux kernel source tree
381 .\" Don Brace, Steve Cameron, Chase Maupin, Mike Miller, Michael Ni,
382 .\" Charles White, Francis Wiran
383 .\" and probably some other people.