1.\" Copyright (c) 1983, 1991, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" %sccs.include.redist.man% 5.\" 6.\" @(#)ik.4 8.1 (Berkeley) 06/05/93 7.\" 8.Dd 9.Dt IK 4 10.Os BSD 4.2 11.Sh NAME 12.Nm ik 13.Nd Evans and Sutherland Picture System 300 graphics device interface 14.Sh SYNOPSIS 15.Cd "device ik0 at vba? csr 0xfffb100 vector ikintr" 16.Sh DESCRIPTION 17The 18.Nm ik 19driver provides access 20to an Evans and 21Sutherland Picture System 300 through an Ikon 22.Tn DR-11W 23interface card. 24Each two minor device numbers are a different 25.Tn PS300 ; 26within a pair of device numbers the odd valued 27device is used for ``diagnostic'' purposes. That is, 28for even numbered minor devices, opening the device results 29in a 30.Tn PS300 31``attach'' request being performed while for 32odd numbered minor devices the attach request is not performed. 33.Pp 34All operations between the host and the 35.Tn PS300 36utilize 37.Tn DMA . 38The driver currently supports only physical 39.Tn I/O operations 40when reading and writing; this makes the device useless with 41standard Evans and Sutherland software. 42.Pp 43The interface provided by the interface is as 44.Ux Ns -like 45as possible. 46When a device is opened a 47.Tn PS300 48attach request is automatically 49performed. When a device is closed a detach is performed. Reads 50and writes result in physical 51.Tn I/O 52requests, but hide all the details 53of the physical 54.Tn I/O 55protocol. This is programming style is completely 56different from the 57.Tn VMS Ns -oriented 58qio-style interface supplied by Evans 59and Sutherland. 60.Pp 61Reads and writes to the device result in a physical 62.Tn I/O 63request 64to the 65.Tn PS300 . 66If a 67.Xr readv 2 68or 69.Xr writev 2 70call is used, each 71.Tn I/O 72request results in a single physical 73.Tn I/O 74request (i.e. the scatter-gather facilities are not supported). 75In normal operation, the address used in a physical 76.Tn I/O 77request 78is the current file offset as specified explicitly with 79.Xr lseek 2 80or implictly as a result of reading or writing the device. 81To specify an address to be used with each physical 82.Tn I/O 83request, 84the 85.Nm ik 86driver interprets the 87.Ar iov 88entries in a non-standard way. If 89.Ar iov_len 90is zero, then 91.Ar iov_base 92is interpreted as an address to be used in the physical 93.Tn I/O 94request. If the address has the 95.Dv PSIO_SYNC 96flag or-d into it, 97the physical 98.Tn I/O 99request is made as a ``write with sync''. 100All addresses and data presented to the driver should be in 101the byte order of the host; any byte swapping required to converse 102with the 103.Tn PS300 104is performed in the driver/controller. 105.Pp 106In addition to reading and writing, the following 107.Xr ioctl 108requests are available: 109.Bl -tag -width PSIOGETERROR 110.It Dv PSIOLOOKUP 111Perform a ``name lookup'' request. The 112.Ar pslookup 113structure passed indicates the symbol name to be looked up 114and contains the address returned by the 115.Tn PS300 . 116A zero 117address return indicates the symbol was undefined. 118.It Dv PSIOGETERROR 119In the event of an error, this request may be made to 120return a more detailed and, sometimes 121.Tn PS300 Ns -specific , 122error code. 123.Sh FILES 124.Bl -tag -width /dec/ik[0-7]xx -compact 125.It Pa /dev/ik[0-7] 126auto-attach devices 127.It Pa /dev/ik[0-7]d 128diagnostic interfaces to devices 129.El 130.Sh DIAGNOSTICS 131.Bl -diag 132.It ik%d: bad cmd %x. 133An unknown or unsupported command was received by the host. 134.It ik%d: spurious interrupt, code %x. 135An unexpected interrupt was received from the 136.Tn PS300 ; 137the 138attention code from the 139.Tn PS300 140is printed. 141.It ik%d: timeout. 142A command failed to elicit a response within a reasonable 143time; the 144.Tn PS300 145probably crashed. 146.El 147.Sh HISTORY 148The 149Tahoe Version 150.Nm 151driver appeared in 152.Bx 4.2 . 153.Sh BUGS 154An invalid access (e.g. illegal address) to the 155.Tn PS300 156can 157cause the 158.Tn PS300 159to crash. It is not always possible to unwedge 160the 161.Tn PS300 162interface hardware hung by an 163.Tn I/O 164request. 165