Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ uda(4) — Ultrix-32 1.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

UDA(4)

NAME

uda − UDA-50, RQDX1, RQDX2 disk controller interface    . 

SYNTAX

controller uda0 at uba0 csr 0172150 vector udintr
disk ra0 at uda0 drive 0

DESCRIPTION.

This is a driver for the DEC UDA-50, RQDX1 and RQDX2 disk controllers.  The UDA-50, RQDX1 and RQDX2 communicate 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, so 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 handles all drives which may be connected to a UDA-50, RQDX1 or RQDX2.  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 shown below.  Partitions are not rounded to cylinder boundaries, as on other drives, because the type of drive attached to the controller is discovered too late in the autoconfiguration process to maintain separate partition tables for each drive.  (The lack of proper drive type recognition would be more easily dealt with if the partition tables were read off the drive.) 

RA60 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0400176
ra?g4932482080
ra?h131404268772

RA80 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0242606
ra?g4932482080
ra?h131404111202

RA81 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0891072
ra?d34067015884
ra?e35655455936
ra?f412490478582
ra?g4932482080
ra?h131404759668

RD51 partitions
diskstartlength
ra?a015884
ra?b    15884   5716
ra?c0−1

RD52 partitions
diskstartlength
ra?a015884
ra?b158849766
ra?c0−1
ra?g52650−1

RX50 partitions
diskstartlength
ra?a0800
ra?c0−1

RC25
diskstartlength
ra?a015884
ra?b1588410032
ra?c0−1
ra?g25916−1

The ra?a partition is usually used for the root file system, the ra?b partition as a paging area, and the ra?c partition for pack to pack copying because the c partition maps the entire disk. 

A −1 in the length column indicates the end of the pack.  The UDA determines pack size either during autoconfiguration or when the disk is put on line. 

FILES

/dev/ra[0-9][a-f]
/dev/rra[0-9][a-f]

DIAGNOSTICS

The following messages are printed at the console:

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.

uda: unknown packet
An MSCP packet of unknown type was received from the UDA-50. Check the cabling to the controller.

Udaerror udasa (%x)

error: com %d opc 0x%x stat 0x%x

uda%d: hard error

udintr: um_ubinfo == 0

endcd=%o, stat=%o

Uda(%d) udasa (%x)

Uda (%d) Error (%x)

The following messages are written to the system error log file, /usr/adm/messages. 

udastrat: ubinfo 0x%x
(VAX 11/750 only.) When allocating UNIBUS resources, the driver found it already had resources previously allocated.

Uda%d 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.

The following errors are interpretations of MSCP error messages returned by the UDA-50 to the host. 

controller error, event 0%o

host memory access error, event 0%o, addr 0%o

disk transfer error, unit %d

SDI error, unit %d, event 0%o

small disk error, unit %d, event 0%o, cyl %d

unknown error, unit %d, format 0%o, event 0%o

uda%d: %s error

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026