-.\" Copyright (C) 2016-2017, Microsemi Corporation
+.\" Copyright (C) 2019, Microchip Technology Inc. and its subsidiaries
+.\" Copyright (C) 2016-2018, Microsemi Corporation
.\" Copyright (C) 2016, PMC-Sierra, Inc.
.\" Written by Kevin Barnett <kevin.barnett@microsemi.com>
.\"
-.\" %%%LICENSE_START(GPLv2_ONELINE)
-.\" Licensed under GNU General Public License version 2 (GPLv2)
-.\" %%%LICENSE_END
-.TH SMARTPQI 4 2017-10-19 "Linux" "Linux Programmer's Manual"
+.\" SPDX-License-Identifier: GPL-2.0-only
+.TH SMARTPQI 4 (date) "Linux man-pages (unreleased)"
.SH NAME
smartpqi \- Microsemi Smart Family SCSI driver
.SH SYNOPSIS
.RB [ disable_heartbeat= { 0 | 1 }]
.RB [ disable_ctrl_shutdown= { 0 | 1 }]
.RB [ lockup_action= { none | reboot | panic }]
+.RB [ expose_ld_first= { 0 | 1 }]
+.RB [ hide_vsep= { 0 | 1 }]
.YS
.SH DESCRIPTION
.B smartpqi
is a SCSI driver for Microsemi Smart Family controllers.
-.SH OPTIONS
+.SS Supported \f[BI]ioctl\fP\/() operations
+For compatibility with applications written for the
+.BR cciss (4)
+and
+.BR hpsa (4)
+drivers, many, but not all of the
+.BR ioctl (2)
+operations supported by the
+.B hpsa
+driver are also supported by the
+.B smartpqi
+driver.
+The data structures used by these operations
+are described in the Linux kernel source file
+.IR include/linux/cciss_ioctl.h .
+.TP
+.BR CCISS_DEREGDISK ", " CCISS_REGNEWDISK ", " CCISS_REGNEWD
+These operations
+all do exactly the same thing, which is to cause the driver to re-scan
+for new devices.
+This does exactly the same thing as writing to the
+.BR smartpqi -specific
+host
+.I rescan
+attribute.
+.TP
+.B CCISS_GETPCIINFO
+This operation returns the PCI domain, bus,
+device, and function and "board ID" (PCI subsystem ID).
+.TP
+.B CCISS_GETDRIVVER
+This operation returns the driver version in four bytes, encoded as:
+.IP
+.in +4n
+.EX
+(major_version << 28) | (minor_version << 24) |
+ (release << 16) | revision
+.EE
+.in
+.TP
+.B CCISS_PASSTHRU
+Allows BMIC and CISS commands to be passed through to the controller.
+.SS Boot options
.TP
.BR disable_device_id_wildcards= { 0 | 1 }
Disables support for device ID wildcards.
\fBreboot\fP reboot the system
\fBpanic\fP panic the system
.TE
-.SH CONFIGURATION
-To configure Microsemi Smart Family controllers, please refer to the
-controller's User Guide documentation.
-.\" FIXME
-.\" Does this manual have a title? Is it freely available online?
-.\" Does it have a stable URL? Can this information be moved to the SEE
-.\" ALSO section?
-.RE
+.TP
+.BR expose_ld_first= { 0 | 1 }
+This option enables support for exposing logical devices to
+the operating system before physical devices.
+The default value is 0.
+.TP
+.BR hide_vsep= { 0 | 1 }
+This option enables disabling exposure of the virtual SEP to the host.
+This is usually associated with direct attached drives.
+The default value is 0.
.SH FILES
.SS Device nodes
Logical drives are accessed via the SCSI disk driver
changed, or removed devices (e.g., hot-plugged tape drives, or newly
configured or deleted logical drives) and notify the SCSI mid-layer of
any changes detected.
-Normally this action is triggered automatically by configuration
+Usually this action is triggered automatically by configuration
changes, so the user should not normally have to write to this file.
-Doing so may be useful when hot-plugging devices like tape drives, or
+Doing so may be useful when hot-plugging devices such as tape drives or
entire storage boxes containing pre-configured logical drives.
.TP
.IR /sys/class/scsi_host/host * /version
version.
.IP
For example:
+.IP
.in +4n
.EX
$ \c
This attribute will cause the driver to perform a specific action in the
unlikely event that a controller lockup has been detected.
See
-.BR OPTIONS
+.B OPTIONS
above
for an explanation of the
.I lockup_action
values.
+.TP
+.I /sys/class/scsi_host/host*/driver_version
+The
+.I driver_version
+attribute is read-only.
+This attribute contains the smartpqi driver version.
+.IP
+For example:
+.IP
+.in +4n
+.EX
+$ \c
+.B cat /sys/class/scsi_host/host1/driver_version
+1.1.2\-126
+.EE
+.in
+.TP
+.I /sys/class/scsi_host/host*/firmware_version
+The
+.I firmware_version
+attribute is read-only.
+This attribute contains the controller firmware version.
+.IP
+For example:
+.IP
+.in +4n
+.EX
+$ \c
+.B cat /sys/class/scsi_host/host1/firmware_version
+1.29\-112
+.EE
+.in
+.TP
+.I /sys/class/scsi_host/host*/model
+The
+.I model
+attribute is read-only.
+This attribute contains the product identification string of the controller.
+.IP
+For example:
+.IP
+.in +4n
+.EX
+$ \c
+.B cat /sys/class/scsi_host/host1/model
+1100\-16i
+.EE
+.in
+.TP
+.I /sys/class/scsi_host/host*/serial_number
+The
+.I serial_number
+attribute is read-only.
+This attribute contains the unique identification number of the controller.
+.IP
+For example:
+.IP
+.in +4n
+.EX
+$ \c
+.B cat /sys/class/scsi_host/host1/serial_number
+6A316373777
+.EE
+.in
+.TP
+.I /sys/class/scsi_host/host*/vendor
+The
+.I vendor
+attribute is read-only.
+This attribute contains the vendor identification string of the controller.
+.IP
+For example:
+.IP
+.in +4n
+.EX
+$ \c
+.B cat /sys/class/scsi_host/host1/vendor
+Adaptec
+.EE
+.in
.SS SmartPQI-specific disk attribute files in \f[BI]/sys\fP
In the file specifications below,
.I c
stands for the number of the appropriate SCSI controller,
.I b
-the bus number,
+is the bus number,
.I t
the target number, and
.I l
-the logical unit number (LUN).
+is the logical unit number (LUN).
.TP
.IR /sys/class/scsi_disk/ c : b : t : l /device/raid_level
The
This attribute contains the RAID level of each logical drive.
.IP
For example:
+.IP
.in +4n
.EX
$ \c
This attribute contains the unique identifier of the disk.
.IP
For example:
+.IP
.in +4n
.EX
$ \c
The
.I ssd_smart_path_enabled
attribute is read-only.
-.\" FIXME
-.\" What is "ioaccel"? This string appears nowhere in man-pages HEAD.
This attribute is for ioaccel-enabled volumes.
+(Ioaccel is an alternative driver submission path that allows the
+driver to send I/O requests directly to backend SCSI devices,
+bypassing the controller firmware.
+This results in an increase in performance.
+This method is used for HBA disks and for logical volumes comprised of SSDs.)
Contains 1 if ioaccel is enabled for the volume and 0 otherwise.
.IP
For example:
+.IP
.in +4n
.EX
$ \c
-.\" This example line is too wide for an 80-column TTY.
.B cat /sys/class/scsi_disk/1:0:3:0/device/ssd_smart_path_enabled
0
.EE
.in
-.SS Supported \f[BI]ioctl\fP\/() operations
-.\" Does this subsection belong here, under .SH FILES ?
-For compatibility with applications written for the
-.BR cciss (4)
-and
-.BR hpsa (4)
-drivers, many, but not all of the
-.IR ioctl s
-supported by the
-.B hpsa
-driver are also supported by the
+.SH VERSIONS
+The
.B smartpqi
-driver.
-The data structures used by these
-.IR ioctl s
-are described in the Linux kernel source file
-.IR include/linux/cciss_ioctl.h .
-.TP
-.BR CCISS_DEREGDISK ,\c
-.BR CCISS_REGNEWDISK ,\c
-.B CCISS_REGNEWD
-The above three
-.IR ioctl s
-all do exactly the same thing, which is to cause the driver to re-scan
-for new devices.
-This does exactly the same thing as writing to the
-.BR smartpqi -specific
-host
-.I rescan
-attribute.
-.TP
-.B CCISS_GETPCIINFO
-Returns the PCI domain, bus, device and function and "board ID" (PCI
-subsystem ID).
-.TP
-.B CCISS_GETDRIVVER
-Returns the driver version in four bytes, encoded as:
-.EX
-(major_version << 28) | (minor_version << 24) | (release << 16) | revision
-.EE
-.TP
-.B CCISS_PASSTHRU
-Allows BMIC and CISS commands to be passed through to the controller.
+driver was added in Linux 4.9.
+.SH NOTES
+.SS Configuration
+To configure a Microsemi Smart Family controller,
+refer to the User Guide for the controller,
+which can be found by searching for the specific controller at
+.UR https://storage.microsemi.com/
+.UE .
.SH SEE ALSO
.BR cciss (4),
.BR hpsa (4),