Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fpa(4S) — SunOS 4.0.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cc(1V)

close(2)

ioctl(2)

open(2V)

fpa_download(8)

fparel(8)

fpaversion(8)

FPA(4S)  —  DEVICES AND NETWORK INTERFACES

NAME

fpa − Sun-3/Sun-3x floating-point accelerator

CONFIG — SUN-3/SUN-3X SYSTEM

fpa0 at virtual ? csr 0xe0000000

SYNOPSIS

#include <sundev/fpareg.h>
open("/dev/fpa", flags);

DESCRIPTION

FPA and FPA+ are compatible floating point accelerators available on certain Sun-3 and Sun-3x systems.  They provide hardware contexts for simultaneous use by up to 32 processes.  The same fpa device driver manages either FPA or FPA+ hardware. 

Processes access the device using open(2) and close(2) system calls, and the FPA is automatically mapped into the process’ address space by SunOS.  This is normally provided transparently at compile time by a compiler option, such as the −ffpa option to cc(1V). 

The valid ioctl(2) system calls are used only by diagnostics and by system administration programs, such as fpa_download(8). 

IOCTLS

FPA_ACCESS_OFF Clear FPA_ACCESS_BIT in FPA state register to disable access to constants RAM using FPA load pointer. 

FPA_ACCESS_ON Set FPA_ACCESS_BIT in FPA state register to enable access to constants RAM using FPA load pointer. 

FPA_FAIL Disable the FPA. 

FPA_GET_DATAREGS Return the contents of 8 FPA registers. 

FPA_INIT_DONE Called when downloading is complete.  Allows multiple users to access the FPA. 

FPA_LOAD_OFF Set FPA_LOAD_BIT in FPA state register to disable access to microstore or map RAM via FPA load pointer. 

FPA_LOAD_ON Set FPA_LOAD_BIT in FPA state register to enable access to microstore or map RAM using FPA load pointer. 

The following two ioctls are for diagnostic use only.  fpa must be compiled with FPA_DIAGNOSTICS_ONLY defined to enable these two calls. 

FPA_WRITE_STATE Overwrite the FPA state register. 

FPA_WRITE_HCP Write to the hard clear pipe register. 

ERRORS

The following error messages are returned by open system calls only. 

EBUSY All 32 FPA contexts are being used. 

EEXIST The current process has already opened /dev/fpa. 

EIO Downloading has not completed, so only 1 root process can have the FPA open at a time. 

ENETDOWN FPA is disabled. 

ENOENT 68881 chip does not exist. 

ENXIO FPA board does not exist. 

The following error messages are returned by ioctl system calls only. 

EINVAL Invalid ioctl.  This may occur if diagnostic only ioctls, FPA_WRITE_STATE or FPA_WRITE_HCP, are used with a driver which didn’t compile in those calls. 

EPERM All ioctl calls except for FPA_GET_DATAREGS require root execution level. 

EPIPE The FPA pipe is not clear. 

FILES

/dev/fpa device file for both FPA and FPA+. 

SEE ALSO

cc(1V), close(2), ioctl(2), open(2V), fpa_download(8), fparel(8), fpaversion(8)

DIAGNOSTICS

If hardware problems are detected then all processes with /dev/fpa open are killed, and future opens of /dev/fpa are disabled. 
 

Sun Release 4.0  —  Last change: 22 March 1989

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026