XD(4S) — DEVICES AND NETWORK INTERFACES
NAME
xd − Disk driver for Xylogics 753_SMD/SV-{67}00_IPI Disk Controller
CONFIG
controllerxdc0 at vme16d16 ? csr 0xee80
dma vme24d32_blk priority 2 vector xdintr 0x44
controllerxdc1 at vme16d16 ? csr 0xee90
dma vme24d32_blk priority 2 vector xdintr 0x45
controllerxdc2 at vme16d16 ? csr 0xeea0
dma vme24d32_blk priority 2 vector xdintr 0x46
controllerxdc3 at vme16d16 ? csr 0xeeb0
dma vme24d32_blk priority 2 vector xdintr 0x47
diskxd0 at xdc0 drive 0
diskxd1 at xdc0 drive 1
diskxd2 at xdc0 drive 2
diskxd3 at xdc0 drive 3
diskxd4 at xdc1 drive 0
diskxd5 at xdc1 drive 1
diskxd6 at xdc1 drive 2
diskxd7 at xdc1 drive 3
diskxd8 at xdc2 drive 0
diskxd9 at xdc2 drive 1
diskxd10 at xdc2 drive 2
diskxd11 at xdc2 drive 3
diskxd12 at xdc3 drive 0
diskxd13 at xdc3 drive 1
diskxd14 at xdc3 drive 2
diskxd15 at xdc3 drive 3
The four controller lines given in the synopsis section above specify the first, second, third, and fourth Xylogics 753 SMD disk controller in a Solbourne system. Each SMD controller supports 4 disks. The same lines are also used to configure the Xylogics SV-{67}00 IPI controller. The SV-6800 supports a single IPI channel capable of controlling 8 disks. The SV-7800 supports two IPI channels for a total of 16 disks per controller. On the SV-7800 drives are interleaved across the channels to maintain balance: drive 0 is unit 0 on channel 0, drive 1 is unit 0 on channel 1.
DESCRIPTION
Files with minor device numbers 0 through 7 refer to various portions of drive 0; minor devices 8 through 15 refer to drive 1, and so on. The standard device names begin with xd followed by the drive number and then a letter a-h for partitions 0-7 respectively. The character ? stands here for a drive number in the range 0-7.
The block files access the disk using the system’s normal buffering mechanism and may be read and written without regard to physical disk records. There is also a “raw” interface which provides for direct transmission between the disk and the user’s read or write buffer. A single read or write call usually results in only one I/O operation; therefore raw I/O is considerably more efficient when many words are transmitted. The names of the raw files conventionally begin with an extra r.
In raw I/O counts should be a multiple of 512 bytes (a disk sector). Likewise directory(3) calls should specify a multiple of 512 bytes.
DISK SUPPORT
This driver handles all SMD and IPI drives by reading a label from sector 0 of the drive which describes the disk geometry and partitioning.
The xd?a partition is normally used for the root file system on a disk, the xd?b partition as a paging area, and the xd?c partition for pack-pack copying (it normally maps the entire disk). The rest of the disk is normally the xd?g partition.
FILES
/dev/xd[0-7][a-h] block files
/dev/rxd[0-7][a-h] raw files
SEE ALSO
lseek(2), read(2V), write(2V), directory(3), dkio(4S)
DIAGNOSTICS
xdcn: self test error
Self test error in controller, see the Maintenance and Reference Manual.
xdn: unable to read bad sector
The bad sector forwarding information for the disk could not be read.
xdn: initialization failed
The drive could not be successfully initialized.
xdn: unable to read label
The drive geometry/partition table information could not be read.
xdn: Corrupt label
The geometry/partition label checksum was incorrect.
xdn: offline
A drive ready status is no longer detected, so the unit has been logically removed from the system. If the drive ready status is restored, the unit will automatically come back online the next time it is accessed.
xdnc: cmd how (msg) blk #n abs blk #n
A command such as read or write encountered an error condition (how): either it failed, the controller was reset, the unit was restored, or an operation was retry’ed. The msg is derived from the error number given by the controller, indicating a condition such as “drive not ready(rq, “sector not found” or “disk write protected”. The blk # is the sector in error relative to the beginning of the partition involved. The abs blk # is the absolute block number of the sector in error. Some fields of the error message may be missing since the information is not always available.
BUGS
In raw I/O read(2V) and write(2V) truncate file offsets to 512-byte block boundaries, and write(2V) scribbles on the tail of incomplete blocks. Thus, in programs that are likely to access raw devices, read(2V), write(2V) and lseek(2) should always deal in 512-byte multiples.
Solbourne Computer, Inc. — 20 Dec 1990