RD(4) (HP300)

RD(4) | Kernel Interfaces Manual (HP300) | RD(4)

# NAME

rd — CS/80 disk interface

# SYNOPSIS

rd* at hpibbus? slave?

# DESCRIPTION

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.

# 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, 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.

# FILES

/dev/rd[0-7][a-h]
  block files
/dev/rrd[0-7][a-h]
  raw files

# DIAGNOSTICS

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.

# BUGS

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.

June 9, 1993 | NetBSD 7.0