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