1RA(4)                      Kernel Interfaces Manual                      RA(4)
2
3
4

NAME

6       ra - MSCP disk controller interface
7

SYNOPSIS

9       /sys/conf/SYSTEM:
10            NRAC ra_controllers # NRAD controllers
11            NRAD ra_drives      # RX33/50, RC25, RD51/52/53/54, RA60/80/81/82
12
13       /etc/dtab:
14            #Name Unit# Addr   Vector Br Handler(s)      # Comments
15            ra    ?     172150 154    5  raintr          # uda50, rqdx1/2/3
16
17       major device number(s):
18            raw: 14
19            block: 5
20       minor device encoding:
21            bits 0007 specify partition of RA drive
22            bits 0070 specify RA drive
23            bits 0300 specify RA controller
24

DESCRIPTION

26       This  is a driver for the DEC UDA-50 disk controller and for other com‐
27       patible controllers.  The UDA-50 communicates with the host  through  a
28       packet  oriented  protocol  termed  the  Mass  Storage Control Protocol
29       (MSCP).  Consult the file <pdp/mscp.h> for a  detailed  description  of
30       this protocol.
31
32       Files  with  minor device numbers 0 through 7 refer to various portions
33       of drive 0; minor devices 8 through 15 refer  to  drive  1,  etc.   The
34       standard  device  names  begin with ``ra'' followed by the drive number
35       and then a letter a-h for partitions 0-7 respectively.  The character ?
36       stands here for a drive number in the range 0-7.
37
38       The block files access the disk via the system's normal buffering mech‐
39       anism and may be read and  written  without  regard  to  physical  disk
40       records.   There  is  also  a `raw' interface which provides for direct
41       transmission between the disk and the user's read or write  buffer.   A
42       single  read  or  write  call  results in exactly one I/O operation and
43       therefore raw I/O is considerably more efficient when  many  words  are
44       transmitted.   The  names of the raw files conventionally begin with an
45       extra `r.'
46
47       In raw I/O the buffer must begin on a word (even) boundary, and  counts
48       should be a multiple of 512 bytes (a disk sector).  Likewise seek calls
49       should specify a multiple of 512 bytes.
50

DISK SUPPORT

52       This driver configures the drive type of each drive when  it  is  first
53       opened.  Partition information is read from the disklabel.  If there is
54       no label or the label is corrupt then the 'a' partition is used to span
55       the entire drive.
56
57       The  ra?a partition is normally used for the root file system, the ra?b
58       partition as a swap area, and the ra?c partition for pack-pack  copying
59       (it maps the entire disk).
60

FILES

62       /dev/ra[0-7][a-h]
63       /dev/rra[0-7][a-h]
64       /dev/MAKEDEV        script to create special files
65

SEE ALSO

67       hk(4), ram(4), rk(4), rl(4), rp(4), rx(4), si(4), xp(4), dtab(5), auto‐
68       config(8), disklabel(8)
69

DIAGNOSTICS

71       rasa %o, state %d.  (Additional status information given after  a  hard
72       i/o  error.)  The values of the UDA-50 status register and the internal
73       driver state are printed.
74
75       ra%d: interrupt in unknown state %d ignored.  An interrupt was received
76       when the driver was in an unknown internal state.  Indicates a hardware
77       problem or a driver bug.
78
79       ra%d: fatal error (%o).  The UDA-50 indicated a ``fatal error'' in  the
80       status  returned  to the host.  The contents of the status register are
81       displayed.
82
83       ra%d,%d: OFFLINE.  (Additional status information given  after  a  hard
84       i/o  error.)   A  hard i/o error occurred because the drive was not on-
85       line.  The attached unit number and the MSCP unit numbers are printed.
86
87       status %o.  (Additional status  information  given  after  a  hard  i/o
88       error.)  The status information returned from the UDA-50 is tacked onto
89       the end of the hard error message printed on the console.
90
91       ra: unknown packet opcode=0%o.  An MSCP  packet  of  unknown  type  was
92       received from the UDA-50.  Check the cabling to the controller.
93
94       The  following  errors  are  interpretations  of  MSCP  error  messages
95       returned by the UDA-50 to the host.
96
97       ra: %s error, controller error, event 0%o.
98
99       ra: %s error, host memory access error, event 0%o, addr 0%o.
100
101       ra: %s error, disk transfer error, unit %d, grp 0x%x, hdr 0x%x.
102
103       ra: %s error, SDI error, unit %d, event 0%o, hdr 0x%x.
104
105       ra: %s error, small disk error, unit %d, event 0%o, cyl %d.
106
107       ra: %s error, unknown error, unit %d, format 0%o, event 0%o.
108

BUGS

110       In raw I/O read and write(2) truncate file offsets  to  512-byte  block
111       boundaries,  and  write  scribbles  on  the  tail of incomplete blocks.
112       Thus, in programs that are likely to access raw  devices,  read,  write
113       and lseek(2) should always deal in 512-byte multiples.
114
115
116
1173rd Berkeley Distribution      September 6, 1987                         RA(4)
Impressum