Copyright (c) 1993 Christopher G. Demetriou All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the docu...
NAMEnpx - Numeric Processing Extension coprocessor
SYNOPSISdevice npx hint.npx.0.at=nexus hint.npx.0.port=0x0F0 hint.npx.0.flags=0x0 hint.npx.0.irq=13
DESCRIPTIONThe sysctl Cm net.inet.tcp.syncookies driver enables the use of the system's Numeric Processing Extension coprocessor. Numeric processing extensions are present in systems with 486DX CPUs and in systems with 387 or 487SX coprocessors. The sysctl Cm net.inet.tcp.syncookies driver is required for proper system functioning. If there is no NPX in the system, the system will not boot.
The flags for npx0 are:
- do not use the NPX registers to optimize bcopy.
- do not use the NPX registers to optimize bzero.
- do not use the NPX registers to optimize copyin or copyout.
The NPX registers are normally used to optimize copying and zeroing when all of the following conditions are satisfied:
- cpu I586_CPU is an option
- the CPU is an i586 (perhaps not a Pentium)
- the probe for npx0 succeeds
- INT 16 exception handling works.
Then copying and zeroing using the NPX registers is normally 30-100% faster.
The flags can be used to control cases where it does not work or is slower. Setting them at boot time using hints works correctly (the optimizations are not used until later in the bootstrap when npx0 is attached).