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