XY(4S)

NAME
xy - Disk driver for Xylogics 450 and 451 SMD Disk Controllers

CONFIG — SUN-3, SUN-3x, SUN-4 SYSTEMS
controller xyc0 at vme16d16 ? csr 0xee40 priority 2 vector xyintr 0x48
controller xyc1 at vme16d16 ? csr 0xee48 priority 2 vector xyintr 0x49
disk xy0 at xyc0 drive 0
disk xy1 at xyc0 drive 1
disk xy2 at xyc1 drive 0
disk xy3 at xyc1 drive 1

The two controller lines given in the synopsis sections above specify the first and second Xylogics 450 or 451 SMD disk controller in a Sun system.

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

When using raw I/O, transfer counts should be multiples of 512 bytes (the size of a disk sector). Likewise, when using lseek(2V) to specify block offsets from which to perform raw I/O, the logical offset should also be a multiple of 512 bytes.

Due to word ordering differences between the disk controller and Sun computers, user buffers that are used for raw I/O must not begin on odd byte boundaries.

If flags 0x1 is specified, the overlapped seeks feature for that drive is turned off. Note: to be effective, the flag must be set on all drives for a specific controller. This action is necessary for controllers with older firmware, which have bugs preventing overlapped seeks from working properly.

DISK SUPPORT
This driver handles all SMD drives by reading a label from sector 0 of the drive which describes the disk geometry and partitioning.

The xy?a partition is normally used for the root file system on a disk, the xy?b partition as a paging area, and the xy?c partition for pack-pack copying (it normally maps the entire disk). The rest of the disk is normally the xy?g partition.

FILES
/dev/xy[0-7][a-h]
    block files
/dev/rxy[0-7][a-h]
    raw files

SEE ALSO
lseek(2V), read(2V), directory(3V), write(2V), dkio(4S)

DIAGNOSTICS

xycn : self test error
    Self test error in controller, see the Maintenance and Reference Manual.

xycn: WARNING: n bit addresses
    The controller is strapped incorrectly. Sun systems use 20-bit addresses for Multibus based systems and 24-bit addresses for VMEbus based systems.

xyn : unable to read bad sector info
    The bad sector forwarding information for the disk could not be read.

xyn and xyn are of same type (n) with different geometries.
    The 450 and 451 do not support mixing the drive types found on these units on a single controller.

xyn : initialization failed
    The drive could not be successfully initialized.

xyn : unable to read label
    The drive geometry/partition table information could not be read.

xyn : Corrupt label
    The geometry/partition label checksum was incorrect.

xyn : 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.

xync: 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”, “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(2V) should always deal in 512-byte multiples.

Older revisions of the firmware do not properly support overlapped seeks. This will only affect systems with multiple disks on a single controller. If a large number of “zero sector count” errors appear, you should use the flags field to disable overlapped seeks.