UDA(4) — Unix Programmer’s Manual
NAME
uda − UDA-50 disk controller interface
SYNOPSIS
controller uda0 at uba0 csr 0172150 vector udintr
disk ra0 at uda0 drive 0
DESCRIPTION
This is a driver for the DEC UDA-50 disk controller and for other compatible controllers. The UDA-50 communicates with the host through a packet oriented protocol termed the Mass Storage Control Protocol (MSCP). Consult the file <vax/mscp.h> for a detailed description of this protocol.
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.
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.’
In raw I/O counts should be a multiple of 512 bytes (a disk sector). Likewise seek calls should specify a multiple of 512 bytes.
DISK SUPPORT
This driver configures the drive type of each drive when it is first opened. A partition table in the driver is required for each type of disk. The origin and size (in sectors) of the pseudo-disks on each drive are shown below. Not all partitions begin on cylinder boundaries, as on other drives, because previous drivers used one partition table for all drive types. Variants of the partition tables are common; check the driver and the file /etc/disktab(disktab(5)) for other possibilities.
RC25 partitions
diskstartlength
ra?a015884
ra?b1588410032
ra?c050902
ra?g2591624986
RD52 partitions
diskstartlength
ra?a015884
ra?b158849766
ra?c060480
ra?g2565034830
RD53 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0138672
ra?g4932489348
ra?h15884122788
RA60 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0400176
ra?d4932482080same as 4.2BSD ra?g
ra?e131404268772same as 4.2BSD ra?h
ra?f49324350852
ra?g242606157570
ra?h49324193282
RA80 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0242606
ra?e49324193282same as old Berkeley ra?g
ra?f4932482080same as 4.2BSD ra?g
ra?g49910192696
ra?h131404111202same as 4.2BSD
RA81 partitions
diskstartlength
ra?a015884
ra?b1642266880
ra?c0891072
ra?d37556415884
ra?e391986307200
ra?f699720191352
ra?g375564515508
ra?h83538291346
RA81 partitions with 4.2BSD-compatible partitions
diskstartlength
ra?a015884
ra?b1642266880
ra?c0891072
ra?d4932482080same as 4.2BSD ra?g
ra?e131404759668same as 4.2BSD ra?h
ra?f412490478582same as 4.2BSD ra?f
ra?g375564515508
ra?h83538291346
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).
FILES
/dev/ra[0-9][a-f]
/dev/rra[0-9][a-f]
DIAGNOSTICS
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.
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.
uda%d: random interrupt ignored. An unexpected interrupt was received (e.g. when no i/o was pending). The interrupt is ignored.
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.
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.
OFFLINE. (Additional status information given after a hard i/o error.) A hard i/o error occurred because the drive was not on-line.
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.
uda: unknown packet. An MSCP packet of unknown type was received from the UDA-50. Check the cabling to the controller.
The following errors are interpretations of MSCP error messages returned by the UDA-50 to the host.
uda%d: %s error, controller error, event 0%o.
uda%d: %s error, host memory access error, event 0%o, addr 0%o.
uda%d: %s error, disk transfer error, unit %d.
uda%d: %s error, SDI error, unit %d, event 0%o.
uda%d: %s error, small disk error, unit %d, event 0%o, cyl %d.
uda%d: %s error, unknown error, unit %d, format 0%o, event 0%o.
BUGS
The partition tables attempt to combine compatibility with previous drivers and functionality; this is impossible. The best solution would be to read the partition tables off the drive.
4th Berkeley Distribution — May 16, 1986