rd
—
CS/80 disk interface
This is a generic CS/80 disk driver. Only a small number of possible CS/80
drives are supported, but others can easily be added by adding tables to the
driver. It is a typical block-device driver; see
physio(4).
The script
MAKEDEV(8) should be used
to create the rd
special files; consult
mknod(8) if a special file
needs to be made manually.
The driver interrogates the controller to determine the type of drive attached.
The driver recognizes the following drives: 7912, 7914, 7933, 7936, 7937,
7945, 757A/B, 7958A/B, 7959B, 7962, 7963, 9122, 9134, 7912, 7936, and 9122,
not all of which have been tested. Special file names begin with
‘rd
’ and
‘rrd
’ for the block and character files
respectively. The second component of the name, a drive unit number in the
range of zero to seven, is represented by a
‘?
’ in the disk layouts below. The last
component of the name is the file system partition and is designated by a
letter from ‘a
’ to
‘h
’ which also corresponds to a minor
device number sets: zero to seven, eight to 15, 16 to 23 and so forth for
drive zero, drive two and drive three respectively (see
physio(4)). The location and
size (in sectors) of the partitions for these drives:
- 7945/7946 partitions:
-
disk |
start |
length |
cyls |
rd?a |
112 |
15904 |
1-142 |
rd?b |
16016 |
20160 |
143-322 |
rd?c |
0 |
108416 |
0-967 |
rd?d |
16016 |
40320 |
143-502 |
rd?e |
undefined |
|
|
rd?f |
undefined |
|
|
rd?g |
36176 |
72240 |
323-967 |
rd?h |
56336 |
52080 |
503-967 |
- 9134D partitions:
-
disk |
start |
length |
cyls |
rd?a |
96 |
15936 |
1-166 |
rd?b |
16032 |
13056 |
167-302 |
rd?c |
0 |
29088 |
0-302 |
rd?d |
undefined |
|
|
rd?e |
undefined |
|
|
rd?f |
undefined |
|
|
rd?g |
undefined |
|
|
rd?h |
undefined |
|
|
- 9122S partitions:
-
disk |
start |
length |
cyls |
rd?a |
undefined |
|
|
rd?b |
undefined |
|
|
rd?c |
0 |
1232 |
0-76 |
rd?d |
undefined |
|
|
rd?e |
undefined |
|
|
rd?f |
undefined |
|
|
rd?g |
undefined |
|
|
rd?h |
undefined |
|
|
- 7912P partitions:
-
disk |
start |
length |
cyls |
rd?a |
0 |
15904 |
0-70 |
rd?b |
16128 |
22400 |
72-171 |
rd?c |
0 |
128128 |
0-571 |
rd?d |
16128 |
42560 |
72-261 |
rd?e |
undefined |
|
|
rd?f |
undefined |
|
|
rd?g |
38528 |
89600 |
172-571 |
rd?h |
58688 |
69440 |
262-571 |
- 7914CT/P partitions:
-
disk |
start |
length |
cyls |
rd?a |
224 |
15904 |
1-71 |
rd?b |
16128 |
40320 |
72-251 |
rd?c |
0 |
258048 |
0-1151 |
rd?d |
16128 |
64960 |
72-361 |
rd?e |
81088 |
98560 |
362-801 |
rd?f |
179648 |
78400 |
802-1151 |
rd?g |
56448 |
201600 |
252-1151 |
rd?h |
81088 |
176960 |
362-1151 |
- 7958A partitions:
-
disk |
start |
length |
cyls |
rd?a |
252 |
16128 |
1-64 |
rd?b |
16380 |
32256 |
65-192 |
rd?c |
0 |
255276 |
0-1012 |
rd?d |
16380 |
48384 |
65-256 |
rd?e |
64764 |
100800 |
257-656 |
rd?f |
165564 |
89712 |
657-1012 |
rd?g |
48636 |
206640 |
193-1012 |
rd?h |
64764 |
190512 |
257-1012 |
- 7957A partitions:
-
disk |
start |
length |
cyls |
rd?a |
154 |
16016 |
1-104 |
rd?b |
16170 |
24640 |
105-264 |
rd?c |
0 |
159544 |
0-1035 |
rd?d |
16170 |
42350 |
105-379 |
rd?e |
58520 |
54824 |
380-735 |
rd?f |
113344 |
46200 |
736-1035 |
rd?g |
40810 |
118734 |
265-1035 |
rd?h |
58520 |
101024 |
380-1035 |
- 7933H partitions:
-
disk |
start |
length |
cyls |
rd?a |
598 |
16146 |
1-27 |
rd?b |
16744 |
66976 |
28-139 |
rd?c |
0 |
789958 |
0-1320 |
rd?d |
83720 |
16146 |
140-166 |
rd?e |
99866 |
165646 |
167-443 |
rd?f |
265512 |
165646 |
444-720 |
rd?g |
83720 |
706238 |
140-1320 |
rd?h |
431158 |
358800 |
721-1320 |
- 9134L partitions:
-
disk |
start |
length |
cyls |
rd?a |
80 |
15920 |
1-199 |
rd?b |
16000 |
20000 |
200-449 |
rd?c |
0 |
77840 |
0-972 |
rd?d |
16000 |
32000 |
200-599 |
rd?e |
undefined |
|
|
rd?f |
undefined |
|
|
rd?g |
36000 |
41840 |
450-972 |
rd?h |
48000 |
29840 |
600-972 |
- 7936H partitions:
-
disk |
start |
length |
cyls |
rd?a |
861 |
16359 |
1-19 |
rd?b |
17220 |
67158 |
20-97 |
rd?c |
0 |
600978 |
0-697 |
rd?d |
84378 |
16359 |
98-116 |
rd?e |
100737 |
120540 |
117-256 |
rd?f |
220416 |
120540 |
256-395 |
rd?g |
84378 |
516600 |
98-697 |
rd?h |
341817 |
259161 |
397-697 |
- 7937H partitions:
-
disk |
start |
length |
cyls |
rd?a |
1599 |
15990 |
1-10 |
rd?b |
17589 |
67158 |
11-52 |
rd?c |
0 |
1116102 |
0-697 |
rd?d |
84747 |
15990 |
53-62 |
rd?e |
100737 |
246246 |
63-216 |
rd?f |
346983 |
246246 |
217-370 |
rd?g |
84747 |
1031355 |
53-697 |
rd?h |
593229 |
522873 |
371-697 |
- 7957B/7961B partitions:
-
disk |
start |
length |
cyls |
rd?a |
126 |
16002 |
1-127 |
rd?b |
16128 |
32760 |
128-387 |
rd?c |
0 |
159894 |
0-1268 |
rd?d |
16128 |
49140 |
128-517 |
rd?e |
65268 |
50400 |
518-917 |
rd?f |
115668 |
44226 |
918-1268 |
rd?g |
48888 |
111006 |
388-1268 |
rd?h |
65268 |
94626 |
518-1268 |
- 7958B/7962B partitions:
-
disk |
start |
length |
cyls |
rd?a |
378 |
16254 |
1-43 |
rd?b |
16632 |
32886 |
44-130 |
rd?c |
0 |
297108 |
0-785 |
rd?d |
16632 |
49140 |
44-173 |
rd?e |
65772 |
121716 |
174-495 |
rd?f |
187488 |
109620 |
496-785 |
rd?g |
49518 |
247590 |
131-785 |
rd?h |
65772 |
231336 |
174-785 |
- 7959B/7963B partitions:
-
disk |
start |
length |
cyls |
rd?a |
378 |
16254 |
1-43 |
rd?b |
16632 |
49140 |
44-173 |
rd?c |
0 |
594216 |
0-1571 |
rd?d |
16632 |
65772 |
44-217 |
rd?e |
82404 |
303912 |
218-1021 |
rd?f |
386316 |
207900 |
1022-1571 |
rd?g |
65772 |
528444 |
174-1571 |
rd?h |
82404 |
511812 |
218-1571 |
The eight partitions as given support four basic, non-overlapping
layouts, though not all partitions exist on all drive types.
In the first layout there are three partitions and a ``bootblock''
area. The bootblock area is at the beginning of the disk and holds the
standalone disk boot program. The rd?a partition is
for the root file system, rd?b is a paging/swapping
area, and rd?g is for everything else.
The second layout is the same idea, but has a larger
paging/swapping partition (rd?d) and a smaller
``everything else'' partition (rd?h). This layout is
better for environments which run many large processes.
The third layout is a variation of the second, but breaks the
rd?h partition into two partitions,
rd?e and rd?f.
The final layout is intended for a large, single file system
second disk. It is also used when writing out the boot program since it is
the only partition mapping the bootblock area.
- /dev/rd[0-7][a-h]
- block files
- /dev/rrd[0-7][a-h]
- raw files
- rd%d err: v%d u%d, R0x%x F0x%x A0x%x I0x%x, block %d
- An unrecoverable data error occurred during transfer of the specified
block on the specified disk.
The current disk partitioning is totally bogus. CS/80 drives have 256 byte
sectors which are mapped to 512 byte ``sectors'' by the driver. Since some
CS/80 drives have an odd number of sectors per cylinder, the disk geometry
used is not always accurate.
The partition tables for the file systems should be read off of
each pack, as they are never quite what any single installation would
prefer, and this would make packs more portable.
A program to analyze the logged error information (even in its
present reduced form) is needed.