37e52b59cc
Remove bogus input operands for fnsave(), fnstcw() and fnstsw(). Change all fwait's to fnop's. This might help avoid hardware bugs. Wait after fninit with an fnop. This should be safer now. Fix some spelling and formatting errors. Use natural sizes for control and status words (u_short, promotes to int). Don't clobber the SWI_CLOCK_MASK bits in npx0_imask when using IRQ13. Set the devconf state correctly (always busy, if configured). Improve code for npx_registerdev() a little (gcc can't keep id->id_unit in a register for some reason). Don't register a nonexistent npx device. Print a useful message in npxattach() again (delete references to errors and not the whole message). Don't print "387 emulator" if there is no emulator in the kernel. Use %p for pointers in error messages. Don't clobber the FPU state when there is an FPU exception. Just clear the exception flags (after saving the flags as before). This allows debuggers and SIGFPE handlers to look at the full exception state. SIGFPE handlers should normally return via longjmp(), which restores a good FPU state (as before). Returning from a SIGFPE handler may leave the FPU in the wrong state (as before). Clear the busy latch _after_ clearing the exception flags so that there is less chance of getting a bogus h/w interrupt for a control operation. Clear the saved exception status word when the next FPU instruction is excuted so that it doesn't stick around until the next exception. Clear the busy latch after fnsave() in npxsave() in case it was set when npxsave() was called.
$Id: README.le,v 1.1 1994/10/01 20:15:43 wollman Exp $ ---------------- This driver is in no way supported by Digital Equipment. See the disclaimers in the sources for more. This driver supports all the DEC EtherWORKS III NICs (DE203, DE204, and DE205) and the later DEC EtherWORKS II NICs (DE200, DE201, DE202, DE422). DEPCA-style boards prior to the DE200 have not been tested and may not work. This driver is not EISA aware. If you are using a DE422 or have configured the EtherWORKS III in EISA mode, make sure you specify the I/O port properly as this driver will *not* probe for it. (The I/O port should be 0xNc00 where N is the EISA slot number). This driver does not yet use the full 128KB allowed by the DE422. Someday, it might. For EtherWORKS III NICs, the driver will override the EEPROM setting of MemoryMode and *always* use the 2K for best results. The driver includes full support for both BPF and IP Multicast. [All paths are relative to the top of sys source area, usually /usr/src/sys.] The following files need to be moved into their respective directories: if_le.c --> i386/isa am7990.h --> i386/isa/ic lemac.h --> i386/isa/ic You will need to apply the patch provided in pat.files.i386 to i386/conf/files.i386 file. After that is done you will need to edit your config file (in i386/conf) and a line similar to: device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr [The above line assumes the board is still at the factory defaults.] Change the port, irq, and iomem value if needed to your configuration. Now you are ready to rebuild your kernel, reboot, and see if the driver can configure your board. When the system boots, you will hopefully something close to: EtherWORKS II: le0 at 0x300-0x30f irq 5 maddr 0xd0000 msize 65536 on isa le0: DE202 ethernet address 08:00:2b:2d:c8:45 bpf: le0 attached EtherWORKS III: le0 at 0x320-0x33f irq 5 maddr 0xd0000 msize 2048 on isa le0: DE205-AB ethernet address 08:00:2b:bb:23:e0 le0 attached in the startup log. If so, the board configured properly and should be ready to use. -- Mail: thomas@lkg.dec.com URL: http://ftp.digital.com/~thomas/