diff options
Diffstat (limited to 'static/freebsd/man4/dc.4 3.html')
| -rw-r--r-- | static/freebsd/man4/dc.4 3.html | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/static/freebsd/man4/dc.4 3.html b/static/freebsd/man4/dc.4 3.html new file mode 100644 index 00000000..2afde9b4 --- /dev/null +++ b/static/freebsd/man4/dc.4 3.html @@ -0,0 +1,286 @@ +<table class="head"> + <tr> + <td class="head-ltitle">DC(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">DC(4)</td> + </tr> +</table> +<div class="manual-text"> +<section class="Sh"> +<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> +<p class="Pp"><code class="Nm">dc</code> — <span class="Nd">DEC/Intel + 21143 and clone 10/100 Ethernet driver</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp">To compile this driver into the kernel, place the following lines + in your kernel configuration file:</p> +<div class="Bd Pp Bd-indent"><code class="Cd">device miibus</code> +<br/> +<code class="Cd">device dc</code></div> +<p class="Pp">Alternatively, to load the driver as a module at boot time, place + the following line in <a class="Xr">loader.conf(5)</a>:</p> +<div class="Bd Pp Bd-indent Li"> +<pre>if_dc_load="YES"</pre> +</div> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">The <code class="Nm">dc</code> driver provides support for several + PCI Fast Ethernet adapters and embedded controllers based on the DEC/Intel + 21143 chipset and clones.</p> +<p class="Pp">All of supported chipsets have the same general register layout, + DMA descriptor format and method of operation. All of the clone chips are + based on the 21143 design with various modifications. The 21143 itself has + support for 10baseT, BNC, AUI, MII and symbol media attachments, 10 and + 100Mbps speeds in full or half duplex, built in NWAY autonegotiation and + wake on LAN. The 21143 also offers several receive filter programming + options including perfect filtering, inverse perfect filtering and hash + table filtering.</p> +<p class="Pp">Some clone chips duplicate the 21143 fairly closely while others + only maintain superficial similarities. Some support only MII media + attachments. Others use different receiver filter programming mechanisms. At + least one supports only chained DMA descriptors (most support both chained + descriptors and contiguously allocated fixed size rings). Some chips + (especially the PNIC) also have peculiar bugs. The + <code class="Nm">dc</code> driver does its best to provide generalized + support for all of these chipsets in order to keep special case code to a + minimum.</p> +<p class="Pp">These chips are used by many vendors which makes it difficult to + provide a complete list of all supported cards.</p> +<p class="Pp">The <code class="Nm">dc</code> driver supports the following media + types:</p> +<dl class="Bl-tag"> + <dt id="autoselect"><a class="permalink" href="#autoselect"><code class="Cm">autoselect</code></a></dt> + <dd>Enable autoselection of the media type and options. The user can manually + override the autoselected mode by adding media options to the + <span class="Pa">/etc/rc.conf</span> file. + <p class="Pp">Note: the built-in NWAY autonegotiation on the original PNIC + 82c168 chip is horribly broken and is not supported by the + <code class="Nm">dc</code> driver at this time (see the + <a class="Sx" href="#BUGS">BUGS</a> section for details). The original + 82c168 appears on very early revisions of the LinkSys LNE100TX and + Matrox FastNIC.</p> + </dd> + <dt id="10baseT/UTP"><a class="permalink" href="#10baseT/UTP"><code class="Cm">10baseT/UTP</code></a></dt> + <dd>Set 10Mbps operation. The <code class="Cm">mediaopt</code> option can also + be used to enable <code class="Cm">full-duplex</code> operation. Not + specifying <code class="Cm">full-duplex</code> implies + <code class="Cm">half-duplex</code> mode.</dd> + <dt id="100baseTX"><a class="permalink" href="#100baseTX"><code class="Cm">100baseTX</code></a></dt> + <dd>Set 100Mbps (Fast Ethernet) operation. The + <code class="Cm">mediaopt</code> option can also be used to enable + <code class="Cm">full-duplex</code> operation. Not specifying + <code class="Cm">full-duplex</code> implies + <code class="Cm">half-duplex</code> mode.</dd> +</dl> +<p class="Pp">The <code class="Nm">dc</code> driver supports the following media + options:</p> +<dl class="Bl-tag"> + <dt id="full-duplex"><a class="permalink" href="#full-duplex"><code class="Cm">full-duplex</code></a></dt> + <dd>Force full duplex operation. The interface will operate in half duplex + mode if this media option is not specified.</dd> +</dl> +<p class="Pp">Note that the 100baseTX media type may not be available on certain + Intel 21143 adapters which support 10Mbps media attachments only. For more + information on configuring this device, see + <a class="Xr">ifconfig(8)</a>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HARDWARE"><a class="permalink" href="#HARDWARE">HARDWARE</a></h1> +<p class="Pp">The <code class="Nm">dc</code> driver provides support for the + following chipsets:</p> +<p class="Pp"></p> +<ul class="Bl-bullet Bl-compact"> + <li>DEC/Intel 21143</li> + <li>ADMtek AL981 Comet, AN985 Centaur, ADM9511 Centaur II and ADM9513 Centaur + II</li> + <li>ALi/ULi M5261 and M5263</li> + <li>ASIX Electronics AX88140A and AX88141</li> + <li>Conexant LANfinity RS7112 (miniPCI)</li> + <li>Davicom DM9009, DM9100, DM9102 and DM9102A</li> + <li>Lite-On 82c168 and 82c169 PNIC</li> + <li>Lite-On/Macronix 82c115 PNIC II</li> + <li>Macronix 98713, 98713A, 98715, 98715A, 98715AEC-C, 98725, 98727 and + 98732</li> + <li>Xircom X3201 (cardbus only)</li> +</ul> +<p class="Pp">The following NICs are known to work with the + <code class="Nm">dc</code> driver at this time:</p> +<p class="Pp"></p> +<ul class="Bl-bullet Bl-compact"> + <li>3Com OfficeConnect 10/100B (ADMtek AN985 Centaur-P)</li> + <li>Abocom FE2500</li> + <li>Accton EN1217 (98715A)</li> + <li>Accton EN2242 MiniPCI</li> + <li>Adico AE310TX (98715A)</li> + <li>Alfa Inc GFC2204 (ASIX AX88140A)</li> + <li>Built in 10Mbps only Ethernet on Compaq Presario 7900 series desktops + (21143, non-MII)</li> + <li>Built in Ethernet on LinkSys EtherFast 10/100 Instant GigaDrive (DM9102, + MII)</li> + <li>CNet Pro110B (ASIX AX88140A)</li> + <li>CNet Pro120A (98715A or 98713A) and CNet Pro120B (98715)</li> + <li>Compex RL100-TX (98713 or 98713A)</li> + <li>D-Link DFE-570TX (21143, MII, quad port)</li> + <li>Digital DE500-BA 10/100 (21143, non-MII)</li> + <li>ELECOM Laneed LD-CBL/TXA (ADMtek AN985)</li> + <li>Hawking CB102 CardBus</li> + <li>IBM EtherJet Cardbus Adapter</li> + <li>Intel PRO/100 Mobile Cardbus (versions that use the X3201 chipset)</li> + <li>Jaton XpressNet (Davicom DM9102)</li> + <li>Kingston KNE100TX (21143, MII)</li> + <li>Kingston KNE110TX (PNIC 82c169)</li> + <li>LinkSys LNE100TX (PNIC 82c168, 82c169)</li> + <li>LinkSys LNE100TX v2.0 (PNIC II 82c115)</li> + <li>LinkSys LNE100TX v4.0/4.1 (ADMtek AN985 Centaur-P)</li> + <li>Matrox FastNIC 10/100 (PNIC 82c168, 82c169)</li> + <li>Melco LGY-PCI-TXL</li> + <li>Microsoft MN-120 10/100 CardBus (ADMTek Centaur-C)</li> + <li>Microsoft MN-130 10/100 PCI (ADMTek Centaur-P)</li> + <li>NDC SOHOware SFA110A (98713A)</li> + <li>NDC SOHOware SFA110A Rev B4 (98715AEC-C)</li> + <li>NetGear FA310-TX Rev. D1, D2 or D3 (PNIC 82c169)</li> + <li>Netgear FA511</li> + <li>PlaneX FNW-3602-T (ADMtek AN985)</li> + <li>SMC EZ Card 10/100 1233A-TX (ADMtek AN985)</li> + <li>SVEC PN102-TX (98713)</li> + <li>Xircom Cardbus Realport</li> + <li>Xircom Cardbus Ethernet 10/100</li> + <li>Xircom Cardbus Ethernet II 10/100</li> +</ul> +</section> +<section class="Sh"> +<h1 class="Sh" id="DIAGNOSTICS"><a class="permalink" href="#DIAGNOSTICS">DIAGNOSTICS</a></h1> +<dl class="Bl-diag"> + <dt>dc%d: couldn't map ports/memory</dt> + <dd>A fatal initialization error has occurred.</dd> + <dt>dc%d: couldn't map interrupt</dt> + <dd>A fatal initialization error has occurred.</dd> + <dt>dc%d: watchdog timeout</dt> + <dd>A packet was queued for transmission and a transmit command was issued, + but the device failed to acknowledge the transmission before a timeout + expired. This can happen if the device is unable to deliver interrupts for + some reason, of if there is a problem with the network connection (cable + or network equipment) that results in a loss of link.</dd> + <dt>dc%d: no memory for rx list</dt> + <dd>The driver failed to allocate an mbuf for the receiver ring.</dd> + <dt>dc%d: TX underrun -- increasing TX threshold</dt> + <dd>The device generated a transmit underrun error while attempting to DMA and + transmit a packet. This happens if the host is not able to DMA the packet + data into the NIC's FIFO fast enough. The driver will dynamically increase + the transmit start threshold so that more data must be DMAed into the FIFO + before the NIC will start transmitting it onto the wire.</dd> + <dt>dc%d: TX underrun -- using store and forward mode</dt> + <dd>The device continued to generate transmit underruns even after all + possible transmit start threshold settings had been tried, so the driver + programmed the chip for store and forward mode. In this mode, the NIC will + not begin transmission until the entire packet has been transferred into + its FIFO memory.</dd> + <dt>dc%d: chip is in D3 power state -- setting to D0</dt> + <dd>This message applies only to adapters which support power management. Some + operating systems place the controller in low power mode when shutting + down, and some PCI BIOSes fail to bring the chip out of this state before + configuring it. The controller loses all of its PCI configuration in the + D3 state, so if the BIOS does not set it back to full power mode in time, + it will not be able to configure it correctly. The driver tries to detect + this condition and bring the adapter back to the D0 (full power) state, + but this may not be enough to return the driver to a fully operational + condition. If you see this message at boot time and the driver fails to + attach the device as a network interface, you will have to perform a + second warm boot to have the device properly configured. + <p class="Pp">Note that this condition only occurs when warm booting from + another operating system. If you power down your system prior to booting + <span class="Ux">FreeBSD</span>, the card should be configured + correctly.</p> + </dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE + ALSO</a></h1> +<p class="Pp"><a class="Xr">altq(4)</a>, <a class="Xr">arp(4)</a>, + <a class="Xr">miibus(4)</a>, <a class="Xr">netintro(4)</a>, + <a class="Xr">ng_ether(4)</a>, <a class="Xr">polling(4)</a>, + <a class="Xr">vlan(4)</a>, <a class="Xr">ifconfig(8)</a></p> +<p class="Pp"><cite class="Rs"><span class="RsT">ADMtek AL981, AL983 and AL985 + data sheets</span>, + <a class="RsU" href="http://www.admtek.com.tw">http://www.admtek.com.tw</a>.</cite></p> +<p class="Pp"><cite class="Rs"><span class="RsT">ASIX Electronics AX88140A and + AX88141 data sheets</span>, + <a class="RsU" href="http://www.asix.com.tw">http://www.asix.com.tw</a>.</cite></p> +<p class="Pp"><cite class="Rs"><span class="RsT">Davicom DM9102 data + sheet</span>, + <a class="RsU" href="http://www.davicom.com.tw/userfile/24247/DM9102H-DS-F01-021508.pdf">http://www.davicom.com.tw/userfile/24247/DM9102H-DS-F01-021508.pdf</a>.</cite></p> +<p class="Pp"><cite class="Rs"><span class="RsT">Intel 21143 Hardware Reference + Manual</span>, + <a class="RsU" href="http://developer.intel.com">http://developer.intel.com</a>.</cite></p> +<p class="Pp"><cite class="Rs"><span class="RsT">Macronix 98713/A, 98715/A and + 98725 data sheets</span>, + <a class="RsU" href="http://www.macronix.com">http://www.macronix.com</a>.</cite></p> +<p class="Pp"><cite class="Rs"><span class="RsT">Macronix 98713/A and 98715/A + app notes</span>, + <a class="RsU" href="http://www.macronix.com">http://www.macronix.com</a>.</cite></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">The <code class="Nm">dc</code> device driver first appeared in + <span class="Ux">FreeBSD 4.0</span>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> +<p class="Pp">The <code class="Nm">dc</code> driver was written by + <span class="An">Bill Paul</span> + <<a class="Mt" href="mailto:wpaul@ee.columbia.edu">wpaul@ee.columbia.edu</a>>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1> +<p class="Pp">The Macronix application notes claim that in order to put the + chips in normal operation, the driver must write a certain magic number into + the CSR16 register. The numbers are documented in the app notes, but the + exact meaning of the bits is not.</p> +<p class="Pp">The 98713A seems to have a problem with 10Mbps full duplex mode. + The transmitter works but the receiver tends to produce many unexplained + errors leading to very poor overall performance. The 98715A does not exhibit + this problem. All other modes on the 98713A seem to work correctly.</p> +<p class="Pp">The original 82c168 PNIC chip has built in NWAY support which is + used on certain early LinkSys LNE100TX and Matrox FastNIC cards, however it + is horribly broken and difficult to use reliably. Consequently, + autonegotiation is not currently supported for this chipset: the driver + defaults the NIC to 10baseT half duplex, and it is up to the operator to + manually select a different mode if necessary. (Later cards use an external + MII transceiver to implement NWAY autonegotiation and work correctly.)</p> +<p class="Pp">The <code class="Nm">dc</code> driver programs 82c168 and 82c169 + PNIC chips to use the store and forward setting for the transmit start + threshold by default. This is to work around problems with some NIC/PCI bus + combinations where the PNIC can transmit corrupt frames when operating at + 100Mbps, probably due to PCI DMA burst transfer errors.</p> +<p class="Pp">The 82c168 and 82c169 PNIC chips also have a receiver bug that + sometimes manifests during periods of heavy receive and transmit activity, + where the chip will improperly DMA received frames to the host. The chips + appear to upload several kilobytes of garbage data along with the received + frame data, dirtying several RX buffers instead of just the expected one. + The <code class="Nm">dc</code> driver detects this condition and will + salvage the frame; however, it incurs a serious performance penalty in the + process.</p> +<p class="Pp">The PNIC chips also sometimes generate a transmit underrun error + when the driver attempts to download the receiver filter setup frame, which + can result in the receive filter being incorrectly programmed. The + <code class="Nm">dc</code> driver will watch for this condition and requeue + the setup frame until it is transferred successfully.</p> +<p class="Pp">The ADMtek AL981 chip (and possibly the AN985 as well) has been + observed to sometimes wedge on transmit: this appears to happen when the + driver queues a sequence of frames which cause it to wrap from the end of + the transmit descriptor ring back to the beginning. The + <code class="Nm">dc</code> driver attempts to avoid this condition by not + queuing any frames past the end of the transmit ring during a single + invocation of the <code class="Fn">dc_start</code>() routine. This + workaround has a negligible impact on transmit performance.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">December 26, 2020</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
