NAME
up —
UNIBUS storage module
controller/disk drives
SYNOPSIS
sc0 at uba? csr 0176700 vector upintr
up0 at sc0 drive 0
DESCRIPTION
NOTE: This driver has not been ported from
4.4BSD yet.
This is a generic UNIBUS storage module disk driver. It is specifically designed
to work with the Emulex SC-21 and SC-31 controllers. It can be easily adapted
to other controllers (although bootstrapping will not necessarily be directly
possible.)
The script
MAKEDEV(8) should
be used to create the
up special files; consult
mknod(8) if a special file
needs to be made manually. It is recommended as a security precaution to not
create special files for devices which may never be installed.
DISK SUPPORT
The driver interrogates the controller's holding register to determine the type
of drive attached. The driver recognizes seven different drives: CDC 9762, CDC
9766, AMPEX DM980, AMPEX 9300, AMPEX Capricorn, FUJITSU 160, and FUJITSU Eagle
(the Eagle is not supported by the SC-21).
Special file names begin with ‘
up
’ and
‘
rup
’ 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, the file system partition, is designated by a letter
from ‘
a
’ to
‘
h
’ which also corresponds to a minor
device number set: 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 512 byte sectors) of the partitions for the above drives:
- CDC 9762 partitions
-
disk |
start |
length |
cyls |
hp?a |
0 |
15884 |
0-99 |
hp?b |
16000 |
33440 |
100-309 |
hp?c |
0 |
131680 |
0-822 |
hp?d |
49600 |
15884 |
309-408 |
hp?e |
65440 |
55936 |
409-758 |
hp?f |
121440 |
10080 |
759-822 |
hp?g |
49600 |
82080 |
309-822 |
- CDC 9766 300M drive
partitions
-
disk |
start |
length |
cyl |
up?a |
0 |
15884 |
0-26 |
up?b |
16416 |
33440 |
27-81 |
up?c |
0 |
500384 |
0-822 |
up?d |
341696 |
15884 |
562-588 |
up?e |
358112 |
55936 |
589-680 |
up?f |
414048 |
861760 |
681-822 |
up?g |
341696 |
158528 |
562-822 |
up?h |
49856 |
291346 |
82-561 |
- AMPEX DM980 partitions
-
disk |
start |
length |
cyls |
hp?a |
0 |
15884 |
0-99 |
hp?b |
16000 |
33440 |
100-309 |
hp?c |
0 |
131680 |
0-822 |
hp?d |
49600 |
15884 |
309-408 |
hp?e |
65440 |
55936 |
409-758 |
hp?f |
121440 |
10080 |
759-822 |
hp?g |
49600 |
82080 |
309-822 |
- AMPEX 9300 300M drive
partitions
-
disk |
start |
length |
cyl |
up?a |
0 |
15884 |
0-26 |
up?b |
16416 |
33440 |
27-81 |
up?c |
0 |
495520 |
0-814 |
up?d |
341696 |
15884 |
562-588 |
up?e |
358112 |
55936 |
589-680 |
up?f |
414048 |
81312 |
681-814 |
up?g |
341696 |
153664 |
562-814 |
up?h |
49856 |
291346 |
82-561 |
- AMPEX Capricorn 330M drive
partitions
-
disk |
start |
length |
cyl |
hp?a |
0 |
15884 |
0-31 |
hp?b |
16384 |
33440 |
32-97 |
hp?c |
0 |
524288 |
0-1023 |
hp?d |
342016 |
15884 |
668-699 |
hp?e |
358400 |
55936 |
700-809 |
hp?f |
414720 |
109408 |
810-1023 |
hp?g |
342016 |
182112 |
668-1023 |
hp?h |
50176 |
291346 |
98-667 |
- FUJITSU 160M drive partitions
-
disk |
start |
length |
cyl |
up?a |
0 |
15884 |
0-49 |
up?b |
16000 |
33440 |
50-154 |
up?c |
0 |
263360 |
0-822 |
up?d |
49600 |
15884 |
155-204 |
up?e |
65600 |
55936 |
205-379 |
up?f |
121600 |
141600 |
380-822 |
up?g |
49600 |
213600 |
155-822 |
- FUJITSU Eagle partitions
-
disk |
start |
length |
cyls |
hp?a |
0 |
15884 |
0-16 |
hp?b |
16320 |
66880 |
17-86 |
hp?c |
0 |
808320 |
0-841 |
hp?d |
375360 |
15884 |
391-407 |
hp?e |
391680 |
55936 |
408-727 |
hp?f |
698880 |
109248 |
728-841 |
hp?g |
375360 |
432768 |
391-841 |
hp?h |
83520 |
291346 |
87-390 |
The up?a partition is normally used for the root file system, the up?b partition
as a paging area, and the up?c partition for pack-pack copying (it maps the
entire disk). On 160M drives the up?g partition maps the rest of the pack. On
other drives both up?g and up?h are used to map the remaining cylinders.
FILES
- /dev/up[0-7][a-h]
- block files
- /dev/rup[0-7][a-h]
- raw files
DIAGNOSTICS
- up%d%c: hard error %sing fsbn %d[-%d]
cs2=%b er1=%b er2=%b.
- An unrecoverable error occurred during transfer of the
specified filesystem block number(s), which are logical block numbers on
the indicated partition. The contents of the cs2, er1 and er2 registers
are printed in octal and symbolically with bits decoded. The error was
either unrecoverable, or a large number of retry attempts (including
offset positioning and drive recalibration) could not recover the
error.
- up%d: write locked.
- The write protect switch was set on the drive when a write
was attempted. The write operation is not recoverable.
- up%d: not ready.
- The drive was spun down or off line when it was accessed.
The I/O operation is not recoverable.
- up%d: not ready (flakey).
- The drive was not ready, but after printing the message
about being not ready (which takes a fraction of a second) was ready. The
operation is recovered if no further errors occur.
- up%d%c: soft ecc reading fsbn
%d[-%d].
- A recoverable ECC error occurred on the specified sector
of the specified disk partition. This happens normally a few times a week.
If it happens more frequently than this the sectors where the errors are
occurring should be checked to see if certain cylinders on the pack, spots
on the carriage of the drive or heads are indicated.
- sc%d: lost interrupt.
- A timer watching the controller detecting no interrupt for
an extended period while an operation was outstanding. This indicates a
hardware or software failure. There is currently a hardware/software
problem with spinning down drives while they are being accessed which
causes this error to occur. The error causes a UNIBUS reset, and retry of
the pending operations. If the controller continues to lose interrupts,
this error will recur a few seconds later.
SEE ALSO
vax/vax/hk(4),
vax/vax/hp(4),
vax/vax/uda(4)
HISTORY
The
up driver appeared in
4.0BSD.
BUGS
A program to analyze the logged error information (even in its present reduced
form) is needed.
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.