Update npx status.
Reminded by: tjr
This commit is contained in:
parent
7c1e58684a
commit
a05513a73b
@ -35,24 +35,18 @@
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm npx
|
||||
.Nd Numeric Processing Extension coprocessor and emulator
|
||||
.Nd Numeric Processing Extension coprocessor
|
||||
.Sh SYNOPSIS
|
||||
.Cd "device npx"
|
||||
.Cd hint.npx.0.at="nexus"
|
||||
.Cd hint.npx.0.port="0x0F0"
|
||||
.Cd hint.npx.0.flags="0x0"
|
||||
.Cd hint.npx.0.irq="13"
|
||||
.Pp
|
||||
For hosts without a FPU coprocessor add:
|
||||
.Cd "options MATH_EMULATE"
|
||||
or
|
||||
.Cd "options GPL_MATH_EMULATE"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
driver enables the use of the system's Numeric Processing Extension
|
||||
coprocessor,
|
||||
if one is present.
|
||||
coprocessor.
|
||||
Numeric processing extensions are present in
|
||||
systems with
|
||||
.Tn 486DX
|
||||
@ -63,32 +57,8 @@ or
|
||||
coprocessors.
|
||||
The
|
||||
.Nm
|
||||
driver is required for proper system functioning regardless
|
||||
of whether or not a NPX is present.
|
||||
.Pp
|
||||
If there is no NPX present in the system, the
|
||||
.Dv MATH_EMULATE
|
||||
or
|
||||
.Dv GPL_MATH_EMULATE
|
||||
option must be defined in the kernel configuration
|
||||
file.
|
||||
It will provide support for the instructions normally executed by the NPX.
|
||||
If there is no NPX in the system and the kernel is not built with math
|
||||
emulation, the system will not boot.
|
||||
.Pp
|
||||
You can choose to use a much more fully-featured math emulator (under the
|
||||
GPL license) by including the
|
||||
.Cd "options GPL_MATH_EMULATE"
|
||||
in your kernel
|
||||
configuration file instead of the
|
||||
.Dv MATH_EMULATE
|
||||
option.
|
||||
.Pp
|
||||
The
|
||||
.Pa GENERIC
|
||||
kernel configuration uses the
|
||||
.Dv MATH_EMULATE
|
||||
option.
|
||||
driver is required for proper system functioning.
|
||||
If there is no NPX in the system, the system will not boot.
|
||||
.Pp
|
||||
The flags for
|
||||
.Pa npx0
|
||||
@ -101,8 +71,6 @@ do not use the NPX registers to optimize bcopy.
|
||||
do not use the NPX registers to optimize bzero.
|
||||
.It 0x04
|
||||
do not use the NPX registers to optimize copyin or copyout.
|
||||
.It 0x08
|
||||
use emulator even if hardware FPU is available.
|
||||
.El
|
||||
.Pp
|
||||
The NPX registers are normally used
|
||||
@ -137,27 +105,7 @@ until later in the bootstrap
|
||||
when
|
||||
.Pa npx0
|
||||
is attached).
|
||||
Flag 0x08 automatically disables the i586 optimized routines.
|
||||
.Sh CAVEATS
|
||||
The emulator is much slower than the NPX coprocessor.
|
||||
This will result in poor floating-point math performance
|
||||
if the emulator must be used.
|
||||
.Pp
|
||||
The non-GPL emulator does not support the whole set of NPX
|
||||
instructions.
|
||||
It is sufficient for booting and configuring a system, but it cannot
|
||||
support a system with normal workload unless care is taken to compile
|
||||
the whole system (including third-party packages) with compiler
|
||||
options that avoid the use of the non-emulated instructions.
|
||||
.Sh BUGS
|
||||
There are lots of them, especially on old cheap motherboards.
|
||||
In particular, some motherboards do not have the interrupt lines from
|
||||
the NPX to the CPU wired properly.
|
||||
If this is the case, the emulator must be used if consistent system
|
||||
operation is desired.
|
||||
.Pp
|
||||
When using the default
|
||||
.Dv MATH_EMULATE
|
||||
option,
|
||||
transcendental function instructions are not implemented.
|
||||
Emulation of other instructions is suspect.
|
||||
|
Loading…
Reference in New Issue
Block a user