summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/dc.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/dc.4 3.html')
-rw-r--r--static/freebsd/man4/dc.4 3.html286
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> &#x2014; <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=&quot;YES&quot;</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>
+ &lt;<a class="Mt" href="mailto:wpaul@ee.columbia.edu">wpaul@ee.columbia.edu</a>&gt;.</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>