WE(4)
π WE(4) β the we Ethernet driver, bestie edition π
Okay so this is the WE(4) page from the Kernel Interfaces Manual, and itβs literally the we device driverβs manual page. Itβs giving vintage Ethernet-card realness, and weβre gonna keep every single detail because thatβs the whole point. π«Ά
πΈ NAME πΈ
we β the device driver for Western Digital/SMC WD80x3, SMC Elite Ultra, and SMC EtherEZ Ethernet cards. Thatβs the whole name, and yes itβs iconic.
β¨ SYNOPSIS β¨
π§Έ ISA boards
we0 at isa? port 0x280 iomem 0xd0000 irq 9
we1 at isa? port 0x300 iomem 0xcc000 irq 10
π MCA boards
we* at mca? slot ?
π atari
we0 at vme0 irq 4 # SMC Elite Ultra with SMC_TT VME-ISA bridge
π¦ DESCRIPTION π¦
The we device driver supports Western Digital/SMC WD80x3, SMC Elite Ultra, and SMC EtherEZ Ethernet cards. Thatβs it, thatβs the vibe. π
π FLAG VALUES π
Okay so for some clone boards the driver is not able to recognize 16bit or 8bit interfaces correctly. Since this makes a huge difference (peep the diagnostics section below), you can override it by specifying a flags value in the config file:
we2 at isa? port 0x300 iomem 0xe0000 irq 15 flags 4
The values to add together for flags are:
2β force the adapter to be treated as8bit, even if it probes as a16bitinterface. > β οΈ Improper use of this flag will make the driver fail or send invalid Ethernet packets.4β force the adapter to be treated as16bit, even if it probes as a8bitinterface. For example, theCOMPEX ENT/Uboards identify asWD8003compatibles, but are in fact16bitcards. Using this flag on a board that really is a8bitboard will result in bogus packets being sent. β οΈ8β disable the use of double transmit buffers to save space in the on-board RAM for more receive buffers.
Note that all supported MCA cards are 16bit, and the SMC_TT VME-ISA bridge interface for atari supports only SMC Elite Ultra.
π MEDIA SELECTION π
The ability to select media from software is dependent on the particular model of WD/SMC card. The following models support only manual configuration: WD8003S, WD8003E, and WD8013EBT.
Other WD/SMC 80x3 interfaces support two types of media on a single card. All support the AUI media type. The other media is either BNC or UTP behind a transceiver. Software cannot differentiate between BNC and UTP cards. On some models, the AUI port is always active.
The SMC Elite Ultra and SMC EtherEZ interfaces support three media on a single card: AUI, BNC, and UTP. If the transceiver is active, the BNC media is selected. Otherwise, the AUI and UTP ports are both active.
To enable the AUI media, select the 10base5 or aui media type with ifconfig(8)βs media directive. To select the other media (transceiver), select the 10base2 or bnc media type.
π DIAGNOSTICS π
These are the messages you might see, and what they mean, bestie:
we0: overriding IRQ <n> to <m>β The IRQ specified in the kernel configuration file is different from that found in the cardβs configuration registers. The value in the kernel configuration file is being overridden by the one configured into the card.we0: can't wildcard IRQ on a <model>β The IRQ was wildcarded in the kernel configuration file, and the card is aWD8003S,WD8003E, orWD8013EBT, which do not support software IRQ configuration.we0: failed to clear shared memory at offset <off>β The memory test was unable to clear the interfaceβs shared memory region. This often indicates that the card is configured at a conflictingiomemaddress.we0: warning - receiver ring buffer overrunβ TheDP8390Ethernet chip used by this board implements a shared-memory ring-buffer to store incoming packets.
The 16bit boards (8013 series) have 16k of memory as well as fast memory access speed. Typical memory access speed on these boards is about 4MB/second. These boards generally have no problems keeping up with full Ethernet speed and the ring-buffer seldom overfills.
However, the 8bit boards (8003) usually have only 8k bytes of shared memory. This is only enough room for about 4 full-size (1500 byte) packets. This can sometimes be a problem, especially on the original WD8003E, because these boardsβ shared-memory access speed is quite slow; typically only about 1MB/second. The overhead of this slow memory access, and the fact that there is only room for 4 full-sized packets means that the ring-buffer will occasionally overrun. When this happens, the board must be reset to avoid a lockup problem in early revision 8390βs. Resetting the board causes all of the data in the ring-buffer to be lost, requiring it to be retransmitted/received, congesting the board further. Because of this, maximum throughput on these boards is only about 400-600k per second.
This problem is exasperated by NFS because the 8bit boards lack sufficient memory to support the default 8k byte packets that NFS and other protocols use as their default. If these cards must be used with NFS, use the NFS -r and -w options in /etc/fstab to limit NFSβs packet size. 4096 byte packets generally work.
π SEE ALSO π
Okay bestie, thatβs the whole WE(4) page. This one is from Debian, dated March 23, 2010 β vintage, iconic, and honestly kind of a mood. π
β¨π
π¦ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- Copyright (c) 1997 The NetBSD Foundation, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms