.\" $NetBSD: scsictl.8,v 1.31 2017/03/08 11:45:14 tsutsui Exp $
.\"
.\" Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
.\" NASA Ames Research Center.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd November 19, 2016
.Dt SCSICTL 8
.Os
.Sh NAME
.Nm scsictl
.Nd a program to manipulate SCSI devices and busses
.Sh SYNOPSIS
.Nm
.Ar device
.Ar command
.Oo
.Ar arg Oo ...
.Oc
.Oc
.Sh DESCRIPTION
.Nm
allows a user or system administrator to issue commands to and otherwise
control SCSI devices and busses.
It is used by specifying a device or bus to manipulate,
the command to perform, and any arguments the command may require.
.Nm
determines if the specified device is an actual device or a SCSI bus
automatically, and selects the appropriate command set.
.Pp
For commands which
.Nm
issues a SCSI command to the device directly, any returned sense information
will be decoded by
.Nm
and displayed to the standard output.
.Sh DEVICE COMMANDS
The following commands are supported for SCSI devices:
.Bl -tag -width flushcacheXX
.It Cm debug Ar level
Set the debugging level for the given device; the following flags are
supported:
.Pp
.Bl -tag -compact -width xx -offset indent
.It Ar 1
Show scsi commands, errors, data.
.It Ar 2
Routine flow tracking.
.It Ar 4
Internal info from routine flows.
.It Ar 8
Device specific debugging.
.El
.Pp
This option is only supported with kernels compiled with
.Dv SCSIPI_DEBUG .
.It Cm defects Oo primary Oc Oo grown Oc Oo block|byte|physical Oc
Read the primary and/or grown defect lists from the specified device
in block, byte from index, or physical sector format.
The default is to return both the primary and grown defect lists
in physical sector format.
This command is only supported on direct access devices.
.It Cm format Oo blocksize Oo immediate Oc Oc
(Low level) format the named device.
If the optional
.Li blocksize
parameter is provided, the device geometry will be modified to
use the specified
.Li blocksize .
If this parameter is different form the Current or Default Mode Page 3
parameters, the device will update Mode Page 3 at the successful
completion of the Format.
Device geometry may change as a result of using a new device
.Li blocksize .
When the optional
.Li blocksize
parameter is specified, the Defect List on the drive will revert to
the original primary defect list created at the time of manufacture
if available.
The drive will usually recertify itself during the Format
and add any other defective blocks to the new Defect List.
Some disks may not support the ability to change the blocksize and
may enter a Degraded Mode when fed a Format command of this type.
If this happens the standard recovery for the drive requires issuing
a correct Format command, i.e. one without the blocksize parameter.
.Pp
When the
.Li immediate
parameter is also specified, the disk is instructed to return from the
format command right away.
It continues to format, and every ten seconds
.Nm
issues a TEST UNIT READY command to check the associated sense data.
This associated sense data has a progress indicator which indicates
how far the format is progressing.
Note well that most SCSI disk drives prior to
a few years ago do not support this option.
.It Cm identify
Identify the specified device, displaying the device's SCSI
bus, target, and lun, as well as the device's vendor, product,
and revision strings.
.It Cm reassign Ar blkno Oo blkno Oo ... Oc Oc
Issues a
.Li REASSIGN BLOCKS
command to the device, adding the specified blocks to the
grown defect list.
This command is only supported on direct access devices.
.It Cm release
Send a
.Dq RELEASE
command to the device to release a reservation on it.
.It Cm reserve
Send a
.Dq RESERVE
command to the device to place a reservation on it.
.It Cm reset
Reset the device.
This command is only supported for devices which support the
.Li SCIOCRESET
ioctl.
.It Cm start
Send a
.Dq START
command to the device.
This is useful typically only for disk devices.
.It Cm stop
Send a
.Dq STOP
command to the device.
This is useful typically only for disk devices.
.It Cm tur
Send a
.Dq TEST UNIT READY
command to the device.
This is useful for generating current device status.
.It Cm getcache
Returns basic cache parameters for the device.
.It Cm setcache Ar none|r|w|rw Op Ar save
Set basic cache parameters for the device.
The cache may be disabled
.Pq none ,
the read cache enabled
.Pq r ,
the write cache enabled
.Pq w ,
or both read and write cache enabled
.Pq rw .
If the drive's cache parameters are savable, specifying
.Ar save
after the cache enable state will cause the parameters to be saved in
non-volatile storage.
.It Cm flushcache
Explicitly flushes the write cache.
.It Cm setspeed Ar speed
Set the highest speed that the optical drive should use for reading
data.
The units are multiples of a single speed CDROM (150 KB/s).
Specify 0 to use the drive's fastest speed.
.It Cm getrealloc
Returns automatic reallocation parameters for the device.
.It Cm setrealloc Ar none|r|w|rw Op Ar save
Set automatic reallocation parameters for the device.
Automatic reallocation may be disabled
.Pq none ,
the automatic read reallocation enabled
.Pq r ,
the automatic write reallocation enabled
.Pq w ,
or both automatic read and write reallocation enabled
.Pq rw .
If the drive's automatic reallocation parameters are savable, specifying
.Ar save
after the automatic reallocation enable state will cause the parameters to be
saved in non-volatile storage.
.El
.Sh BUS COMMANDS
The following commands are supported for SCSI busses:
.Bl -tag width scanXtargetXlunXX
.It Cm reset
Reset the SCSI bus.
This command is only supported if the host adapter supports the
.Li SCBUSIORESET
ioctl.
.It Cm scan Ar target Ar lun
Scan the SCSI bus for devices.
This is useful if a device was not connected or powered
on when the system was booted.
The
.Ar target
and
.Ar lun
arguments specify which SCSI target and lun on the bus is to be scanned.
Either may be wildcarded by specifying the keyword
.Dq any
or
.Dq all .
.It Cm detach Ar target Ar lun
Detach the specified device from the bus.
Useful if a device is powered down after use.
The
.Ar target
and
.Ar lun
arguments have the same meaning as for the
.Cm scan
command, and may also be wildcarded.
.El
.Sh NOTES
When scanning the SCSI bus, information about newly recognized devices
is printed to console.
No information is printed for already probed devices.
.Sh FILES
.Pa /dev/scsibus*
- for commands operating on SCSI busses
.Sh SEE ALSO
.Xr ioctl 2 ,
.Xr cd 4 ,
.Xr ch 4 ,
.Xr scsi 4 ,
.Xr sd 4 ,
.Xr se 4 ,
.Xr ss 4 ,
.Xr st 4 ,
.Xr uk 4 ,
.Xr atactl 8 ,
.Xr dkctl 8
.Sh HISTORY
The
.Nm
command first appeared in
.Nx 1.4 .
.Sh AUTHORS
.An -nosplit
The
.Nm
command was written by
.An Jason R. Thorpe
of the Numerical Aerospace Simulation Facility, NASA Ames Research Center.