.\" $NetBSD: rd.4,v 1.12 2009/04/12 16:43:05 wiz Exp $
.\"
.\" Copyright (c) 1990, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" the Systems Programming Group of the University of Utah Computer
.\" Science Department.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" from: @(#)rd.4 8.1 (Berkeley) 6/9/93
.\"
.Dd June 9, 1993
.Dt RD 4 hp300
.Os
.Sh NAME
.Nm rd
.Nd
.Tn CS/80
disk interface
.Sh SYNOPSIS
.Cd "rd* at hpibbus? slave?"
.Sh DESCRIPTION
This is a generic
.Tn CS/80
disk driver.
Only a small number of possible
.Tn 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
.Xr physio 4 .
.Pp
The script
.Xr MAKEDEV 8
should be used to create the
.Nm rd
special files; consult
.Xr mknod 8
if a special file needs to be made manually.
.Sh DISK SUPPORT
The driver interrogates the controller
to determine the type of drive attached.
The driver recognizes the following drives:
7912, 7914, 7933, 7936, 7937, 7945,
.Tn 757A/B ,
.Tn 7958A/B ,
.Tn 7959B ,
7962, 7963, 9122, 9134, 7912, 7936,
and 9122,
not all of which have been tested.
Special file names begin with
.Sq Li rd
and
.Sq Li 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
.Sq Li \&?
in the disk layouts below.
The last component of the name is the file system partition and is
designated by a letter from
.Sq Li a
to
.Sq Li 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
.Xr physio 4 ) .
The location and size (in sectors) of the
partitions for these drives:
.Bl -hang
.It Tn 7945/7946 No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 112 15904 1-142
.It rd?b 16016 20160 143-322
.It rd?c 0 108416 0-967
.It rd?d 16016 40320 143-502
.It rd?e undefined Ta "" Ta ""
.It rd?f undefined Ta "" Ta ""
.It rd?g 36176 72240 323-967
.It rd?h 56336 52080 503-967
.El
.It Tn 9134D No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 96 15936 1-166
.It rd?b 16032 13056 167-302
.It rd?c 0 29088 0-302
.It rd?d undefined Ta "" Ta ""
.It rd?e undefined Ta "" Ta ""
.It rd?f undefined Ta "" Ta ""
.It rd?g undefined Ta "" Ta ""
.It rd?h undefined Ta "" Ta ""
.El
.It Tn 9122S No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a undefined Ta "" Ta ""
.It rd?b undefined Ta "" Ta ""
.It rd?c 0 1232 0-76
.It rd?d undefined Ta "" Ta ""
.It rd?e undefined Ta "" Ta ""
.It rd?f undefined Ta "" Ta ""
.It rd?g undefined Ta "" Ta ""
.It rd?h undefined Ta "" Ta ""
.El
.It Tn 7912P No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 0 15904 0-70
.It rd?b 16128 22400 72-171
.It rd?c 0 128128 0-571
.It rd?d 16128 42560 72-261
.It rd?e undefined Ta "" Ta ""
.It rd?f undefined Ta "" Ta ""
.It rd?g 38528 89600 172-571
.It rd?h 58688 69440 262-571
.El
.It Tn 7914CT/P No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 224 15904 1-71
.It rd?b 16128 40320 72-251
.It rd?c 0 258048 0-1151
.It rd?d 16128 64960 72-361
.It rd?e 81088 98560 362-801
.It rd?f 179648 78400 802-1151
.It rd?g 56448 201600 252-1151
.It rd?h 81088 176960 362-1151
.El
.It Tn 7958A No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 252 16128 1-64
.It rd?b 16380 32256 65-192
.It rd?c 0 255276 0-1012
.It rd?d 16380 48384 65-256
.It rd?e 64764 100800 257-656
.It rd?f 165564 89712 657-1012
.It rd?g 48636 206640 193-1012
.It rd?h 64764 190512 257-1012
.El
.It Tn 7957A No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 154 16016 1-104
.It rd?b 16170 24640 105-264
.It rd?c 0 159544 0-1035
.It rd?d 16170 42350 105-379
.It rd?e 58520 54824 380-735
.It rd?f 113344 46200 736-1035
.It rd?g 40810 118734 265-1035
.It rd?h 58520 101024 380-1035
.El
.It Tn 7933H No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 598 16146 1-27
.It rd?b 16744 66976 28-139
.It rd?c 0 789958 0-1320
.It rd?d 83720 16146 140-166
.It rd?e 99866 165646 167-443
.It rd?f 265512 165646 444-720
.It rd?g 83720 706238 140-1320
.It rd?h 431158 358800 721-1320
.El
.It Tn 9134L No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 80 15920 1-199
.It rd?b 16000 20000 200-449
.It rd?c 0 77840 0-972
.It rd?d 16000 32000 200-599
.It rd?e undefined Ta "" Ta ""
.It rd?f undefined Ta "" Ta ""
.It rd?g 36000 41840 450-972
.It rd?h 48000 29840 600-972
.El
.It Tn 7936H No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 861 16359 1-19
.It rd?b 17220 67158 20-97
.It rd?c 0 600978 0-697
.It rd?d 84378 16359 98-116
.It rd?e 100737 120540 117-256
.It rd?f 220416 120540 256-395
.It rd?g 84378 516600 98-697
.It rd?h 341817 259161 397-697
.El
.It Tn 7937H No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 1599 15990 1-10
.It rd?b 17589 67158 11-52
.It rd?c 0 1116102 0-697
.It rd?d 84747 15990 53-62
.It rd?e 100737 246246 63-216
.It rd?f 346983 246246 217-370
.It rd?g 84747 1031355 53-697
.It rd?h 593229 522873 371-697
.El
.It Tn 7957B/7961B No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 126 16002 1-127
.It rd?b 16128 32760 128-387
.It rd?c 0 159894 0-1268
.It rd?d 16128 49140 128-517
.It rd?e 65268 50400 518-917
.It rd?f 115668 44226 918-1268
.It rd?g 48888 111006 388-1268
.It rd?h 65268 94626 518-1268
.El
.It Tn 7958B/7962B No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 378 16254 1-43
.It rd?b 16632 32886 44-130
.It rd?c 0 297108 0-785
.It rd?d 16632 49140 44-173
.It rd?e 65772 121716 174-495
.It rd?f 187488 109620 496-785
.It rd?g 49518 247590 131-785
.It rd?h 65772 231336 174-785
.El
.It Tn 7959B/7963B No partitions :
.Bl -column diskx undefined length "xxx-yyyy" -compact
.It Sy disk start length cyls
.It rd?a 378 16254 1-43
.It rd?b 16632 49140 44-173
.It rd?c 0 594216 0-1571
.It rd?d 16632 65772 44-217
.It rd?e 82404 303912 218-1021
.It rd?f 386316 207900 1022-1571
.It rd?g 65772 528444 174-1571
.It rd?h 82404 511812 218-1571
.El
.El
.Pp
The eight partitions as given support four basic, non-overlapping layouts,
though not all partitions exist on all drive types.
.Pp
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
.Pa rd?a
partition is for the root file system,
.Pa rd?b
is a paging/swapping area, and
.Pa rd?g
is for everything else.
.Pp
The second layout is the same idea,
but has a larger paging/swapping partition
.Pq Pa rd?d
and
a smaller ``everything else'' partition
.Pq Pa rd?h .
This layout is better for environments which run many large processes.
.Pp
The third layout is a variation of the second,
but breaks the
.Pa rd?h
partition into two partitions,
.Pa rd?e
and
.Pa rd?f .
.Pp
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.
.Sh FILES
.Bl -tag -width /dev/rrd[0-7][a-h] -compact
.It Pa /dev/rd[0-7][a-h]
block files
.It Pa /dev/rrd[0-7][a-h]
raw files
.El
.Sh DIAGNOSTICS
.Bl -diag
.It "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.
.El
.Sh BUGS
The current disk partitioning is totally bogus.
.Tn CS/80
drives have 256 byte sectors which are mapped to 512 byte
``sectors'' by the driver.
Since some
.Tn CS/80
drives have an odd number of sectors per cylinder,
the disk geometry used is not always accurate.
.Pp
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.
.Pp
A program to analyze the logged error information (even in its
present reduced form) is needed.