4.1cBSD/usr/man/man4/uda.4v

.TH UDA 4V "9 February 1983"
.UC 4
.SH NAME
uda \- UDA-50 disk controller interface
.SH SYNOPSIS
.B "controller uda0 at uba0 csr 0172150 vector udintr"
.br
.B "disk ra0 at uda0 drive 0"
.SH DESCRIPTION
This is a driver for the DEC UDA-50 disk controller.
The UDA-50 communicates with the host through a packet
oriented protocol termed the Mass Storage Control Protocol (MSCP).
Consult the file
.RI < vax/mscp.h >
for a detailed description of this protocol.
.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 ``ra'' 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 512 bytes (a disk sector).
Likewise
.I seek
calls should specify a multiple of 512 bytes.
.SH "DISK SUPPORT"
This driver handles all drives which may be connected to the
UDA-50.  Drive types per se are not recognized, but rather
the variable length partitions are defined as having an
``infinite'' length and the controller is relied on to return
an error when an inaccessible block is requested.  For
constructing file systems, however the partitions sizes are
required.
The origin and size (in sectors) of the pseudo-disks
on each drive are as follows:
.PP
.nf
.ta .5i +\w'000000    'u +\w'000000    'u +\w'000000    'u +\w'000000    'u
.PP
RA60 partitions
	disk	start	length	cyls
	ra?a	0	15884	0-94
	ra?b	15960	33440	95-294
	ra?c	0	400176	0-2381
	ra?d	49560	15884	295-389
	ra?e	65520	55936	390-389
	ra?f	121464	278586	723-2381
	ra?g	49560	350490	295-2381
.PP
RA80 partitions
	disk	start	length	cyls
	ra?a	0	15884	0-36
	ra?b	16058	33440	37-114
	ra?c	0	242606	0-558
	ra?d	49910	15884	115-151
	ra?e	68096	55936	152-280
	ra?f	125888	120559	281-558
	ra?g	49910	192603	115-558
.PP
RA81 partitions
	disk	start	length	cyls
	ra?a	0	15884	0-22
	ra?b	16422	66880	23-116
	ra?c	0	891072	0-1247
	ra?d	375564	15884	526-548
	ra?e	391986	55936	549-979
	ra?f	699720	191199	980-1247
	ra?g	375564	515355	526-1247
	ra?h	83538	291346	117-525
.DT
.fi
.PP
It is unwise for all of these files to be present in one installation,
since there is overlap in addresses and protection becomes
a sticky matter.
The ra?a partition is normally used for the root file system,
the ra?b partition as a paging area,
and the ra?c partition for pack-pack copying (it maps the entire disk).
On disks larger than about 205 Megabytes, the ra?h partition
is inserted prior to the ra?d or ra?g partition;
the ra?g partition then maps the remainder of the pack.
All disk partition tables are calculated using the
.IR diskpart (8)
program.
.SH FILES
/dev/ra[0-9][a-f]
.br
/dev/rra[0-9][a-f]
.SH DIAGNOSTICS
.BR "uda: ubinfo %x" .
(VAX 11/750 only.)
When allocating UNIBUS resources, the driver found it already
had resources previously allocated.  This indicates a bug in
the driver.
.PP
.BR "udasa %o, state %d" .
(Additional status information given after a hard i/o error.)
The values of the UDA-50 status register and the internal
driver state are printed.
.PP
.BR "uda%d: random interrupt ignored" .
An unexpected interrupt was received (e.g. when no i/o was
pending).  The interrupt is ignored.
.PP
.BR "uda%d: interrupt in unknown state %d ignored" .
An interrupt was received when the driver was in an unknown
internal state.  Indicates a hardware problem or a driver bug.
.PP
.BR "uda%d: fatal error (%o)" .
The UDA-50 indicated a ``fatal error'' in the status returned
to the host.  The contents of the status register are displayed.
.PP
.BR OFFLINE .
(Additional status information given after a hard i/o error.)
A hard i/o error occurred because the driver was not on-line.
.PP
.BR "status %o" .
(Additional status information given after a hard i/o error.)
The status information returned from the UDA-50 is tacked onto
the end of the hard error message printed on the console.
.PP
.BR "uda: unknown packet" .
An MSCP packet of unknown type was received from the UDA-50.
Check the cabling to the controller.
.PP
The following errors are interpretations of MSCP error messages
returned by the UDA-50 to the host.
.PP
.BR "uda%d: %s error, controller error, event 0%o" .
.PP
.BR "uda%d: %s error, host memory access error, event 0%o, addr 0%o" .
.PP
.BR "uda%d: %s error, disk transfer error, unit %d" .
.PP
.BR "uda%d: %s error, SDI error, unit %d, event 0%o" .
.PP
.BR "uda%d: %s error, small disk error, unit %d, event 0%o, cyl %d" .
.PP
.BR "uda%d: %s error, unknown error, unit %d, format 0%o, event 0%o" .
.SH BUGS
Doesn't appear to work well with multiple drives.