|
|
1.1 root 1: .TH VDDC 4 "15 May 1984"
2: .UC 4
3: .SH NAME
1.1.1.2 ! root 4: vddc / (fsd, smd, xfd, fuj, xsd) \- versabus storage module controller/drives
1.1 root 5: .SH SYNOPSIS
1.1.1.2 ! root 6: .B "VDDC controller at vba addresses 0xf2[0-7]00"
1.1 root 7: .br
8: .B "160 Mb FSD "
9: .br
10: .B "300 Mb SMD "
11: .br
12: .B "340 Mb XFD "
13: .br
14: .B "360 Mb FUJ "
15: .br
1.1.1.2 ! root 16: .B "515 Mb XSD "
1.1 root 17: .SH DESCRIPTION
18: This is a generic VERSABUS storage module disk driver for CCI's VDDC
19: controller.
20: .PP
21: Files with minor device numbers 0 through 7 refer to various portions
22: of drive 0;
23: minor devices 8 through 15 refer to drive 1, etc.
24: The standard device names begin with `fsd, `smd', `fuj', `xfd',
25: or `xfd' followed by
26: the drive number and then a letter a-h for partitions 0-7 respectively.
1.1.1.2 ! root 27: The character ? stands here for a drive number in the range 0 - 1f (hex).
1.1 root 28: .PP
29: The block files access the disk via the system's normal
30: buffering mechanism and may be read and written without regard to
31: physical disk records. There is also a `raw' interface
32: which provides for direct transmission between the disk
33: and the user's read or write buffer.
34: A single read or write call results in exactly one I/O operation
35: and therefore raw I/O is considerably more efficient when
36: many words are transmitted. The names of the raw files
37: conventionally begin with an extra `r.'
38: .PP
1.1.1.2 ! root 39: In raw I/O counts should be a multiple of 1024 bytes (a disk block).
1.1 root 40: Likewise
41: .I seek
1.1.1.2 ! root 42: calls should specify a multiple of 1024 bytes.
1.1 root 43: .SH "DISK SUPPORT"
44: The driver tries to access the last track on each drive
45: to determine the type of drive attached. The driver recognizes
46: five different drives: CDC FSD (160 Mb), CDC 9766 (300 Mb),
1.1.1.2 ! root 47: CDC XFSD (340 Mb), CDC 515Mb, and Fujitsu 360 Mb.
1.1 root 48: The origin and size of the pseudo-disks on each drive are
49: as follows:
50: .PP
51: .nf
52: .ta .5i +\w'000000 'u +\w'000000 'u +\w'000000 'u
53: FSD 160Mb drive partitions:
54: disk start length cyl
55: fsd?a 0 9600 0 - 59
56: fsd?b 9600 12000 60 - 134
57: fsd?c 21600 109280 135 - 817
1.1.1.2 ! root 58: fsd?d 39840 91040 249 - 817
! 59: fsd?e 58080 72800 363 - 817
! 60: fsd?f 76320 54560 477 - 817
! 61: fsd?g 94560 36320 591 - 817
! 62: fsd?h 112800 18080 705 - 817
1.1 root 63: .PP
64: SMD (CDC 9766) 300Mb drive partitions:
65: disk start length cyl
66: smd?a 0 20064 0 - 65
67: smd?b 20064 13680 66 - 110
68: smd?c 33744 214928 111 - 817
1.1.1.2 ! root 69: smd?d 69616 179056 229 - 817
! 70: smd?e 105488 143184 347 - 817
! 71: smd?f 141360 107312 465 - 817
! 72: smd?g 177232 71440 583 - 817
! 73: smd?h 213104 35568 701 - 817
1.1 root 74: .PP
75: XFD 340Mb drive partitions:
76: disk start length cyl
77: xfd?a 0 20352 0 - 52
78: xfd?b 20352 20352 53 - 105
79: xfd?c 40704 230400 106 - 705
1.1.1.2 ! root 80: xfd?d 79104 192000 206 - 705
! 81: xfd?e 117504 153600 306 - 705
! 82: xfd?f 155904 115200 406 - 705
! 83: xfd?g 194304 76800 506 - 705
! 84: xfd?h 232704 38400 606 - 705
1.1 root 85: .PP
86: FUJ 360Mb drive partitions:
87: disk start length cyl
88: fuj?a 0 19200 0 - 59
89: fuj?b 19200 24000 60 - 134
90: fuj?c 43200 218560 135 - 817
1.1.1.2 ! root 91: fuj?d 79680 182080 249 - 817
! 92: fuj?e 116160 145600 363 - 817
! 93: fuj?f 152640 109120 477 - 817
! 94: fuj?g 189120 72640 591 - 817
! 95: fuj?h 225600 36160 705 - 817
1.1 root 96: .PP
97: XSD 515Mb drive partitions:
98: disk start length cyl
99: xsd?a 0 30528 0 - 52
100: xsd?b 30528 30528 53 - 105
101: xsd?c 61056 345600 106 - 705
1.1.1.2 ! root 102: xsd?d 118656 288000 206 - 705
! 103: xsd?e 176256 230400 306 - 705
! 104: xsd?f 233856 172800 406 - 705
! 105: xsd?g 291456 115200 506 - 705
! 106: xsd?h 349056 57600 606 - 705
1.1 root 107: .fi
108: .PP
1.1.1.2 ! root 109: It is unwise for all of these partitions to be present in one installation,
1.1 root 110: since there is overlap in addresses and protection becomes
111: a sticky matter.
112: The ?a partition is normally used for the root file system,
113: and the ?b partition as a paging area.
114: The ?c partition maps the rest of the pack,
1.1.1.2 ! root 115: except the last 5 cylinders which are reserved for bad sector forwarding,
1.1 root 116: and diagnostic use.
117: .SH FILES
118: /dev/fsd[0-7][a-f] fsd block files
119: .br
120: /dev/rfsd[0-7][a-f] fsd raw files
121: .br
122: /dev/smd[0-7][a-f] smd block files
123: .br
124: /dev/rsmd[0-7][a-f] smd raw files
125: .br
126: /dev/xfd[0-7][a-f] xfd block files
127: .br
128: /dev/rxfd[0-7][a-f] xfd raw files
129: .br
130: /dev/fuj[0-7][a-f] fuj block files
131: .br
132: /dev/rfuj[0-7][a-f] fuj raw files
133: .br
134: /dev/xsd[0-7][a-f] xsd block files
135: .br
136: /dev/rxsd[0-7][a-f] xsd raw files
137: .br
138: .SH SEE ALSO
139: disktab(5)
140: .SH DIAGNOSTICS
141: The driver prints out a number of error messages, indicating that
142: the error bit in the DCB'c op error status register was set.
143: The contents of the register are printed, as well as an indication
144: of the operation attempted and drive number.
1.1.1.2 ! root 145: The status word is displayed in hexadecimal, so
! 146: conversion to binary is up to the operator.
! 147: The meaning of the status word's bit fields are:
! 148: .sp 1
! 149: .in +3m
! 150: .nf
! 151: 31 0
! 152: +--------------------------------+
! 153: ||||||||||||||||||||||||||||||||||
! 154: +--------------------------------+
! 155: ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
! 156: ||||| |||||||||||||||||||||||||+-- Header CRC error detected.
! 157: ||||| ||||||||||||||||||||||||+--- Header compare error.
! 158: ||||| |||||||||||||||||||||||+---- Disk write protected.
! 159: ||||| ||||||||||||||||||||||+----- Controller fault.
! 160: ||||| |||||||||||||||||||||+------ Disk seek error.
! 161: ||||| ||||||||||||||||||||+------- Uncorrectable data error.
! 162: ||||| |||||||||||||||||||+-------- Disk not on cylinder.
! 163: ||||| ||||||||||||||||||+--------- Disk drive not ready.
! 164: ||||| |||||||||||||||||+---------- Alternate track accessed.
! 165: ||||| ||||||||||||||||+----------- Seek started.
! 166: ||||| |||||||||||||||+------------ Invalid disk address issued.
! 167: ||||| ||||||||||||||+------------- Non-existent memory error.
! 168: ||||| |||||||||||||+-------------- Main memory parity error.
! 169: ||||| ||||||||||||+--------------- Data compare error.
! 170: ||||| |||||||||||+---------------- Drive is ready.
! 171: ||||| ||||||||||+----------------- Operation aborted.
! 172: ||||| |||||||||+------------------ Tried data strobe early.
! 173: ||||| ||||||||+------------------- Tried data strobe late.
! 174: ||||| |||||||+-------------------- Tried track offset plus.
! 175: ||||| ||||||+--------------------- Tried track offset minus.
! 176: ||||| |||||+---------------------- Controller performed data correction.
! 177: ||||| ||||+----------------------- Uncorrected error happened (hard).
! 178: ||||| |||+------------------------ Corrected error happened (soft).
! 179: ||||| ||+------------------------- An error happened (hard or soft).
! 180: ||||| |+-------------------------- Invalid command.
! 181: ||||+-+--------------------------- unused.
! 182: |||+------------------------------ DCB aborted by system.
! 183: ||+------------------------------- Unsuccessful completion.
! 184: |+-------------------------------- DCB completed.
! 185: +--------------------------------- DCB started.
! 186: .fi
! 187: .in -3m
! 188: .PP
! 189: In addition, if the controller is an SMD-E controller then an error code
! 190: will also be printed. The error codes are:
! 191: .sp 1
! 192: .in +3m
! 193: .nf
! 194: \fICode\fP \fIMeaning\fP
! 195:
! 196: \fICommand related errors\fP:
! 197:
! 198: 01 Bad MDCB pointer
! 199: 02 Bad DCB pointer
! 200: 03 Invalid command
! 201: 04 Invalid disk address
! 202: 05 Invalid sector in command
! 203: 06 Gap specification error
! 204: 07 sector per track error
! 205: 08 bytes per sector error
! 206: 09 Interleave error
! 207: 0A Invalid head address
! 208: 0B Invalid DMA burst count
! 209: 0C Invalid sector count
! 210: 0D Drive number out of range
! 211: 0E Too many total sectors
! 212:
! 213:
! 214: \fIHard errors\fP:
! 215:
! 216: 10 Disk not ready
! 217: 11 Seek error
! 218: 12 Disk write protected
! 219: 13 Unit not selected (command sent to non-existent drive)
! 220: 14 Seek error timeout
! 221: 15 Fault timeout
! 222: 16 Drive faulted
! 223: 17 Ready timeout
! 224: 18 Data Overrun
! 225: 19 No index pulse on write format
! 226: 1A Sector not found
! 227: 1B Retry performed - Soft error
! 228: 1C Invalid sync in data field
! 229: 1D seek timeout error
! 230: 1E Busy timeout
! 231: 1F Not on cylinder
! 232: 20 RTZ timeout
! 233: 21 Unit not initialized
! 234: 22 Seek error
! 235: 23 Mapped header error
! 236: 24 Header error - Sync word bad
! 237: 25 Header error - Wrong cylinder address
! 238: 26 Header error - Wrong head address
! 239: 27 Header error - Pad word bad
! 240: 28 Sector write protected
! 241: 2A Header check sum error
! 242: 2B Alternate track accessed
! 243: 2C Read time-out error
! 244: 2D On-cylinder timeout during offset adjust
! 245: 2E Good header found on defective track
! 246:
! 247:
! 248: \fIDMA transfer errors\fP
! 249:
! 250: 30 DMA bus error
! 251: 31 DMA parity error
! 252: 32 DMA timeout
! 253:
! 254:
! 255: \fIMiscellaneous errors\fP:
! 256:
! 257: 40 Track offset minus
! 258: 41 Track offset plus
! 259: 42 Data strobe early
! 260: 43 Data strobe late
! 261: 44 Drive ready
! 262: 45 Data compare error
! 263: 47 Alternate track accessed
! 264: 48 Header CRC error
! 265: 49 Uncorrectable error
! 266: 4A ECC code error - data field code
! 267: 4B Abort
! 268: 4C Out of buffer space
! 269: 4D Controller performed data correction
! 270: 4E Alternate track accessed
! 271:
! 272:
! 273: \fIPOC related errors\fP
! 274:
! 275: 50 - 53 Buffer RAM error (banks 0 - 3)
! 276: 54 - 57 Buffer RAM clear error (banks 0 - 3)
! 277: 58 - 5B Event RAM Error (banks 0 - 3)
! 278: 5C - 5F Event RAM clear error (banks 0 - 3)
! 279: 60 ROM CRC error
! 280: 61 Timer short error
! 281: 62 Shared RAM error
! 282: 63 Shared RAM clear error
! 283: 64 Illegal interupt or exception
! 284: 65 Disk sequencer did not initialize
! 285: 66 Restart FF did not initialize
! 286: 67 Data parity error FF did not initialize
! 287: 68 Versabus error FF did not initialize
! 288: 69 Unit select panel did not clear
! 289: 6A Versabus interupt pending FF did not clear
! 290: 6B Restart interupt FF did not init
! 291: 6C Timer long error
! 292:
! 293: 70 DMA gate array init started
! 294: 71 ROM CRC test started
! 295: 72 Local RAM test started
! 296: 73 Buffer RAM test started
! 297: 74 Event RAM test started
! 298: 75 SERDES gate array init started
! 299:
! 300:
! 301: \fIIllegal interupts or exceptions\fP
! 302:
! 303: 80 Bus error
! 304: 81 Address error
! 305: 82 Illegal instruction
! 306: 83 Divide by zero
! 307: 84 CHK instruction
! 308: 85 TRAPV instruction
! 309: 86 Privileged instruction
! 310: 87 Trace trap
! 311: 88 Line 1010 emulator
! 312: 89 Line 1111 emulator
! 313: 8A - 8C Reserved (1 - 3)
! 314: 8D Uninitialized interupt
! 315: 8E Reserved 4
! 316: 8F Spurious interupt
! 317: 91 - 97 "Hot" interupts on lines 1 - 7
! 318:
! 319: .fi
! 320: .in -3m
1.1 root 321: .SH BUGS
322: .I write
323: scribbles on the tail of incomplete blocks.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.