ipi(7D)
NAME
ipi, id, is, pn, ipi3sc − IPI driver
SYNOPSIS
pn@4d,0x1080000/ipi3sc@board-num,0/id@facility,0:partition
AVAILABILITY
SPARC
Only available on Sun-4/370, Sun-4/400, and SPARCsystem 600MP series systems.
DESCRIPTION
The driver for IPI disk devices consists of several components: an IPI controller driver (pn and ipi3sc), and a facility driver (id). Each of these driver modules may have an associated configuration file, which lives in the same directory as the driver module. See driver.conf(4) and vme(4) for the interpretation of the contents of these files.
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 that provides for direct transmission between the disk and the user’s read or write buffer. A single read or write call usually results in one I/O operation; therefore raw I/O is considerably more efficient when many words are transmitted. The physical names for the raw files conventionally have ‘,raw’ appended to them. The logical names for the raw files live in the /dev/rdsk directory, as usual.
In raw I/O, counts should be a multiple of 512 bytes (a disk sector). Likewise directory(3C) calls should specify a multiple of 512 bytes. Depending on the channel adaptor, the buffer for raw reads or writes may be required to be on a 2-byte or 4-byte boundary.
Partition 0 is normally used for the root file system on a disk, partition 1 as a paging area (for example, swap), and partition 2 for backing up the entire disk. Partition 2 normally maps the entire disk and may also be used as the mount point for secondary disks in the system. The rest of the disk is normally partition 6. For the primary disk, the user file system is located here.
The ioctl() interfaces described in dkio(7I) and hdio(7I) are supported by this driver. The HDKIOCSCMD ioctl can be used to issue certain IPI commands to the drive. The argument structure is:
struct hdk_cmd {
u_shorthdkc_cmd;/∗ command to be executed ∗/
inthdkc_flags;/∗ execution flags ∗/
daddr_thdkc_blkno;/∗ disk address for command ∗/
inthdkc_secnt;/∗ sector count for command ∗/
caddr_thdkc_bufaddr;/∗ user’s buffer address ∗/
u_inthdkc_buflen;/∗ size of user’s buffer ∗/
};
The lower 8-bits of the hdkc_cmd field indicate one of the supported commands listed below. The upper 8-bits indicate the IPI Opcode modifier. These commands are defined in <sys/ipi3sc.h>. Block numbers are not remapped by the partition map when these commands are used.
The supported commands are:
IP_READ
IP_WRITE Read or write data. The addressing is always by logical block (ignoring [a-h] logical partition information); the Opcode modifier is ignored.
IP_READ_DEFLIST
IP_WRITE_DEFLIST
Read or write one of the defect lists. The defect list is selected by the Opcode modifier in bits <15:8> of the hdkc_cmd.
IP_FORMAT Format a range of cylinders. For this command, the block number and sector count fields must both be a multiple of the number of blocks per cylinder. The hdk_buflen field must be zero for this command.
IP_REALLOC Reallocate a block. The controller attempts to recover the data from the old block being reallocated. If the old data cannot be recovered, a conditional success status is presented and a message may be printed. The hdk_buflen field must be zero for this command.
DISK SUPPORT
This driver handles all supported IPI drives by reading controller attributes and a label from sector 0 of the drive which describes the disk geometry and partitioning.
FILES
/kernel/drv/pn kernel module
/kernel/drv/ipi3sc kernel module
/kernel/drv/id kernel module
/kernel/drv/pn.conf
driver configuration file
/kernel/drv/ipi3sc.conf
driver configuration file
/kernel/drv/id.conf driver configuration file
/dev/dsk/cXtYd0sZ block files, controller X, facility Y, slice Z
/dev/rdsk/cXtYd0sZ
raw files, controller X, facility Y, slice Z
SEE ALSO
format(1M), mount(1M), directory(3C), driver.conf(4), vfstab(4), vme(4), dkio(7I), hdio(7I)
NOTES
The pn.conf and ipi3sc.conf files are only required on Sun-4/370 and Sun-4/490 systems.
SunOS 5.5/SPARC — Last change: 8 Oct 1992