Commit | Line | Data |
---|---|---|
7c6f249e C |
1 | .TH UP 4 "27 July 1983" |
2 | .UC 4 | |
3 | .SH NAME | |
4 | up \- unibus storage module controller/drives | |
5 | .SH SYNOPSIS | |
6 | .B "controller sc0 at uba? csr 0176700 vector upintr | |
7 | .br | |
8 | .B "disk up0 at sc0 drive 0" | |
9 | .SH DESCRIPTION | |
10 | This is a generic UNIBUS storage module disk driver. | |
11 | It is specifically designed to work with the Emulex SC-21 controller. | |
12 | It can be easily | |
13 | adapted to other controllers (although bootstrapping will | |
14 | not necessarily be directly possible.) | |
15 | .PP | |
16 | Files with minor device numbers 0 through 7 refer to various portions | |
17 | of drive 0; | |
18 | minor devices 8 through 15 refer to drive 1, etc. | |
19 | The standard device names begin with ``up'' followed by | |
20 | the drive number and then a letter a-h for partitions 0-7 respectively. | |
21 | The character ? stands here for a drive number in the range 0-7. | |
22 | .PP | |
23 | The block files access the disk via the system's normal | |
24 | buffering mechanism and may be read and written without regard to | |
25 | physical disk records. There is also a `raw' interface | |
26 | which provides for direct transmission between the disk | |
27 | and the user's read or write buffer. | |
28 | A single read or write call results in exactly one I/O operation | |
29 | and therefore raw I/O is considerably more efficient when | |
30 | many words are transmitted. The names of the raw files | |
31 | conventionally begin with an extra `r.' | |
32 | .PP | |
33 | In raw I/O counts should be a multiple of 512 bytes (a disk sector). | |
34 | Likewise | |
35 | .I seek | |
36 | calls should specify a multiple of 512 bytes. | |
37 | .SH "DISK SUPPORT" | |
38 | The driver interrogates the controller's holding register | |
39 | to determine the type of drive attached. The driver recognizes | |
40 | four different drives: AMPEX 9300, CDC 9766, AMPEX Capricorn, | |
41 | and FUJITSU 160. | |
42 | The origin and size of the pseudo-disks on each drive are | |
43 | as follows: | |
44 | .PP | |
45 | .nf | |
46 | .ta .5i +\w'000000 'u +\w'000000 'u +\w'000000 'u | |
47 | CDC 9766 300M drive partitions: | |
48 | disk start length cyl | |
49 | up?a 0 15884 0-26 | |
50 | up?b 16416 33440 27-81 | |
51 | up?c 0 500384 0-822 | |
52 | up?d 341696 15884 562-588 | |
53 | up?e 358112 55936 589-680 | |
54 | up?f 414048 861760 681-822 | |
55 | up?g 341696 158528 562-822 | |
56 | up?h 49856 291346 82-561 | |
57 | .PP | |
58 | AMPEX 9300 300M drive partitions: | |
59 | disk start length cyl | |
60 | up?a 0 15884 0-26 | |
61 | up?b 16416 33440 27-81 | |
62 | up?c 0 495520 0-814 | |
63 | up?d 341696 15884 562-588 | |
64 | up?e 358112 55936 589-680 | |
65 | up?f 414048 81312 681-814 | |
66 | up?g 341696 153664 562-814 | |
67 | up?h 49856 291346 82-561 | |
68 | .PP | |
69 | AMPEX Capricorn 330M drive partitions: | |
70 | disk start length cyl | |
71 | hp?a 0 15884 0-31 | |
72 | hp?b 16384 33440 32-97 | |
73 | hp?c 0 524288 0-1023 | |
74 | hp?d 342016 15884 668-699 | |
75 | hp?e 358400 55936 700-809 | |
76 | hp?f 414720 109408 810-1023 | |
77 | hp?g 342016 182112 668-1023 | |
78 | hp?h 50176 291346 98-667 | |
79 | .PP | |
80 | FUJITSU 160M drive partitions: | |
81 | disk start length cyl | |
82 | up?a 0 15884 0-49 | |
83 | up?b 16000 33440 50-154 | |
84 | up?c 0 263360 0-822 | |
85 | up?d 49600 15884 155-204 | |
86 | up?e 65600 55936 205-379 | |
87 | up?f 121600 141600 380-822 | |
88 | up?g 49600 213600 155-822 | |
89 | .DT | |
90 | .fi | |
91 | .PP | |
92 | It is unwise for all of these files to be present in one installation, | |
93 | since there is overlap in addresses and protection becomes | |
94 | a sticky matter. | |
95 | The up?a partition is normally used for the root file system, | |
96 | the up?b partition as a paging area, | |
97 | and the up?c partition for pack-pack copying (it maps the entire disk). | |
98 | On 160M drives the up?g partition maps the rest of the pack. | |
99 | On other drives both up?g and up?h are used to map the | |
100 | remaining cylinders. | |
101 | .SH FILES | |
102 | /dev/up[0-7][a-h] block files | |
103 | .br | |
104 | /dev/rup[0-7][a-h] raw files | |
105 | .SH SEE ALSO | |
106 | hk(4), hp(4), uda(4) | |
107 | .SH DIAGNOSTICS | |
108 | \fBup%d%c: hard error sn%d cs2=%b er1=%b er2=%b\fR. An unrecoverable | |
109 | error occurred during transfer of the specified sector in the specified | |
110 | disk partition. | |
111 | The contents of the cs2, er1 and er2 registers are printed | |
112 | in octal and symbolically with bits decoded. | |
113 | The error was either unrecoverable, or a large number of retry attempts | |
114 | (including offset positioning and drive recalibration) could not | |
115 | recover the error. | |
116 | .PP | |
117 | \fBup%d: write locked\fR. The write protect switch was set on the drive | |
118 | when a write was attempted. The write operation is not recoverable. | |
119 | .PP | |
120 | \fBup%d: not ready\fR. The drive was spun down or off line when it was | |
121 | accessed. The i/o operation is not recoverable. | |
122 | .PP | |
123 | \fBup%d: not ready (flakey)\fR. The drive was not ready, but after | |
124 | printing the message about being not ready (which takes a fraction | |
125 | of a second) was ready. The operation is recovered if no further | |
126 | errors occur. | |
127 | .PP | |
128 | \fBup%d%c: soft ecc sn%d\fR. A recoverable ECC error occurred on the | |
129 | specified sector of the specified disk partition. | |
130 | This happens normally | |
131 | a few times a week. If it happens more frequently than | |
132 | this the sectors where the errors are occurring should be checked to see | |
133 | if certain cylinders on the pack, spots on the carriage of the drive | |
134 | or heads are indicated. | |
135 | .PP | |
136 | \fBsc%d: lost interrupt\fR. A timer watching the controller detecting | |
137 | no interrupt for an extended period while an operation was outstanding. | |
138 | This indicates a hardware or software failure. There is currently a | |
139 | hardware/software problem with spinning down drives while they are | |
140 | being accessed which causes this error to occur. | |
141 | The error causes a UNIBUS reset, and retry of the pending operations. | |
142 | If the controller continues to lose interrupts, this error will recur | |
143 | a few seconds later. | |
144 | .SH BUGS | |
145 | In raw I/O | |
146 | .I read | |
147 | and | |
148 | .IR write (2) | |
149 | truncate file offsets to 512-byte block boundaries, | |
150 | and | |
151 | .I write | |
152 | scribbles on the tail of incomplete blocks. | |
153 | Thus, | |
154 | in programs that are likely to access raw devices, | |
155 | .I read, write | |
156 | and | |
157 | .IR lseek (2) | |
158 | should always deal in 512-byte multiples. | |
159 | .PP | |
160 | DEC-standard error logging should be supported. | |
161 | .PP | |
162 | A program to analyze the logged error information (even in its | |
163 | present reduced form) is needed. | |
164 | .PP | |
165 | The partition tables for the file systems should be read off of each | |
166 | pack, as they are never quite what any single installation would prefer, | |
167 | and this would make packs more portable. |