|
|
1.1 root 1: .\" Copyright (c) 1986 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)vd.4 6.3 (Berkeley) 6/13/88
6: .\"
7: .TH VD 4 "June 13, 1988"
8: .UC 7
9: .SH NAME
10: vd \- VERSAbus storage module controller/drives
11: .SH SYNOPSIS
12: .B "controller vd0 at vba? csr 0xffff2000 vector vdintr"
13: .br
14: .B "disk dk0 at vd0 drive 0"
15: .SH DESCRIPTION
16: This is a generic VERSAbus storage module disk driver for the
17: Computer Consoles SMD (VDDC) and SMD-E disk controllers.
18: .PP
19: Files with minor device numbers 0 through 7 refer to various portions
20: of drive 0;
21: minor devices 8 through 15 refer to drive 1, etc.
22: The standard device names begin with ``dk'' followed by
23: the drive number and then a letter a-h for partitions 0-7 respectively.
24: The character ? stands here for a drive number in the range 0-7.
25: .PP
26: The block files access the disk via the system's normal
27: buffering mechanism and may be read and written without regard to
28: physical disk records. There is also a `raw' interface
29: which provides for direct transmission between the disk
30: and the user's read or write buffer.
31: A single read or write call results in exactly one I/O operation,
32: and therefore raw I/O is considerably more efficient when
33: many words are transmitted. The names of the raw files
34: conventionally begin with an extra `r.'
35: .PP
36: In raw I/O counts should be a multiple of 1024 bytes,
37: whether the actual sector size is 512 or 1024 bytes.
38: Likewise,
39: .I seek
40: calls should specify a multiple of 1024 bytes.
41: .PP
42: The first sector of each disk contains a disk label
43: containing geometry information and partition layouts (see
44: .IR disklabel (5).
45: This sector is normally write-protected, and disk-to-disk copies should
46: avoid copying this sector.
47: The label may be updated with
48: .IR disklabel (8),
49: which can also be used to write-enable and write-disable the sector.
50: .SH "DISK SUPPORT"
51: During autoconfiguration,
52: as well as when a drive is opened after all partitions are closed,
53: the first sector of the drive is examined for a disk label.
54: If a label is found, the geometry of the drive and the partition tables
55: are taken from it.
56: If no label is found,
57: The driver checks for a disk label on sector 0 of each drive
58: during autoconfiguration.
59: If no label is found,
60: the driver tries to access the last track on each drive
61: to determine the type of drive attached.
62: The driver has default partition tables for
63: seven different drives: CDC FSD (160 MB), CDC 9766 (300 MB),
64: CDC XFSD (340 MB), CDC 515MB, Fujitsu 360 MB, Fujitsu Eagle (440 MB),
65: and Maxtor 340Mb.
66: If the drive is not recognized, a single small partition is created
67: to allow a label to be written.
68: .PP
69: The partition tables in the disk label and the
70: .I disktab
71: file specify partition offsets and sizes in sectors, which are 512 bytes
72: on SMD drives and 1024 bytes on 5 1/4" ESDI drives.
73: By convention,
74: the ?a partition is normally used for the root file system or other small
75: file system,
76: and the ?b partition is used as a paging area.
77: The ?c partition maps the rest of the pack,
78: except the last 5 cylinders which are reserved for bad sector forwarding,
79: and diagnostic use.
80: .SH FILES
81: /dev/dk[0-7][a-f] dk block files
82: .br
83: /dev/rdk[0-7][a-f] dk raw files
84: .SH SEE ALSO
85: disklabel(5), disklabel(8)
86: .SH DIAGNOSTICS
87: \fBvd%d: %s controller\fP.
88: This message is printed during autoconfiguration to identify
89: the type of controller, either ``VDDC'' or ``SMDE''.
90: .PP
91: \fBvd%d: init error\fP.
92: During autoconfiguration the controller failed to respond to
93: an initialize command.
94: .PP
95: \fBvd%d: diagnostic error\fP.
96: During autoconfiguration the controller failed to respond to
97: a diagnostic command.
98: .PP
99: \fBdk%d: unknown drive type\fP.
100: The system was unable to identify the specified drive as
101: one of the drives described above; the drive will not be
102: configured.
103: .PP
104: \fBvd%d: drive %d: config error\fP.
105: The system encountered a hard error when it tried to configure
106: a drive during autoconfiguration.
107: .PP
108: \fBvd%d: starting drives, wait ... \fP.
109: This message indicates the system is about to tell the
110: controller to ``start'' the drives attached to it.
111: .PP
112: \fBdk%d: %s <ntrak %d, ncyl %d, nsec %d>\fP.
113: For each drive recognized during autoconfiguration the system
114: prints a message of this form. The drive type is displayed
115: as well as the geometry: tracks/cylinder, cylinders, and sectors/track.
116: .PP
117: \fBvd%d: lost interrupt\fP.
118: The system failed to receive an interrupt from the controller after
119: submitting a request.
120: The system attempts to abort the current request and simulate an
121: interrupt to unwedge the controller.
122: During processing of the simulated interrupt, a controller error
123: will be reported as described below.
124: .PP
125: \fBvd%d: stray interrupt\fP.
126: The system received an unexpected interrupt; it is ignored.
127: .PP
128: \fBdk%d%c: write locked\fP.
129: An attempt was made to write to a drive that is physically write-protected.
130: .PP
131: \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.
132: .br
133: \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.
134: An attempted transfer resulted in a controller or drive error.
135: The controller or drive is reset, and the transfer is attempted
136: a second time.
137: .PP
138: \fBdk%d%c: hard error %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d)
139: status %b ecode %x\fP.
140: An unrecoverable error was encountered. The filesystem block number reported
141: is a logical sector number on the indicated partition;
142: it is expressed using 1024-byte sectors.
143: If the transfer involved multiple blocks, the block range is printed as well.
144: The parenthesized fields list the actual disk sector number
145: relative to the beginning of the drive
146: (in 512- or 1024-byte blocks, as appropriate),
147: as well as the cylinder, track and sector number of the block.
148: The error status field of the device control
149: block is printed in hexadecimal followed by a symbolic description.
150: If this is an SMDE controller, the error code is also displayed.
151: .PP
152: \fBdk%d%c: soft error %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d)
153: status %b ecode %x\fP.
154: A recoverable error was detected by the controller.
155: The fields are interpreted in the same way as those for hard errors.
156: .PP
157: \fBdk%d%c: soft ecc %sing fsbn %d [of %d-%d] (dk%d bn %d cn %d tn %d sn %d)\fP.
158: A recoverable ECC error was detected and corrected by the controller
159: during the indicated transfer.
160: .PP
161: \fBvd%d: drive %d: couldn't reset\fP.
162: The system was unable to reconfigure a drive during a controller reset.
163: .PP
164: \fBvd%d: controller timeout\fP.
165: The controller failed to complete an operation within a reasonable
166: time. This message is usually followed by another message indicating
167: what operation timed out; e.g. ``during config'' for a configuration
168: command.
169: .SH BUGS
170: Writes
171: scribble on the tail of incomplete blocks.
172: .PP
173: The system should use real disk sector numbers internally,
174: instead of assuming 1024-byte sectors;
175: errors should report filesystem block numbers using the actual sector size.
176: Raw I/O should be permitted on any sector boundary.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.