xref: /csrg-svn/share/man/man4/man4.tahoe/ik.4 (revision 47673)
1*47673Scael.\" Copyright (c) 1983, 1991 Regents of the University of California.
2*47673Scael.\" All rights reserved.
330225Ssam.\"
4*47673Scael.\" %sccs.include.redist.man%
530225Ssam.\"
6*47673Scael.\"     @(#)ik.4	6.3 (Berkeley) 03/27/91
7*47673Scael.\"
8*47673Scael.Dd
9*47673Scael.Dt IK 4
10*47673Scael.Os BSD 4.2
11*47673Scael.Sh NAME
12*47673Scael.Nm ik
13*47673Scael.Nd Evans and Sutherland Picture System 300 graphics device interface
14*47673Scael.Sh SYNOPSIS
15*47673Scael.Cd "device ik0 at vba? csr 0xfffb100 vector ikintr"
16*47673Scael.Sh DESCRIPTION
1730225SsamThe
18*47673Scael.Nm ik
1930225Ssamdriver provides access
2030225Ssamto an Evans and
21*47673ScaelSutherland Picture System 300 through an Ikon
22*47673Scael.Tn DR-11W
2330225Ssaminterface card.
24*47673ScaelEach two minor device numbers are a different
25*47673Scael.Tn PS300 ;
2630225Ssamwithin a pair of device numbers the odd valued
2730225Ssamdevice is used for ``diagnostic'' purposes.   That is,
2830225Ssamfor even numbered minor devices, opening the device results
29*47673Scaelin a
30*47673Scael.Tn PS300
31*47673Scael``attach'' request being performed while for
3230225Ssamodd numbered minor devices the attach request is not performed.
33*47673Scael.Pp
34*47673ScaelAll operations between the host and the
35*47673Scael.Tn PS300
36*47673Scaelutilize
37*47673Scael.Tn DMA .
38*47673ScaelThe driver currently supports only physical
39*47673Scael.Tn I/O operations
4030225Ssamwhen reading and writing; this makes the device useless with
4130225Ssamstandard Evans and Sutherland software.
42*47673Scael.Pp
43*47673ScaelThe interface provided by the interface is as
44*47673Scael.Ux Ns -like
45*47673Scaelas possible.
46*47673ScaelWhen a device is opened a
47*47673Scael.Tn PS300
48*47673Scaelattach request is automatically
4930225Ssamperformed.  When a device is closed a detach is performed.  Reads
50*47673Scaeland writes result in physical
51*47673Scael.Tn I/O
52*47673Scaelrequests, but hide all the details
53*47673Scaelof the physical
54*47673Scael.Tn I/O
55*47673Scaelprotocol.  This is programming style is completely
56*47673Scaeldifferent from the
57*47673Scael.Tn VMS Ns -oriented
58*47673Scaelqio-style interface supplied by Evans
5930225Ssamand Sutherland.
60*47673Scael.Pp
61*47673ScaelReads and writes to the device result in a physical
62*47673Scael.Tn I/O
63*47673Scaelrequest
64*47673Scaelto the
65*47673Scael.Tn PS300 .
66*47673ScaelIf a
67*47673Scael.Xr readv 2
6830225Ssamor
69*47673Scael.Xr writev 2
70*47673Scaelcall is used, each
71*47673Scael.Tn I/O
72*47673Scaelrequest results in a single physical
73*47673Scael.Tn I/O
7430225Ssamrequest (i.e. the scatter-gather facilities are not supported).
75*47673ScaelIn normal operation, the address used in a physical
76*47673Scael.Tn I/O
77*47673Scaelrequest
7830225Ssamis the current file offset as specified explicitly with
79*47673Scael.Xr lseek 2
8030225Ssamor implictly as a result of reading or writing the device.
81*47673ScaelTo specify an address to be used with each physical
82*47673Scael.Tn I/O
83*47673Scaelrequest,
8430225Ssamthe
85*47673Scael.Nm ik
8630225Ssamdriver interprets the
87*47673Scael.Ar iov
8830225Ssamentries in a non-standard way.  If
89*47673Scael.Ar iov_len
9030225Ssamis zero, then
91*47673Scael.Ar iov_base
92*47673Scaelis interpreted as an address to be used in the physical
93*47673Scael.Tn I/O
94*47673Scaelrequest.  If the address has the
95*47673Scael.Dv PSIO_SYNC
96*47673Scaelflag or-d into it,
97*47673Scaelthe physical
98*47673Scael.Tn I/O
99*47673Scaelrequest is made as a ``write with sync''.
10030225SsamAll addresses and data presented to the driver should be in
10130225Ssamthe byte order of the host; any byte swapping required to converse
102*47673Scaelwith the
103*47673Scael.Tn PS300
104*47673Scaelis performed in the driver/controller.
105*47673Scael.Pp
10630225SsamIn addition to reading and writing, the following
107*47673Scael.Xr ioctl
10830225Ssamrequests are available:
109*47673Scael.Bl -tag -width PSIOGETERROR
110*47673Scael.It Dv PSIOLOOKUP
11130225SsamPerform a ``name lookup'' request.  The
112*47673Scael.Ar pslookup
11330225Ssamstructure passed indicates the symbol name to be looked up
114*47673Scaeland contains the address returned by the
115*47673Scael.Tn PS300 .
116*47673ScaelA zero
11730225Ssamaddress return indicates the symbol was undefined.
118*47673Scael.It Dv PSIOGETERROR
11930225SsamIn the event of an error, this request may be made to
120*47673Scaelreturn a more detailed and, sometimes
121*47673Scael.Tn PS300 Ns -specific ,
12230225Ssamerror code.
123*47673Scael.Sh FILES
124*47673Scael.Bl -tag -width /dec/ik[0-7]xx -compact
125*47673Scael.It Pa /dev/ik[0-7]
126*47673Scaelauto-attach devices
127*47673Scael.It Pa /dev/ik[0-7]d
128*47673Scaeldiagnostic interfaces to devices
129*47673Scael.El
130*47673Scael.Sh DIAGNOSTICS
131*47673Scael.Bl -diag
132*47673Scael.It ik%d: bad cmd %x.
13330225SsamAn unknown or unsupported command was received by the host.
134*47673Scael.It ik%d: spurious interrupt, code %x.
135*47673ScaelAn unexpected interrupt was received from the
136*47673Scael.Tn PS300 ;
137*47673Scaelthe
138*47673Scaelattention code from the
139*47673Scael.Tn PS300
140*47673Scaelis printed.
141*47673Scael.It ik%d: timeout.
14230225SsamA command failed to elicit a response within a reasonable
143*47673Scaeltime; the
144*47673Scael.Tn PS300
145*47673Scaelprobably crashed.
146*47673Scael.El
147*47673Scael.Sh HISTORY
148*47673ScaelThe
149*47673ScaelTahoe Version
150*47673Scael.Nm
151*47673Scaeldriver appeared in
152*47673Scael.Bx 4.2 .
153*47673Scael.Sh BUGS
154*47673ScaelAn invalid access (e.g. illegal address) to the
155*47673Scael.Tn PS300
156*47673Scaelcan
157*47673Scaelcause the
158*47673Scael.Tn PS300
159*47673Scaelto crash.  It is not always possible to unwedge
160*47673Scaelthe
161*47673Scael.Tn PS300
162*47673Scaelinterface hardware hung by an
163*47673Scael.Tn I/O
164*47673Scaelrequest.
165