Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

nbuf(4)

dkio(4)

chpt(8)

MAKEDEV(8)

uerf(8)

ra(4)

Name

ra − MSCP disk interface

Syntax

For UNIBUS, Q-bus:

controller uda0 at uba? 
controller uq0 at uda0 csr 0172150 vector uqintr
disk ra0 at uq0 drive 0

For VAX BI:

controller kdb0 at vaxbi0 node 4
controller uq0 at kdb0 vector uqintr
disk ra0 at uq0 drive 0
controller bvpssp0 at aio1 vector bvpsspintr
disk ra0 at bvpssp0 drive 0

For MSI Bus:

adapter msi0 at nexus? 
controller dssc0 at msi0 msinode 0
disk ra0 at dssc0 drive 0

For VAX or MIPS CI/HSC:

adapter ci0 at nexus? 
adapter ci0 at vaxbi? node?
controller hsc0 at ci0 cinode 6
disk ra0 at hsc0 drive 0

Description

Prior to Version 2.0, this device was referenced by uda(.).

This is a driver for all DIGITAL MSCP disk controllers.  All controllers communicate with the host through a packet-oriented protocol termed the Mass Storage Control Protocol (MSCP). 

The following rules are used to determine the major and minor numbers that are associated with an ra type disk.  There is a range of major numbers used to represent ra disks.  Each major number represents 32 disks.  For this reason, the first major number associated with ra disks represents logical unit number 0 through logical unit number 31. Similarly the second major number represents logical unit number 32 through logical unit number 63. The minor number is used to represent both the logical unit number and partition.  A disk partition refers to a designated portion of the physical disk. To accomplish this, the 8-bit minor number is broken up into two parts.  The low three bits of the minor number specify a disk partition.  These three bits allow for the naming of eight partitions.  The partitions are named a,b,c,d,e,f,g and h.  The upper five bits of the minor number specify the logical unit number within a group of 32 disks.

The device special file names associated with ra disks are based on the following conventions, which are closely associated with the minor number assigned to the disk. The standard device names begin with ra for the block special file and rra for the raw (character) special file. Following the ra is the logical unit number and then a letter, a through h, to represent the partition.  Throughout this reference page, the question mark (?) character represents the logical unit number in the name of the device special file.  For example ra?b could represent ra0b, ra1b, and so on.

The following examples illustrate how the logical unit number is calculated given the major and minor number of an ra disk.  For the device special file rra6a, the major number is 60 and the minor number is 48.  The partition is represented by the low 3 bits of the number 48.  The low 3 bits  will be 0 which specifies the “a” partition.  The upper 5 bits of 48 specifies the number 6. The major number is 60.  Because 60 is the base major number, it represents the first group of 32 disks.  For this reason, there is no need to adjust the unit number for a high order grouping. Putting all these pieces together reveals that the major/minor pair 60/48 refers to the “a” partition of logical unit 6.  As another example, the following computation determines the logical unit number corresponding to the major/minor pair 62,49.  The low 3 bits of the minor number gives the number 1, which is the “b” partition. The upper 5 bits of the minor number gives the number 6. The major number is 62.  Subtracting 62 from the base major number of 60 gives a value of 2.  This means that 2 groups of 32 disks preceed the unit in question.  For this reason, the logical unit number is as follows: (2 * 32) + 6 = 70.  The figure 6 is from the minor number. Therefore, the major/minor pair 62,49 refers to the “b” partition of logical unit number 70, or rra70b.

The disk can be accessed through either the block special file or the character special file.  The block special file accesses the disk using the file system’s normal buffering mechanism.  Reads and writes to the block special file can specify any size.  This avoids the need to limit data transfers to the size of physical disk records and to calculate offsets within disk records.  The file system may break up large read and write requests into smaller fixed size transfers to the disk. 

The character special file provides a raw interface which allows for direct transmission between the disk and the user’s read or write buffer.  In contrast to the block special file, reads and writes to the raw interface must be done on full sectors only.  For this reason, in raw I/O, counts should be multiples of 512 bytes (a disk sector).  In the same way, seek calls should specify a multiple of 512 bytes. A single read or write to the raw interface results in exactly one I/O operation, consequently raw I/O may be considerably more efficient for large transfers. Multiply buffered I/O operations are possible to any raw MSCP device. (See nbuf() for more information.)

Disk Support

This driver handles all disk drives that may be connected to an MSCP-based controller.  Consult the ULTRIX Software Product Description to determine which controllers are supported for which CPU types and hardware configurations. 

The starting location and length (in 512-byte sectors) of the disk partitions of each drive are shown in the following table.  Partition sizes can be changed by chpt(.). For further information, see dkio(.).

RA60 partitions
diskstartlength
ra?a032768
ra?b3276850160
ra?c0400176
ra?d2429852416
ra?e29534452416
ra?f34776052415
ra?g82928160000
ra?h24928157247
ra?h281805265236

RA70 partitions
diskstartlength
ra?a032768
ra?b3276866690
ra?c0547042
ra?d099458
ra?e0281805
ra?f99458447583
ra?g99458182347

RA71 partitions
diskstartlength
ra?a032768
ra?b32768131072
ra?c01367310
ra?d778240204800
ra?e983040204800
ra?f1187840179470
ra?g163840614400
ra?h778240589070

RA72 partitions
diskstartlength
ra?a032768
ra?b32768190464
ra?c01953300
ra?d1144832299008
ra?e1443840299008
ra?f1742848210452
ra?g223232921600
ra?h1144832808468

RA73 partititons
diskstartlength
ra?a032768
ra?b32768190464
ra?c03920490
ra?d2311708536260
ra?e284768536260
ra?f3384228536262
ra?g23117081608782

RA80 partitions
diskstartlength
ra?a032768
ra?b3276850160
ra?c0237212
ra?d8292851428
ra?e13435651428
ra?f18578451428
ra?g82928154284
ra?h00

RA81 partitions
diskstartlength
ra?a032768
ra?b3276866690
ra?c0891072
ra?d323840210538
ra?e46996210538
ra?f680534210538
ra?g99458160000
ra?h259458631614

RA82 partitions
diskstartlength
ra?a032768
ra?b3276866690
ra?c01216665
ra?d99458220096
ra?e319554219735
ra?f539289437760
ra?g99458877591
ra?h977049239616

RA90 partitions
diskstartlength
ra?a032768
ra?b32768127072
ra?c02409680
ra?d159840420197
ra?e580037420197
ra?f1000234840393
ra?g1598401680787
ra?h1840627535526

RA92 partitions
diskstartlength
ra?a032768
ra?b32768127072
ra?c02940951
ra?d159840420197
ra?e580037420197
ra?f1000234840393
ra?g1598401680787
ra?h18406271100324

RD31 partitions
diskstartlength
ra?a015884
ra?b1588410024
ra?c041560
ra?d00
ra?e00
ra?f00
ra?g2590815652
ra?h00

RD32 partitions
diskstartlength
ra?a015884
ra?b1588415625
ra?c083236
ra?d3150925863
ra?e5737225864
ra?f00
ra?g3150951727
ra?h00

RD51 partitions
diskstartlength
ra?a015884
ra?b158845716
ra?c021600
ra?d00
ra?e00
ra?f00
ra?g00
ra?h00

RD52 partitions
diskstartlength
ra?a015884
ra?b158849766
ra?c060480
ra?d00
ra?e050714
ra?f507149766
ra?g2565034830
ra?h1588444596

RD53 partitions
diskstartlength
ra?a032768
ra?b3276850160
ra?c0138672
ra?d00
ra?e00
ra?f00
ra?g8292855744
ra?h32768105904

RD54 partitions
diskstartlength
ra?a032768
ra?b3276850160
ra?c0311200
ra?d82928130938
ra?e21386697334
ra?f00
ra?g82928228272
ra?h00

RF30 partitions
diskstartlength
ra?a032768
ra?b3276850160
ra?c0293040
ra?d82928130938
ra?e21386679173
ra?f00
ra?g82928210111
ra?h00

RF31 partitions
diskstartlength
ra?a032768
ra?b3276866690
ra?c0744400
ra?d099458
ra?e0281805
ra?f99458644942
ra?g99458182347
ra?h281805462595

RF71 partitions
diskstartlength
ra?a032768
ra?b3276866690
ra?c0781440
ra?d099458
ra?e0281805
ra?f99458681982
ra?g99458182347
ra?h281805499635

RF72 partitions
diskstartlength
ra?a032768
ra?b32768190608
ra?c01954050
ra?d1144832300708
ra?e1443840300708
ra?f174284207658
ra?g223232921600
ra?h1144832809074

RRD40 (read only) partitions
diskstartlength
ra?a00
ra?b00
ra?c01171875
ra?d00
ra?e00
ra?f00
ra?g00
ra?h00

RRD50 (read only) partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c01171875
ra?d131404122993
ra?e254397122993
ra?f377390794485
ra?g4932482080
ra?h1314041040471

RX33 partitions
diskstartlength
ra?a02400
ra?b00
ra?c02400
ra?d00
ra?e00
ra?f00
ra?g00
ra?h00

RX50 partitions
diskstartlength
ra?a0800
ra?b00
ra?c0800
ra?d00
ra?e00
ra?f00
ra?g00
ra?h00

ESE20 partitions
diskstartlength
ra?a032768
ra?b3276850160
ra?c0245757
ra?d8292881416
ra?e16434481413
ra?f00
ra?g82928162829
ra?h00
 

ESE52 partitions
diskstartlength
ra?a032768
ra?b3276850160
ra?c0245757
ra?d8292881416
ra?e16434481413
ra?f00
ra?g82928162829
ra?h00

ESE56 partititons
diskstartlength
ra?a032768
ra?b32768131072
ra?c01196540
ra?d163840344064
ra?e507904344064
ra?f851968344572
ra?g163840819200
ra?h983040213500
 

Usually the ra?a partition is used for the root file system, the ra?b partition as a paging area.  The ra?c partition can be used for disk to disk copying when it maps the entire disk (as it does when the disk size is less than 2.16 Gbytes). 

Files

/dev/ra???
/dev/rra???

See Also

nbuf(4), dkio(4), chpt(8), MAKEDEV(8), uerf(8)

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