1XP(4) Kernel Interfaces Manual XP(4)
2
3
4
6 xp - generic SMD moving-head disk
7
9 /sys/conf/SYSTEM:
10 NXPC xp_controllers # Number of controllers
11 NXPD xp_drives # RM02/03/05, RP04/05/06,
12 # CDC 9766, Fuji 160, etc.
13 BADSECT NO # Bad sector handling (see BUGS)
14
15 /etc/dtab:
16 #Name Unit# Addr Vector Br Handler(s) # Comments
17 xp ? 176700 254 5 xpintr # xp driver
18
19 major device number(s):
20 raw: 19
21 block: 10
22 minor device encoding:
23 bits 0007 specify partition of XP drive
24 bits 0370 specify XP drive
25
27 The xp driver is a generic SMD storage module disk driver. It can be
28 adapted to most SMD controllers although bootstrapping will not neces‐
29 sarily be directly possible. The drives are numbered from 0 to n on
30 controller 0, from n+1 to m on controller 1, etc. The drives may have
31 different geometries.
32
33 The xp driver is unique amoungst 2BSD drivers in its numbering of
34 drives. Other drivers (ra for example) number drives 0 thru 7 on con‐
35 troller 1, 8 thru 15 on controller 2 and so on. xp on the other hand
36 can have drives 0 and 1 on controller 1, drives 2, 3, 4 and 5 on con‐
37 troller 2 and drives 6, 7 and 8 on controller 3. This is different
38 from boot's view of the world, so if you are booting from other than
39 unit 0 you may have to experiment a bit.
40
41 Files with minor device numbers 0 through 7 refer to various portions
42 of drive 0; minor devices 8 through 15 refer to drive 1, etc. The
43 standard device names begin with ``xp'' followed by the drive number
44 and then a letter a-h for partitions 0-7 respectively. The character ?
45 stands here for a drive number in the range 0-7.
46
47 The block files access the disk via the system's normal buffering mech‐
48 anism and may be read and written without regard to physical disk
49 records. There is also a `raw' interface which provides for direct
50 transmission between the disk and the user's read or write buffer. A
51 single read or write call results in exactly one I/O operation and
52 therefore raw I/O is considerably more efficient when many words are
53 transmitted. The names of the raw files conventionally begin with an
54 extra `r.'
55
56 In raw I/O the buffer must begin on a word (even) boundary, and counts
57 should be a multiple of 512 bytes (a disk sector). Likewise lseek
58 calls should specify a multiple of 512 bytes.
59
61 Disks must be labeled using either the standalone disklabel program on
62 the boot tape or with the disklabel(8) program. The kernel no longer
63 attempts to determine the drive type and geometry, instead reading this
64 information from the disklabel. There are no partition tables coded
65 into the xp driver, these must be placed on the drive with disklabel.
66
67 Special files should only be created for the partitions that are actu‐
68 ally used, as the overlap in these addresses could lead to confusion
69 otherwise. Traditionally the xp?a partition is normally used for the
70 root file system, the xp?b partition as a swap area, and the xp?c par‐
71 tition for pack-pack copying (it maps the entire disk).
72
74 /dev/xp[0-7][a-h] block files
75 /dev/rxp[0-7][a-h] raw files
76 /dev/MAKEDEV script to create special files
77 /dev/MAKEDEV.local script to localize special files
78
80 hk(4), ra(4), ram(4), rk(4), rl(4), rp(4), rx(4), si(4), dtab(5), auto‐
81 config(8), newfs(8)
82
84 xp%d%c: hard error sn%d cs2=%b er1=%b. An unrecoverable error occurred
85 during transfer of the specified sector of the specified disk parti‐
86 tion. The contents of the two error registers are also printed in
87 octal and symbolically with bits decoded. The error was either unre‐
88 coverable, or a large number of retry attempts (including offset posi‐
89 tioning and drive recalibration) could not recover the error.
90
91 xp%d: write locked. The write protect switch was set on the drive when
92 a write was attempted. The write operation is not recoverable.
93
94 xp%d%c: soft ecc sn%d. A recoverable ECC error occurred on the speci‐
95 fied sector of the specified disk partition. This happens normally a
96 few times a week. If it happens more frequently than this the sectors
97 where the errors are occurring should be checked to see if certain
98 cylinders on the pack, spots on the carriage of the drive or heads are
99 indicated.
100
101 xp%d: unknown device type 0%o. The number in the drive's drive type
102 register is unknown to the xp driver.
103
105 In raw I/O read and write(2) truncate file offsets to 512-byte block
106 boundaries, and write scribbles on the tail of incomplete blocks.
107 Thus, in programs that are likely to access raw devices, read, write
108 and lseek(2) should always deal in 512-byte multiples.
109
110 DEC-standard error logging should be supported.
111
112 The kernel uses partition 'h' to access the badblock information. This
113 should have been 'c' except that almost all of the /etc/disktab entries
114 (and thus existing systems) use 'h' for this purpose. Unless you are
115 very careful with disklabel|(8) (to make certain that no data partition
116 overlaps the badblock area) you should probably leave BADSECT undefined
117 in the kernel config file.
118
119
120
1213rd Berkeley Distribution August 14, 1995 XP(4)