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 2017-09-15 "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
121 The device naming scheme is:
123 /dev/cciss/c0d0 Controller 0, disk 0, whole device
124 /dev/cciss/c0d0p1 Controller 0, disk 0, partition 1
125 /dev/cciss/c0d0p2 Controller 0, disk 0, partition 2
126 /dev/cciss/c0d0p3 Controller 0, disk 0, partition 3
128 /dev/cciss/c1d1 Controller 1, disk 1, whole device
129 /dev/cciss/c1d1p1 Controller 1, disk 1, partition 1
130 /dev/cciss/c1d1p2 Controller 1, disk 1, partition 2
131 /dev/cciss/c1d1p3 Controller 1, disk 1, partition 3
135 .I /proc/driver/cciss/cciss[0\-9]+
136 contain information about
137 the configuration of each controller.
142 $ \fBcd /proc/driver/cciss\fP
145 -rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss0
146 -rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss1
147 -rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss2
149 cciss2: HP Smart Array P800 Controller
151 Firmware Version: 7.14
155 Current # commands on controller: 0
156 Max Q depth since init: 1
157 Max # commands on controller since init: 2
158 Max SG entries since init: 32
159 Sequential access devices: 0
161 cciss/c2d0: 36.38GB RAID 0
167 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/model
168 Displays the SCSI INQUIRY page 0 model for logical drive
173 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/rev
174 Displays the SCSI INQUIRY page 0 revision for logical drive
179 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/unique_id
180 Displays the SCSI INQUIRY page 83 serial number for logical drive
185 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/vendor
186 Displays the SCSI INQUIRY page 0 vendor for logical drive
191 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/block:cciss!cXdY
193 .IR /sys/block/cciss!cXdY .
195 .I /sys/bus/pci/devices/<dev>/ccissX/rescan
196 When this file is written to, the driver rescans the controller
197 to discover any new, removed, or modified logical drives.
199 .I /sys/bus/pci/devices/<dev>/ccissX/resettable
200 A value of 1 displayed in this file indicates that
201 the "reset_devices=1" kernel parameter (used by
203 is honored by this controller.
204 A value of 0 indicates that the
205 "reset_devices=1" kernel parameter will not be honored.
206 Some models of Smart Array are not able to honor this parameter.
208 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/lunid
209 Displays the 8-byte LUN ID used to address logical drive
214 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/raid_level
215 Displays the RAID level of logical drive
220 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/usage_count
221 Displays the usage count (number of opens) of logical drive
225 .SS SCSI tape drive and medium changer support
226 SCSI sequential access devices and medium changer devices are supported and
227 appropriate device nodes are automatically created (e.g.,
233 You must enable "SCSI tape drive support for Smart Array 5xxx" and
234 "SCSI support" in your kernel configuration to be able to use SCSI
235 tape drives with your Smart Array 5xxx controller.
237 Additionally, note that the driver will not engage the SCSI core at
239 The driver must be directed to dynamically engage the SCSI core via the
242 which the "block" side of the driver creates as
243 .I /proc/driver/cciss/cciss*
245 This is because at driver init time,
246 the SCSI core may not yet be initialized (because the driver is a block
247 driver) and attempting to register it with the SCSI core in such a case
249 This is best done via an initialization script
252 but could vary depending on distribution).
257 for x in /proc/driver/cciss/cciss[0\-9]*
259 echo "engage scsi" > $x
264 Once the SCSI core is engaged by the driver, it cannot be disengaged
265 (except by unloading the driver, if it happens to be linked as a module.)
267 Note also that if no sequential access devices or medium changers are
268 detected, the SCSI core will not be engaged by the action of the above
270 .SS Hot plug support for SCSI tape drives
271 Hot plugging of SCSI tape drives is supported, with some caveats.
274 driver must be informed that changes to the SCSI bus
276 This may be done via the
281 echo "rescan" > /proc/scsi/cciss0/1
283 This causes the driver to:
286 query the adapter about changes to the
287 physical SCSI buses and/or fibre channel arbitrated loop, and
289 make note of any new or removed sequential access devices
293 The driver will output messages indicating which
294 devices have been added or removed and the controller, bus, target, and
295 lun used to address each device.
296 The driver then notifies the SCSI midlayer
299 Note that the naming convention of the
302 contains a number in addition to the driver name
304 instead of just "cciss", which you might expect).
308 sequential access devices and medium changers are presented
309 as SCSI devices to the SCSI midlayer by the
312 Specifically, physical SCSI disk drives are
314 presented to the SCSI midlayer.
315 The only disk devices that are presented to the kernel are logical
316 drives that the array controller constructs from regions on
318 The logical drives are presented to the block layer
319 (not to the SCSI midlayer).
320 It is important for the driver to prevent the kernel from accessing the
321 physical drives directly, since these drives are used by the array
322 controller to construct the logical drives.
323 .SS SCSI error handling for tape drives and medium changers
324 The Linux SCSI midlayer provides an error-handling protocol that
325 is initiated whenever a SCSI command fails to complete within a
326 certain amount of time (which can vary depending on the command).
329 driver participates in this protocol to some extent.
330 The normal protocol is a four-step process:
332 First, the device is told to abort the command.
334 If that doesn't work, the device is reset.
336 If that doesn't work, the SCSI bus is reset.
338 If that doesn't work, the host bus adapter is reset.
343 driver as well as a SCSI driver and only the tape drives and medium
344 changers are presented to the SCSI midlayer.
345 Furthermore, unlike more
346 straightforward SCSI drivers, disk I/O continues through the block
347 side during the SCSI error-recovery process.
350 driver implements only the first two of these actions,
351 aborting the command, and resetting the device.
352 Note also that most tape drives will not oblige
353 in aborting commands, and sometimes it appears they will not even
354 obey a reset command, though in most circumstances they will.
355 If the command cannot be aborted and the device cannot be
356 reset, the device will be set offline.
358 In the event that the error-handling code is triggered and a tape drive is
359 successfully reset or the tardy command is successfully aborted, the
360 tape drive may still not allow I/O to continue until some command
361 is issued that positions the tape to a known position.
362 Typically you must rewind the tape (by issuing
363 .I "mt -f /dev/st0 rewind"
364 for example) before I/O can proceed again to a tape drive that was reset.
367 .BR cciss_vol_status (8),
371 .UR http://cciss.sf.net
374 .I Documentation/blockdev/cciss.txt
376 .I Documentation/ABI/testing/sysfs-bus-pci-devices-cciss
377 in the Linux kernel source tree
379 .\" Don Brace, Steve Cameron, Chase Maupin, Mike Miller, Michael Ni,
380 .\" Charles White, Francis Wiran
381 .\" and probably some other people.