| 1 | .\" Copyright (c) 1980 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 | .\" @(#)uda.4 4.1 (Berkeley) %G% |
| 6 | .\" |
| 7 | .TH RA 4 10/8/81 |
| 8 | .UC 4 |
| 9 | .SH NAME |
| 10 | ra \- UDA50/RA80 Unibus disk controller and drives |
| 11 | .SH SYNOPSIS |
| 12 | controller uda0 at uba? csr 0177550 vector udaintr |
| 13 | .br |
| 14 | disk ra0 at uda0 drive 0 |
| 15 | .SH DESCRIPTION |
| 16 | The UDA50 is an intelligent disk controller for the UNIBUS. |
| 17 | It supports the RA80 124MB disk drive. |
| 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 ``ra'' 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 origin and size of the pseudo-disks on each drive are |
| 27 | as follows: |
| 28 | .PP |
| 29 | .nf |
| 30 | .ta .5i +\w'000000 'u +\w'000000 'u |
| 31 | RA80 124M drive partitions: |
| 32 | disk start length |
| 33 | ra?a 0 15884 |
| 34 | ra?b 15884 33440 |
| 35 | ra?c 0 237298 |
| 36 | ra?d 0 0 |
| 37 | ra?e 0 0 |
| 38 | ra?f 0 0 |
| 39 | ra?g 49324 82080 |
| 40 | ra?h 131404 105994 |
| 41 | .DT |
| 42 | .fi |
| 43 | .PP |
| 44 | It is unwise for all of these files to be present in one installation, |
| 45 | since there is overlap in addresses and protection becomes |
| 46 | a sticky matter. |
| 47 | The ra?a partition is normally used for the root file system, |
| 48 | the ra?b partition as a paging area, |
| 49 | and the ra?c partition for pack-pack copying (it maps the entire disk). |
| 50 | Both ra?g and ra?h are used to map the |
| 51 | remaining cylinders. |
| 52 | .PP |
| 53 | The block files access the disk via the system's normal |
| 54 | buffering mechanism and may be read and written without regard to |
| 55 | physical disk records. There is also a `raw' interface |
| 56 | which provides for direct transmission between the disk |
| 57 | and the user's read or write buffer. |
| 58 | A single read or write call results in exactly one I/O operation |
| 59 | and therefore raw I/O is considerably more efficient when |
| 60 | many words are transmitted. The names of the raw files |
| 61 | conventionally begin with an extra `r.' |
| 62 | .PP |
| 63 | In raw I/O counts should be a multiple of 512 bytes (a disk sector). |
| 64 | Likewise |
| 65 | .I seek |
| 66 | calls should specify a multiple of 512 bytes. |
| 67 | .SH FILES |
| 68 | /dev/ra[0-7][a-h] block files |
| 69 | .br |
| 70 | /dev/rra[0-7][a-h] raw files |
| 71 | .SH SEE ALSO |
| 72 | hk(4), hp(4), up(4) |
| 73 | .SH DIAGNOSTICS |
| 74 | \fBra%d%c: hard error sn%d udasa %o, state %d\fR. |
| 75 | .br |
| 76 | \fBra%d%c: hard error sn%d status %o\fR. |
| 77 | An unrecoverable |
| 78 | error occured during transfer of the specified sector of the specified |
| 79 | disk partition. The contents of the udasa register are printed |
| 80 | in octal and symbolically with bits decoded. The internal state is also |
| 81 | printed. In the second form, the MSCP status is printed. |
| 82 | The error was either unrecoverable, or a large number of retry attempts |
| 83 | (including offset positioning and drive recalibration) could not |
| 84 | recover the error. |
| 85 | .PP |
| 86 | \fBra%d%c: hard error sn%d OFFLINE\fR. The drive was spun down or off |
| 87 | line when it was accessed. The i/o operation is not recoverable. |
| 88 | .PP |
| 89 | \fBuda%d: random interrupt ignored\fR. The UDA received an interrupt |
| 90 | before it was initialized. |
| 91 | .PP |
| 92 | \fBuda%d: fatal error (%o)\fR. A fatal error was noticed in the UDA |
| 93 | interrupt routine. The contents of udasa are printed. The controller |
| 94 | will be reinitialized. |
| 95 | .PP |
| 96 | \fBuda%d: [soft|hard] error, controller error, event 0%o\fR. |
| 97 | .br |
| 98 | \fBuda%d: [soft|hard] error, host memory access error, event 0%o, addr 0%o\fR. |
| 99 | .br |
| 100 | \fBuda%d: [soft|hard] error, disk transfer error, unit %d, grp %d, cyl %d, |
| 101 | sec %d, trk %d, lbn %d, retry %d, level %d\fR. |
| 102 | .br |
| 103 | \fBuda%d: [soft|hard] error, SDI error, unit %d, event 0%o, cyl %d\fR. |
| 104 | .br |
| 105 | \fBuda%d: [soft|hard] error, small disk error, unit %d, event 0%o, cyl %d\fR. |
| 106 | .br |
| 107 | \fBuda%d: [soft|hard] error, unknown error, unit %d, format 0%o, event 0%o\fR. |
| 108 | .br |
| 109 | See the driver and the UDA and MSCP manuals. |
| 110 | .SH BUGS |
| 111 | In raw I/O |
| 112 | .I read |
| 113 | and |
| 114 | .IR write (2) |
| 115 | truncate file offsets to 512-byte block boundaries, |
| 116 | and |
| 117 | .I write |
| 118 | scribbles on the tail of incomplete blocks. |
| 119 | Thus, |
| 120 | in programs that are likely to access raw devices, |
| 121 | .I read, write |
| 122 | and |
| 123 | .IR lseek (2) |
| 124 | should always deal in 512-byte multiples. |
| 125 | .PP |
| 126 | A program to analyze the logged error information (even in its |
| 127 | present reduced form) is needed. Error messages should be more |
| 128 | consistent. |
| 129 | .PP |
| 130 | The partition tables for the file systems should be read off of each |
| 131 | pack, as they are never quite what any single installation would prefer, |
| 132 | and this would make packs more portable. |
| 133 | .PP |
| 134 | Dumps to the swap area on system crashes are not implemented. |
| 135 | .PP |
| 136 | Booting via block zero is not (and will not be) supported. The ``boot'' |
| 137 | program must be loaded from the console storage device. |
| 138 | .PP |
| 139 | Although the device supports unit numbers up to 255, the driver only |
| 140 | supports unit numbers up to 7. |