June 9, 1993 RD 4 hp300

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