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 aio1 at vaxbi? node?
controller bvpssp0 at aio1 vector bvpsspintr
disk ra0 at bvpssp0 drive 0
For MSI Bus:
adapter msi0 at nexus?
controller dssc0 at msi0 msinode0
disk ra0 at dssc0 drive 3
For VAX CI/HSC:
adapter ci0 at nexus?
adapter ci0 at vaxbi? node?
controller hsc0 at ci0 cinode 6
disk ra0 at hsc0 drive 3
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). See 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, and so forth. The standard device names begin with ra followed by the drive number and then a letter a through h for partitions 0 through 7 respectively. The character ? stands here for a drive number in the range 0 through 7.
The block files access the disk with the system’s normal buffering mechanism and may be read and written without regard to physical disk records. There is also a ‘raw’ interface that 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. Multiply buffered I/O operations are possible to any raw MSCP device. (See nbuf(4) for more information.) 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 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. Drive types as such 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. 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.) Partitions sizes can be changed by chpt(.). For further information, see dkio(.).
The origin and size (in sectors) of the pseudodisks an each drive are shown in the following table. In the table, 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.
RA60 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0400176
ra?d049324
ra?e0225105
ra?f49324350852
ra?g49324175781
ra?h225105175072
RA70 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0547042
ra?d082574
ra?e0264921
ra?f82574464467
ra?g82574182347
ra?h264921282121
RA80 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0237212
ra?d13140435260
ra?c16666435260
ra?c20192435288
ra?g4932482080
ra?h131404105808
RA80 (IDC) partitions
diskstartlength
a 0 15884
b 1605833440
c0242606
g 4991082080
h 132370110143
RA81 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0891072
ra?d049324
ra?e0216028
ra?f49324841748
ra?g49324166794
ra?h216028675044
RA82 partitions
diskstartlength
ra?a015884
ra?b1588466690
ra?c0121664
ra?d82574220096
ra?e302670219735
ra?f522405437760
ra?g82574877591
ra?h960165256500
RD31 partitions
diskstartlength
ra?a015884
ra?b1588410024
ra?c041560
ra?g2590815652
RA90 partitions
diskstartlength
ra?a015884
ra?b15884127072
ra?c02376153
ra?d142956420197
ra?e563153420197
ra?f983350420197
ra?g1403547420196
ra?h1823743552410
RD32 partitions
diskstartlength
ra?a015884
ra?b1588415625
ra?c083204
ra?d3150925863
ra?e5737225832
ra?g3150951695
RD33 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0138565
ra?d00
ra?e00
ra?f5071487851
ra?g4932489241
ra?h15884122681
RD51 partitions
diskstartlength
ra?a015884
ra?b158845716
ra?c021599
RD52 partitions
diskstartlength
ra?a015884
ra?b158849766
ra?c060480
ra?d00
ra?e050714
ra?f507149766
ra?g2565034830
ra?h1588444596
RD53 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0136872
ra?d00
ra?e050714
ra?f5071487958
ra?g4932489348
ra?h15884122788
RD54 partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c0311200
ra?d49324130938
ra?e180262130938
ra?f00
ra?g49324261876
ra?h00
RRD50 (read only) partitions
diskstartlength
ra?a015884
ra?b1588433440
ra?c01171875
ra?d131404122993
ra?e122993254397
ra?f3773901171875
ra?g4932482080
ra?h1314041171875
RX33 partitions
diskstartlength
ra?a02400
ra?c02400
RX50 partitions
diskstartlength
ra?a0800
ra?c0800
RC25 partitions
diskstartlength
ra?a015884
ra?b1588410032
ra?c050902
ra?g2591624986
Usually the ra?a partition is used for the root file system, the ra?b partition as a paging area. The ra?c partition for pack to pack copying because it maps the entire disk.
FILES
/dev/ra???
/dev/rra???