Various man pages describing the internals of the SCSI subsystem.

Submitted by:	John-Mark Gurney <gurney_j@resnet.uoregon.edu>
This commit is contained in:
Joerg Wunsch 1997-02-09 20:29:15 +00:00
parent 157f101972
commit 3cf493c646
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=22497
5 changed files with 462 additions and 3 deletions

View file

@ -1,8 +1,8 @@
# $FreeBSD$
MAN9= at_shutdown.9 at_fork.9 at_exit.9 copy.9 devfs_add_devswf.9 \
devfs_link.9 fetch.9 ifnet.9 intro.9 rtalloc.9 rtentry.9 sleep.9 spl.9 \
store.9 style.9 timeout.9 uio.9
MAN9= at_shutdown.9 at_fork.9 at_exit.9 cd.9 copy.9 devfs_add_devswf.9 \
devfs_link.9 fetch.9 ifnet.9 intro.9 rtalloc.9 rtentry.9 scsiconf.9 \
sd.9 sleep.9 spl.9 st.9 store.9 style.9 timeout.9 uio.9
MLINKS+= copy.9 copyin.9 copy.9 copyout.9 copy.9 copystr.9 copy.9 copyinstr.9
MLINKS+= fetch.9 fubyte.9 fetch.9 fusword.9 fetch.9 fuswintr.9 fetch.9 fuword.9

83
share/man/man9/cd.9 Normal file
View file

@ -0,0 +1,83 @@
.\" Copyright (c) 1997
.\" John-Mark Gurney. All rights reserved.
.\"
.\" 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.
.\" 3. Neither the name of the author nor the names of any co-contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY John-Mark Gurney 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 AUTHOR 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 Febuary 1, 1997
.Dt CD 4
.Os FreeBSD
.Sh NAME
.Nm cd
.Nd device driver for SCSI subsystem
.Sh DESCRIPTION
The cd device driver provies the
.Tn SCSI
subsystem a way to handle type 5
.Pq Dv T_READONLY
media. Some drives don't behave as the driver expects. See the section
QUIRKS for info on possible flags.
.Sh QUIRKS
Each
.Tn CD-ROM
device can have different interpretations of the
.Tn SCSI
spec. This can lead to drives requiring special handling in the driver. The
following is a list of quirks that the driver recognize. See
.Xr scsiconf 9
for more information on how to add quirk entries.
.Bl -tag -width CD_Q_BCD_TRACKS
.It Dv CD_Q_NO_TOUCH
This flag tell the driver not to probe the drive at attach time to see if
there is a disk in the drive and find out what size it is.
.ig xx
.It Dv CD_Q_BCD_TRACKS
This flag is for broken drives that return the track numbers in packed BCD
encoding instead of straight decimal. If the drive seems to skip tracks
.Pq usually tracks 10-15 are skipped
then you have a drive that is in need of this flag.
.xx
.El
.Sh FILES
.Bl -tag -width /sys/scsi/scsiconf.h -compact
.It Pa /sys/scsi/cd.c
files contains actual driver code
.It Pa /sys/scsi/scsiconf.h
contains the defines of the
.Dv CD_Q_xxx
quirk flags
.El
.Sh SEE ALSO
.Xr cd 4 ,
.Xr scsiconf 9
.Sh HISTORY
The
.Nm
manual page first appeared in
.Fx 3.0 .
.Sh AUTHOR
This
manual page was written by John-Mark Gurney
.Aq gurney_j@efn.org .

165
share/man/man9/scsiconf.9 Normal file
View file

@ -0,0 +1,165 @@
.\" Copyright (c) 1997
.\" John-Mark Gurney. All rights reserved.
.\"
.\" 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.
.\" 3. Neither the name of the author nor the names of any co-contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY John-Mark Gurney 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 AUTHOR 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 January 29, 1997
.Dt SCSICONF 9
.Os FreeBSD
.Sh NAME
.Nm scsiconf
.Nd define how certain scsi devices behave
.Sh SYNOPSIS
.Fd #include <scsi/scsi_all.h>
.Fd #include <scsi/scsiconf.h>
.Dv static struct scsidevs knowndevs[] =
.Em ...
.Sh DESCRIPTION
The
.Dv struct scsidevs knowndevs
contains information about scsi devices that are known to have problems
or require special flags.
.Bd -literal -offset indent
struct scsidevs {
u_int32_t type;
u_int32_t driver; /* normally the same as type */
boolean removable;
char *manufacturer;
char *model;
char *version;
char *devname;
char flags; /* see below */
u_int16_t quirks;
void *devmodes;
};
#define SC_SHOWME ...
#define SC_ONE_LU ...
#define SC_MORE_LUS ...
.Ed
.Pp
Matching is based first on device type, then on the manufacturer, model,
and revision strings returned by the device. The returned strings are
fixed lengths of 8, 16 and 4 bytes respectively. In the matching
pattern, a question mark
.Pq So ? Sc
matches any single character and a trailing
asterisk
.Pq So * Sc
matches remaining characters. For patterns shorter
than their respective fields, trailing spaces are implied.
.Bl -tag -width manufacturer
.It Va type
This is the type of device that is returned by the device. Look in
.Pa /sys/scsi/scsi_all.h
for the list of avaliable types
.Pq look for the Dv T_xxx macros .
.It Va driver
This specifies the driver to assign to the devices that match this entry.
It usually has the same value as
.Va type ,
unless a particular device is lying about its identity.
.It Va removable
This specifices wether the device is removable
.Pq Dv T_REMOV
or fixed
.Pq Dv T_FIXED .
.It Va manufacturer
This is the string to match against the vendor identification returned by the
device.
.It Va model
This is the string to match against the product identification returned by the
device.
.It Va version
This is the string to match against the product revision level returned by the
device.
.It Va devname
The device name of the driver to attach to this scsi device.
.It Va flags
This is set to possible flags that are use when probing this device.
The values are:
.Bl -tag -width "SC_MORE_LUSXX" -compact
.It Dv SC_SHOWME
Be verbose about the decisions made when considering this entry at
device probe time.
.It Dv SC_ONE_LU
Probe only the first LUN if device matches this entry; used for broken
devices that erroneously respond on more than a single LUN.
.It Dv SC_MORE_LUS
The opposite, probe for all possible LUNs. This is the default, but
can be used if a quirk entry is required for other purposes, like
overriding a type-specific default that would restrict probing to only
one LUN.
.El
.It Va quirks
Ths field specifies device specific flags. See the device-specific man pages in
section 9 for more info on these flags.
.It Va devmodes
This is a pointer to a device specific struct. Currently only used by
.Xr st 4
to set inital modes.
.El
.Sh FILES
.Bl -tag -width /sys/scsi/scsiconf.c -compact
.It Pa /sys/scsi/scsi_all.h
Lists the possible scsi devices
.It Pa /sys/scsi/scsiconf.h
Lists possible flags for both
.Va flags
and
.Va quirks
.It Pa /sys/scsi/scsiconf.c
Contains the
.Va knowndevs
data structure
.El
.Sh SEE ALSO
.Xr cd 4 ,
.Xr ch 4 ,
.Xr pt 4 ,
.Xr scsi 4 ,
.Xr sd 4 ,
.Xr st 4 ,
.Xr su 4 ,
.Xr uk 4 ,
.Xr cd 9 ,
.Xr sd 9 ,
.Xr st 9
.Sh HISTORY
The
.Nm
manual page first appeared in
.Fx 3.0 .
.Sh AUTHOR
This
manual page was written by John-Mark Gurney
.Aq gurney_j@efn.org .
.Sh BUGS
This isn't a complete description of what
.Pa /sys/scsi/scsiconf.c
contains, but the remaining functions there are internal to the SCSI
subsystem and thus of little interest for driver writers.

76
share/man/man9/sd.9 Normal file
View file

@ -0,0 +1,76 @@
.\" Copyright (c) 1997
.\" John-Mark Gurney. All rights reserved.
.\"
.\" 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.
.\" 3. Neither the name of the author nor the names of any co-contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY John-Mark Gurney 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 AUTHOR 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 February 1, 1997
.Dt SD 9
.Os FreeBSD
.Sh NAME
.Nm sd
.Nd device driver for SCSI subsystem
.Sh DESCRIPTION
Some Type 0
.Pq T_DIRECT
scsi devices don't behave properly when some special scsi options are
negotiated. See the QUIRKS section for info on how to disable some of these
options.
.Sh QUIRKS
Each SCSI device can have problems that the driver needs to work arround. See
.Xr scsiconf 9
for more info on adding quirks.
.Bl -tag -width SD_Q_NO_TAGS
.It Dv SD_Q_NO_TAGS
This quirk flags will disable the use of tagged queuing when sending commands to
the drive.
.It Dv SD_Q_NO_SYNC
This will disable synchronous negotiation with this drive.
.It Dv SD_Q_NO_FAST
This will disable fast negotiation with this drive.
.It Dv SD_Q_NO_WIDE
This will disable wide negotiation with this drive.
.El
.Sh FILES
.Bl -tag -width /sys/scsi/scsiconf.h -compact
.It Pa /sys/scsi/scsiconf.h
contains the definition of
.Dv SD_Q_xxx
macros.
.It Pa /sys/scsi/sd.c
files contains actual driver code
.El
.Sh SEE ALSO
.Xr sd 4 ,
.Xr scsiconf 9
.Sh HISTORY
The
.Nm
manual page first appeared in
.Fx 3.0 .
.Sh AUTHOR
This
manual page was written by John-Mark Gurney
.Aq gurney_j@efn.org .

135
share/man/man9/st.9 Normal file
View file

@ -0,0 +1,135 @@
.\" Copyright (c) 1997
.\" John-Mark Gurney. All rights reserved.
.\"
.\" 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.
.\" 3. Neither the name of the author nor the names of any co-contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY John-Mark Gurney 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 AUTHOR 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 February 1, 1997
.Dt ST 9
.Os FreeBSD
.Sh NAME
.Nm st
.Nd device driver for SCSI subsystem
.Sh DESCRIPTION
The
.Nm
driver is for Type 1
.Pq Dv T_SEQUENTIAL
scsi devices. These devices are normally tape drives. Some tape drives
require special handling by the device driver. See the QUIRKS section for
information on handling broken devices.
.Sh QUIRKS
Each SCSI device can have problems that the driver needs to work arround. See
.Xr scsiconf 9
for more info on adding quirks.
.Bl -tag -width ST_Q_FORCE_FIXED_MODE
.It ST_Q_NEEDS_PAGE_0
This tells the driver that the device in question always requires a page
0 on each MODE SELECT operation.
.It ST_Q_FORCE_FIXED_MODE
Forces the drive into fixed block mode.
.It ST_Q_FORCE_VAR_MODE
Forces the drive into variable block mode.
.It ST_Q_SNS_HLP
Drive requires a read of the tape before the mode sense will return useful
information.
.It ST_Q_IGNORE_LOADS
Causes the driver to return without action when telling the drive to load
a tape.
.ig xx \" These seem to have become stale in the driver.
.It ST_Q_BLKSIZ
Use variable-block size even though media_blksiz is \&< 0.
.It ST_Q_CC_NOMSG
This drive doesn't accept message when in CC state.
.xx
.It ST_Q_NO_1024
Never use 1024-byte fixed blocks with this drive.
.It ST_Q_NO_SYNC
Disable synchronous negotiation with the drive.
.It ST_Q_NO_FAST
Disable fast negotiation with the drive.
.It ST_Q_NO_WIDE
Disable wide negotiation with the drive.
.El
The
.Xr st 4
driver uses the
.Dv void* devmodes
entry of
.Dv struct scsidevs
.Po
see
.Xr scsiconf 9
for more info
.Pc
to point to a
.Dv struct st_mode st_modes[4]
array.
This provides the four different modes for the subdevices accessable by the
.Nm
driver.
.Bd -literal -offset indent
struct st_mode {
u_int32_t blksiz;
u_int16_t quirks;
u_int8_t density;
u_int8_t spare[1];
};
.Ed
.Pp
.Bl -tag -width space[1] -compact
.It blksize
This is the fixed block size to use.
.It quirks
Specifies the quirk flags to use, overriding general quirk flags for
that drive.
.It density
Specifies the density used for this mode. See the file
.Pa /sys/scsi/scsiconf.h
for a list of the possible defines to use here.
.It spare[1]
Unused.
.El
.Sh FILES
.Bl -tag -width /sys/scsi/scsiconf.h -compact
.It Pa /sys/scsi/scsiconf.h
contains the
.Dv ST_Q_xxx
macro defines and the density defines
.It Pa /sys/scsi/st.c
files contains actual driver code
.El
.Sh SEE ALSO
.Xr st 4 ,
.Xr scsiconf 9
.Sh HISTORY
The
.Nm
manual page first appeared in
.Fx 3.0 .
.Sh AUTHOR
This
manual page was written by John-Mark Gurney
.Aq gurney_j@efn.org .