-.\" Copyright (c) 1986 Regents of the University of California.
-.\" All rights reserved. The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
+.\" Copyright (c) 1986, 1991 Regents of the University of California.
+.\" All rights reserved.
.\"
-.\" @(#)vd.4 6.3 (Berkeley) %G%
+.\" %sccs.include.redist.man%
.\"
-.TH VD 4 ""
-.UC 7
-.SH NAME
-vd \- VERSAbus storage module controller/drives
-.SH SYNOPSIS
-.B "controller vd0 at vba? csr 0xffff2000 vector vdintr"
-.br
-.B "disk dk0 at vd0 drive 0"
-.SH DESCRIPTION
-This is a generic VERSAbus storage module disk driver for the
-Computer Consoles SMD (VDDC) and SMD-E disk controllers.
-.PP
-Files with minor device numbers 0 through 7 refer to various portions
-of drive 0;
-minor devices 8 through 15 refer to drive 1, etc.
-The standard device names begin with ``dk'' followed by
-the drive number and then a letter a-h for partitions 0-7 respectively.
-The character ? stands here for a drive number in the range 0-7.
-.PP
-The block files access the disk via the system's normal
-buffering mechanism and may be read and written without regard to
-physical disk records. There is also a `raw' interface
-which provides for direct transmission between the disk
-and the user's read or write buffer.
-A single read or write call results in exactly one I/O operation,
-and therefore raw I/O is considerably more efficient when
-many words are transmitted. The names of the raw files
-conventionally begin with an extra `r.'
-.PP
-In raw I/O counts should be a multiple of 1024 bytes,
+.\" @(#)vd.4 6.4 (Berkeley) %G%
+.\"
+.Dd
+.Dt VD 4 tahoe
+.Os
+.Sh NAME
+.Nm vd
+.Nd
+.Tn VERSAbus
+storage module controller/drives
+.Sh SYNOPSIS
+.Cd "controller vd0 at vba? csr 0xffff2000 vector vdintr"
+.Cd "disk dk0 at vd0 drive 0"
+.Sh DESCRIPTION
+This is a generic
+.Tn VERSAbus
+storage module disk driver for the
+Computer Consoles
+.Tn SMD
+.Pq Tn VDDC
+and
+.Tn SMD-E
+disk controllers.
+.Pp
+The
+.Nm vd
+driver is a fairly typical block
+.Tn I/O
+device, except
+raw block
+.Tn I/O
+counts must be a multiple of 1024 bytes,
whether the actual sector size is 512 or 1024 bytes.
Likewise,
-.I seek
+.Xr seek
calls should specify a multiple of 1024 bytes.
-.PP
+See
+.Xr physio 4 .
+.Pp
The first sector of each disk contains a disk label
containing geometry information and partition layouts (see
-.IR disklabel (5).
+.Xr disklabel 5 ) .
This sector is normally write-protected, and disk-to-disk copies should
avoid copying this sector.
The label may be updated with
-.IR disklabel (8),
+.Xr disklabel 8 ,
which can also be used to write-enable and write-disable the sector.
-.SH "DISK SUPPORT"
+.Sh DISK SUPPORT
During autoconfiguration,
as well as when a drive is opened after all partitions are closed,
the first sector of the drive is examined for a disk label.
the driver tries to access the last track on each drive
to determine the type of drive attached.
The driver has default partition tables for
-seven different drives: CDC FSD (160 MB), CDC 9766 (300 MB),
-CDC XFSD (340 MB), CDC 515MB, Fujitsu 360 MB, Fujitsu Eagle (440 MB),
-and Maxtor 340Mb.
+seven different drives:
+.Tn CDC FSD
+(160
+.Tn MB ) ,
+.Tn CDC
+9766 (300
+.Tn MB ) ,
+.Tn CDC XFSD
+(340
+.Tn MB ) ,
+.Tn CDC
+515
+.Tn MB ,
+Fujitsu 360
+.Tn MB ,
+Fujitsu Eagle (440
+.Tn MB ) ,
+and Maxtor 340
+.Tn MB .
If the drive is not recognized, a single small partition is created
to allow a label to be written.
-.PP
+.Pp
The partition tables in the disk label and the
-.I disktab
+.Pa disktab
file specify partition offsets and sizes in sectors, which are 512 bytes
-on SMD drives and 1024 bytes on 5 1/4" ESDI drives.
+on
+.Tn SMD
+drives and 1024 bytes on 5 1/4"
+.Tn ESDI
+drives.
By convention,
the ?a partition is normally used for the root file system or other small
file system,
The ?c partition maps the rest of the pack,
except the last 5 cylinders which are reserved for bad sector forwarding,
and diagnostic use.
-.SH FILES
-/dev/dk[0-7][a-f] dk block files
-.br
-/dev/rdk[0-7][a-f] dk raw files
-.SH SEE ALSO
-disklabel(5), disklabel(8)
-.SH DIAGNOSTICS
-\fBvd%d: %s controller\fP.
+.Sh FILES
+.Bl -tag -width /dev/dk[0-7][a-f]xx -compact
+.It Pa /dev/dk[0-7][a-f]
+dk block files
+.It Pa /dev/rdk[0-7][a-f]
+dk raw files
+.El
+.Sh DIAGNOSTICS
+.Bl -diag
+.It vd%d: %s controller.
This message is printed during autoconfiguration to identify
-the type of controller, either ``VDDC'' or ``SMDE''.
-.PP
-\fBvd%d: init error\fP.
+the type of controller, either
+.Tn VDDC
+or
+.Tn SMDE .
+.Pp
+.It vd%d: init error.
During autoconfiguration the controller failed to respond to
an initialize command.
-.PP
-\fBvd%d: diagnostic error\fP.
+.Pp
+.It vd%d: diagnostic error.
During autoconfiguration the controller failed to respond to
a diagnostic command.
-.PP
-\fBdk%d: unknown drive type\fP.
+.Pp
+.It dk%d: unknown drive type.
The system was unable to identify the specified drive as
one of the drives described above; the drive will not be
configured.
-.PP
-\fBvd%d: drive %d: config error\fP.
+.Pp
+.It vd%d: drive %d: config error.
The system encountered a hard error when it tried to configure
a drive during autoconfiguration.
-.PP
-\fBvd%d: starting drives, wait ... \fP.
+.Pp
+.It vd%d: starting drives, wait ... .
This message indicates the system is about to tell the
controller to ``start'' the drives attached to it.
-.PP
-\fBdk%d: %s <ntrak %d, ncyl %d, nsec %d>\fP.
+.Pp
+.It dk%d: %s <ntrak %d, ncyl %d, nsec %d>.
For each drive recognized during autoconfiguration the system
prints a message of this form. The drive type is displayed
as well as the geometry: tracks/cylinder, cylinders, and sectors/track.
-.PP
-\fBvd%d: lost interrupt\fP.
+.Pp
+.It vd%d: lost interrupt.
The system failed to receive an interrupt from the controller after
submitting a request.
The system attempts to abort the current request and simulate an
interrupt to unwedge the controller.
During processing of the simulated interrupt, a controller error
will be reported as described below.
-.PP
-\fBvd%d: stray interrupt\fP.
+.Pp
+.It vd%d: stray interrupt.
The system received an unexpected interrupt; it is ignored.
-.PP
-\fBdk%d%c: write locked\fP.
+.Pp
+.It dk%d%c: write locked.
An attempt was made to write to a drive that is physically write-protected.
-.PP
-\fBdk%d%c: controller err %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d) status %b ecode %x; resetting controller... retrying\fP.
+.Pp
+.It "dk%d%c: controller err %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d) status %b ecode %x; resetting controller... retrying."
.br
-\fBdk%d%c: drive err %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d) status %b ecode %x; resetting drive... retrying\fP.
+.It "dk%d%c: drive err %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d) status %b ecode %x; resetting drive... retrying."
An attempted transfer resulted in a controller or drive error.
The controller or drive is reset, and the transfer is attempted
a second time.
-.PP
-\fBdk%d%c: hard error %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d)
-status %b ecode %x\fP.
+.Pp
+.It "dk%d%c: hard error %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d) status %b ecode %x."
An unrecoverable error was encountered. The filesystem block number reported
is a logical sector number on the indicated partition;
it is expressed using 1024-byte sectors.
as well as the cylinder, track and sector number of the block.
The error status field of the device control
block is printed in hexadecimal followed by a symbolic description.
-If this is an SMDE controller, the error code is also displayed.
-.PP
-\fBdk%d%c: soft error %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d)
-status %b ecode %x\fP.
+If this is an
+.Tn SMDE
+controller, the error code is also displayed.
+.Pp
+.It "dk%d%c: soft error %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d) status %b ecode %x."
A recoverable error was detected by the controller.
The fields are interpreted in the same way as those for hard errors.
-.PP
-\fBdk%d%c: soft ecc %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d)\fP.
-A recoverable ECC error was detected and corrected by the controller
+.Pp
+.It "dk%d%c: soft ecc %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d)."
+A recoverable
+.Tn ECC
+error was detected and corrected by the controller
during the indicated transfer.
-.PP
-\fBvd%d: drive %d: couldn't reset\fP.
+.Pp
+.It vd%d: drive %d: couldn't reset.
The system was unable to reconfigure a drive during a controller reset.
-.PP
-\fBvd%d: controller timeout\fP.
+.Pp
+.It vd%d: controller timeout.
The controller failed to complete an operation within a reasonable
time. This message is usually followed by another message indicating
what operation timed out; e.g. ``during config'' for a configuration
command.
-.SH BUGS
+.El
+.Sh SEE ALSO
+.Xr disklabel 5 ,
+.Xr disklabel 8
+.Sh HISTORY
+The
+.Nm
+driver appeared in
+.Bx 4.3 tahoe .
+.Sh BUGS
Writes
scribble on the tail of incomplete blocks.
-.PP
+.Pp
The system should use real disk sector numbers internally,
instead of assuming 1024-byte sectors;
errors should report filesystem block numbers using the actual sector size.
-Raw I/O should be permitted on any sector boundary.
+Raw
+.Tn I/O
+should be permitted on any sector boundary.