XP(4) — UNIX Programmer’s Manual
NAME
xp − Xylogics 450 MULTIBUS disk interface
SYNOPSIS
controller xy0 at mbad? csr 0x0100 maps 34 bin 5 intr 0
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, etc. The standard device names begin with “xp” 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 various controllers are referred to as “xy” followed by the controller number.
The block file’s access the disk via 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 results in exactly one I/O operation and 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 lseek(2) calls should specify a multiple of 512 bytes.
You should specify at least 12 maps in the config(1) file for each MULTIBUS disk controller. The MULTIBUS disk controllers must be strapped for 24-bit operation.
BINARY CONFIGURATION
When building a kernel with MULTIBUS disk, be sure that the binary configuration information in /sys/conf/conf_xp.c is up to date. The constants and variables defined in conf_xp.c include:
XPCTLRThe maximum number of controllers supported by the driver.
MAXBUFSIZEThe maximum buffer size for ioctl system calls (probably shouldn’t be changed).
eagle_sizePartition tables for the Fujitsu Eagle disk drive.
cdc9766_sizePartition tables for the CDC 9766 disk drive.
cdc9762_sizePartition tables for the CDC 9762 disk drive.
xpstThis is an array indexed by drive type. It probably should not be changed.
xpunitsThis array describes the controller and transport assignments that will be supported by the system. Typically this describes wildcarding across all drive and controller combinations (forcing the device driver to probe each controller to find which disk drives are physically present). It is indexed by the drive field of the minor device number. As a common example, the following xpunits configuration declares that we hope to find four Fujitsu Eagles in our system, and that they may appear on any xy controller:
structxp_unitxpunits[] = {
/∗ ctlrdrivepartn tablesctlr info ∗/
{ ANY,ANY,&xpst[XPST_EAGLE],0 },/∗ any ctlr, any drive ∗/
{ ANY,ANY,&xpst[XPST_EAGLE],0 },/∗ any ctlr, any drive ∗/
{ ANY,ANY,&xpst[XPST_EAGLE],0 },/∗ any ctlr, any drive ∗/
{ ANY,ANY,&xpst[XPST_EAGLE],0 },/∗ any ctlr, any drive ∗/
};
xpmaxretryThe maximum number of times to retry errors.
DISK SUPPORT
The driver supports the Fujitsu 2351A “Eagle” disk drive. Other drives may be added to the configuration tables. The origin and size (in sectors) of the partitions on each drive are as follows:
Fujitsu “Eagle” partitions
diskstartlengthcyls
xp?a 0 15884 0 - 16
xp?b 16560 66880 18 - 90
xp?c 0774640 0 - 841
xp?d375360 15884408 - 425
xp?e408960307200426 - 759
xp?f699200 72680760 - 838
xp?g375360396520408 - 838
xp?h 93720291346 91 - 407
It is unwise for all of these files to be present in one installation, since there is overlap in addresses and protection becomes a sticky matter. The xp?a partition is normally used for the root file system, the xp?b partition as a paging area, and the xp?c partition for pack-to-pack copying and manipulating the bad block information, as it maps the entire disk. Except for the xp?c partition, the last three cylinders are reserved for diagnostics and bad block information.
FILES
/dev/xp[0-7][a-h]block files
/dev/rxp[0-7][a-h]raw files
/sys/conf/conf_xp.cbinary configuration file
DIAGNOSTICS
xpnp soft error, compcode=0xnn error description. The MULTIBUS disk device driver encountered a soft error on the specified operation, and will try the operation again. This message is accompanied by the following lines:
filesystem blkno = nnnn
(for addbad) physical sector = mmmm
(for xpformat) cylinder = cc; head = hh; sector = ss
If you see several soft errors at the same disk sector, you should run diagnostics on the disk, and use the DYNIX addbad(8) command to add the sector to the disk’s bad-sector list.
xpnp HARD ERROR, compcode=0xnn error description. The MULTIBUS disk device driver gave up on the specified operation after retrying it a predefined number of times and receiving a soft error on each try. You will need to use the DYNIX addbad(8) command to add the specified sector to the disk’s bad-sector list.
During autoconfiguration, a message will appear on the console indicating the type of drive that was recognized. For example:
xp%d at xy%d drive %d: Eagle
SEE ALSO
BUGS
In raw I/O read and write(2) truncate file offsets to 512-byte block boundaries, and write scribbles on the tail of incomplete blocks. Thus, in programs that are likely to access raw devices, read, write and lseek(2) should always deal in 512-byte multiples.
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.
Currently, DYNIX will not be able to boot if there is an unformatted disk drive on any configured disk controller. It is sufficient to power off the disk drive in order to boot.
DYNIX