xref: /original-bsd/share/man/man4/man4.tahoe/ik.4 (revision c3e32dec)
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