2 .\" Copyright (C) 2011, Hewlett-Packard Development Company, L.P.
3 .\" Written by Stephen M. Cameron <scameron@beardog.cce.hp.com>
5 .\" SPDX-License-Identifier: GPL-2.0-only
7 .\" shorthand for double quote that works everywhere.
9 .TH cciss 4 (date) "Linux man-pages (unreleased)"
11 cciss \- HP Smart Array block driver
14 modprobe cciss [ cciss_allow_hpsa=1 ]
17 .\" commit 253d2464df446456c0bba5ed4137a7be0b278aa8
19 This obsolete driver was removed in Linux 4.14,
20 as it is superseded by the
22 driver in newer kernels.
25 is a block driver for older HP Smart Array RAID controllers.
27 .IR "cciss_allow_hpsa=1" :
28 This option prevents the
30 driver from attempting to drive any controllers that the
32 driver is capable of controlling, which is to say, the
34 driver is restricted by this option to the following controllers:
55 .SS Supported hardware
58 driver supports the following Smart Array boards:
68 Smart Array 6400 U320 Expansion Module
86 .SS Configuration details
87 To configure HP Smart Array controllers,
88 use the HP Array Configuration Utility
93 or the Offline ROM-based Configuration Utility (ORCA)
94 run from the Smart Array's option ROM at boot time.
97 The device naming scheme is as follows:
116 b7 b6 b5 b4 b3 b2 b1 b0
117 |\-\-\-\-+\-\-\-\-| |\-\-\-\-+\-\-\-\-|
119 | +\-\-\-\-\-\-\-\- Partition ID (0=wholedev, 1\-15 partition)
121 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Logical Volume number
124 The device naming scheme is:
127 /dev/cciss/c0d0 Controller 0, disk 0, whole device
128 /dev/cciss/c0d0p1 Controller 0, disk 0, partition 1
129 /dev/cciss/c0d0p2 Controller 0, disk 0, partition 2
130 /dev/cciss/c0d0p3 Controller 0, disk 0, partition 3
132 /dev/cciss/c1d1 Controller 1, disk 1, whole device
133 /dev/cciss/c1d1p1 Controller 1, disk 1, partition 1
134 /dev/cciss/c1d1p2 Controller 1, disk 1, partition 2
135 /dev/cciss/c1d1p3 Controller 1, disk 1, partition 3
139 .I /proc/driver/cciss/cciss[0\-9]+
140 contain information about
141 the configuration of each controller.
146 $ \fBcd /proc/driver/cciss\fP
149 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss0
150 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss1
151 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss2
153 cciss2: HP Smart Array P800 Controller
155 Firmware Version: 7.14
159 Current # commands on controller: 0
160 Max Q depth since init: 1
161 Max # commands on controller since init: 2
162 Max SG entries since init: 32
163 Sequential access devices: 0
165 cciss/c2d0: 36.38GB RAID 0
171 .IR /sys/bus/pci/devices/ dev /cciss X /c X d Y /model
172 Displays the SCSI INQUIRY page 0 model for logical drive
177 .IR /sys/bus/pci/devices/ dev /cciss X /c X d Y /rev
178 Displays the SCSI INQUIRY page 0 revision for logical drive
183 .IR /sys/bus/pci/devices/ dev /cciss X /c X d Y /unique_id
184 Displays the SCSI INQUIRY page 83 serial number for logical drive
189 .IR /sys/bus/pci/devices/ dev /cciss X /c X d Y /vendor
190 Displays the SCSI INQUIRY page 0 vendor for logical drive
195 .IR /sys/bus/pci/devices/ dev /cciss X /c X d Y /block:cciss!c X d Y
197 .IR /sys/block/cciss!c X d Y.
199 .IR /sys/bus/pci/devices/ dev /cciss X /rescan
200 When this file is written to, the driver rescans the controller
201 to discover any new, removed, or modified logical drives.
203 .IR /sys/bus/pci/devices/ dev /cciss X /resettable
204 A value of 1 displayed in this file indicates that
205 the "reset_devices=1" kernel parameter (used by
207 is honored by this controller.
208 A value of 0 indicates that the
209 "reset_devices=1" kernel parameter will not be honored.
210 Some models of Smart Array are not able to honor this parameter.
212 .IR /sys/bus/pci/devices/ dev /cciss X /c X d Y /lunid
213 Displays the 8-byte LUN ID used to address logical drive
218 .IR /sys/bus/pci/devices/ dev /cciss X /c X d Y /raid_level
219 Displays the RAID level of logical drive
224 .IR /sys/bus/pci/devices/ dev /cciss X /c X d Y /usage_count
225 Displays the usage count (number of opens) of logical drive
229 .SS SCSI tape drive and medium changer support
230 SCSI sequential access devices and medium changer devices are supported and
231 appropriate device nodes are automatically created (e.g.,
237 You must enable "SCSI tape drive support for Smart Array 5xxx" and
238 "SCSI support" in your kernel configuration to be able to use SCSI
239 tape drives with your Smart Array 5xxx controller.
241 Additionally, note that the driver will not engage the SCSI core at
243 The driver must be directed to dynamically engage the SCSI core via the
246 which the "block" side of the driver creates as
247 .I /proc/driver/cciss/cciss*
249 This is because at driver init time,
250 the SCSI core may not yet be initialized (because the driver is a block
251 driver) and attempting to register it with the SCSI core in such a case
253 This is best done via an initialization script
256 but could vary depending on distribution).
261 for x in /proc/driver/cciss/cciss[0\-9]*
263 echo "engage scsi" > $x
268 Once the SCSI core is engaged by the driver, it cannot be disengaged
269 (except by unloading the driver, if it happens to be linked as a module.)
271 Note also that if no sequential access devices or medium changers are
272 detected, the SCSI core will not be engaged by the action of the above
274 .SS Hot plug support for SCSI tape drives
275 Hot plugging of SCSI tape drives is supported, with some caveats.
278 driver must be informed that changes to the SCSI bus
280 This may be done via the
285 echo "rescan" > /proc/scsi/cciss0/1
287 This causes the driver to:
290 query the adapter about changes to the
291 physical SCSI buses and/or fiber channel arbitrated loop, and
293 make note of any new or removed sequential access devices
297 The driver will output messages indicating which
298 devices have been added or removed and the controller, bus, target, and
299 lun used to address each device.
300 The driver then notifies the SCSI midlayer
303 Note that the naming convention of the
306 contains a number in addition to the driver name
308 instead of just "cciss", which you might expect).
312 sequential access devices and medium changers are presented
313 as SCSI devices to the SCSI midlayer by the
316 Specifically, physical SCSI disk drives are
318 presented to the SCSI midlayer.
319 The only disk devices that are presented to the kernel are logical
320 drives that the array controller constructs from regions on
322 The logical drives are presented to the block layer
323 (not to the SCSI midlayer).
324 It is important for the driver to prevent the kernel from accessing the
325 physical drives directly, since these drives are used by the array
326 controller to construct the logical drives.
327 .SS SCSI error handling for tape drives and medium changers
328 The Linux SCSI midlayer provides an error-handling protocol that
329 is initiated whenever a SCSI command fails to complete within a
330 certain amount of time (which can vary depending on the command).
333 driver participates in this protocol to some extent.
334 The normal protocol is a four-step process:
336 First, the device is told to abort the command.
338 If that doesn't work, the device is reset.
340 If that doesn't work, the SCSI bus is reset.
342 If that doesn't work, the host bus adapter is reset.
347 driver as well as a SCSI driver and only the tape drives and medium
348 changers are presented to the SCSI midlayer.
349 Furthermore, unlike more
350 straightforward SCSI drivers, disk I/O continues through the block
351 side during the SCSI error-recovery process.
354 driver implements only the first two of these actions,
355 aborting the command, and resetting the device.
356 Note also that most tape drives will not oblige
357 in aborting commands, and sometimes it appears they will not even
358 obey a reset command, though in most circumstances they will.
359 If the command cannot be aborted and the device cannot be
360 reset, the device will be set offline.
362 In the event that the error-handling code is triggered and a tape drive is
363 successfully reset or the tardy command is successfully aborted, the
364 tape drive may still not allow I/O to continue until some command
365 is issued that positions the tape to a known position.
366 Typically you must rewind the tape (by issuing
367 .I "mt \-f /dev/st0 rewind"
368 for example) before I/O can proceed again to a tape drive that was reset.
371 .BR cciss_vol_status (8),
375 .UR http://cciss.sf.net
378 .I Documentation/blockdev/cciss.txt
380 .I Documentation/ABI/testing/sysfs\-bus\-pci\-devices\-cciss
381 in the Linux kernel source tree
383 .\" Don Brace, Steve Cameron, Chase Maupin, Mike Miller, Michael Ni,
384 .\" Charles White, Francis Wiran
385 .\" and probably some other people.