|
|
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.