summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ti.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/ti.4 3.html')
-rw-r--r--static/freebsd/man4/ti.4 3.html317
1 files changed, 317 insertions, 0 deletions
diff --git a/static/freebsd/man4/ti.4 3.html b/static/freebsd/man4/ti.4 3.html
new file mode 100644
index 00000000..59ec6a4d
--- /dev/null
+++ b/static/freebsd/man4/ti.4 3.html
@@ -0,0 +1,317 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">TI(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">TI(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">ti</code> &#x2014; <span class="Nd">Alteon
+ Networks Tigon I and Tigon II Gigabit 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 ti</code>
+<br/>
+<code class="Cd">options TI_SF_BUF_JUMBO</code>
+<br/>
+<code class="Cd">options TI_JUMBO_HDRSPLIT</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_ti_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">ti</code> driver provides support for PCI
+ Gigabit Ethernet adapters based on the Alteon Networks Tigon Gigabit
+ Ethernet controller chip. The Tigon contains an embedded R4000 CPU, gigabit
+ MAC, dual DMA channels and a PCI interface unit. The Tigon II contains two
+ R4000 CPUs and other refinements. Either chip can be used in either a 32-bit
+ or 64-bit PCI slot. Communication with the chip is achieved via PCI shared
+ memory and bus master DMA. The Tigon I and II support hardware multicast
+ address filtering, VLAN tag extraction and insertion, and jumbo Ethernet
+ frames sizes up to 9000 bytes. Note that the Tigon I chipset is no longer in
+ active production: all new adapters should come equipped with Tigon II
+ chipsets.</p>
+<p class="Pp">While the Tigon chipset supports 10, 100 and 1000Mbps speeds,
+ support for 10 and 100Mbps speeds is only available on boards with the
+ proper transceivers. Most adapters are only designed to work at 1000Mbps,
+ however the driver should support those NICs that work at lower speeds as
+ well.</p>
+<p class="Pp">Support for jumbo frames is provided via the interface MTU
+ setting. Selecting an MTU larger than 1500 bytes with the
+ <a class="Xr">ifconfig(8)</a> utility configures the adapter to receive and
+ transmit jumbo frames. Using jumbo frames can greatly improve performance
+ for certain tasks, such as file transfers and data streaming.</p>
+<p class="Pp">Header splitting support for Tigon 2 boards (this option has no
+ effect for the Tigon 1) can be turned on with the
+ <code class="Dv">TI_JUMBO_HDRSPLIT</code> option. See
+ <a class="Xr">zero_copy(9)</a> for more discussion on zero copy receive and
+ header splitting.</p>
+<p class="Pp">The <code class="Nm">ti</code> driver uses UMA backed jumbo
+ receive buffers, but can be configured to use <a class="Xr">sendfile(2)</a>
+ buffer allocator. To turn on <a class="Xr">sendfile(2)</a> buffer allocator,
+ use the <code class="Dv">TI_SF_BUF_JUMBO</code> option.</p>
+<p class="Pp">Support for vlans is also available using the
+ <a class="Xr">vlan(4)</a> mechanism. See the <a class="Xr">vlan(4)</a> man
+ page for more details.</p>
+<p class="Pp">The <code class="Nm">ti</code> driver supports the following media
+ types:</p>
+<dl class="Bl-tag">
+ <dt>autoselect</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.</dd>
+ <dt>10baseT/UTP</dt>
+ <dd>Set 10Mbps operation. The <var class="Ar">mediaopt</var> option can also
+ be used to select either <var class="Ar">full-duplex</var> or
+ <var class="Ar">half-duplex</var> modes.</dd>
+ <dt>100baseTX</dt>
+ <dd>Set 100Mbps (Fast Ethernet) operation. The <var class="Ar">mediaopt</var>
+ option can also be used to select either <var class="Ar">full-duplex</var>
+ or <var class="Ar">half-duplex</var> modes.</dd>
+ <dt>1000baseSX</dt>
+ <dd>Set 1000Mbps (Gigabit Ethernet) operation. Only
+ <var class="Ar">full-duplex</var> mode is supported at this speed.</dd>
+</dl>
+<p class="Pp">The <code class="Nm">ti</code> driver supports the following media
+ options:</p>
+<dl class="Bl-tag">
+ <dt>full-duplex</dt>
+ <dd>Force full-duplex operation.</dd>
+ <dt>half-duplex</dt>
+ <dd>Force half duplex operation.</dd>
+</dl>
+<p class="Pp">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">ti</code> driver supports Gigabit Ethernet
+ adapters based on the Alteon Tigon I and II chips. The
+ <code class="Nm">ti</code> driver has been tested with the following
+ adapters:</p>
+<p class="Pp"></p>
+<ul class="Bl-bullet Bl-compact">
+ <li>3Com 3c985-SX Gigabit Ethernet adapter (Tigon 1)</li>
+ <li>3Com 3c985B-SX Gigabit Ethernet adapter (Tigon 2)</li>
+ <li>Alteon AceNIC V Gigabit Ethernet adapter (1000baseSX)</li>
+ <li>Alteon AceNIC V Gigabit Ethernet adapter (1000baseT)</li>
+ <li>Digital EtherWORKS 1000SX PCI Gigabit adapter</li>
+ <li>Netgear GA620 Gigabit Ethernet adapter (1000baseSX)</li>
+ <li>Netgear GA620T Gigabit Ethernet adapter (1000baseT)</li>
+</ul>
+<p class="Pp">The following adapters should also be supported but have not yet
+ been tested:</p>
+<p class="Pp"></p>
+<ul class="Bl-bullet Bl-compact">
+ <li>Asante GigaNIX1000T Gigabit Ethernet adapter</li>
+ <li>Asante PCI 1000BASE-SX Gigabit Ethernet adapter</li>
+ <li>Farallon PN9000SX Gigabit Ethernet adapter</li>
+ <li>NEC Gigabit Ethernet</li>
+ <li>Silicon Graphics PCI Gigabit Ethernet adapter</li>
+</ul>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="LOADER_TUNABLES"><a class="permalink" href="#LOADER_TUNABLES">LOADER
+ TUNABLES</a></h1>
+<p class="Pp">Tunables can be set at the <a class="Xr">loader(8)</a> prompt
+ before booting the kernel or stored in <a class="Xr">loader.conf(5)</a>.</p>
+<dl class="Bl-tag">
+ <dt id="hw.ti._d.dac"><var class="Va">hw.ti.%d.dac</var></dt>
+ <dd>If this tunable is set to 0 it will disable DAC (Dual Address Cycle). The
+ default value is 1 which means driver will use full 64bit DMA
+ addressing.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL
+ VARIABLES</a></h1>
+<p class="Pp">The following variables are available as both
+ <a class="Xr">sysctl(8)</a> variables and <a class="Xr">loader(8)</a>
+ tunables. The interface has to be brought down and up again before a change
+ takes effect when any of the following tunables are changed. The one
+ microsecond clock tick referenced below is a nominal time and the actual
+ hardware may not provide granularity to this level. For example, on Tigon 2
+ (revision 6) cards with release 12.0 the clock granularity is 5
+ microseconds.</p>
+<dl class="Bl-tag">
+ <dt id="dev.ti._d.rx_coal_ticks"><var class="Va">dev.ti.%d.rx_coal_ticks</var></dt>
+ <dd>This value, receive coalesced ticks, controls the number of clock ticks
+ (of 1 microseconds each) that must elapse before the NIC DMAs the receive
+ return producer pointer to the Host and generates an interrupt. This
+ parameter works in conjunction with the rx_max_coal_bds, receive max
+ coalesced BDs, tunable parameter. The NIC will return the receive return
+ producer pointer to the Host when either of the thresholds is exceeded. A
+ value of 0 means that this parameter is ignored and receive BDs will only
+ be returned when the receive max coalesced BDs value is reached. The
+ default value is 170.</dd>
+ <dt id="dev.ti._d.rx_max_coal_bds"><var class="Va">dev.ti.%d.rx_max_coal_bds</var></dt>
+ <dd>This value, receive max coalesced BDs, controls the number of receive
+ buffer descriptors that will be coalesced before the NIC updates the
+ receive return ring producer index. If this value is set to 0 it will
+ disable receive buffer descriptor coalescing. The default value is
+ 64.</dd>
+ <dt id="dev.ti._d.ti_tx_coal_ticks"><var class="Va">dev.ti.%d.ti_tx_coal_ticks</var></dt>
+ <dd>This value, send coalesced ticks, controls the number of clock ticks (of 1
+ microseconds each) that must elapse before the NIC DMAs the send consumer
+ pointer to the Host and generates an interrupt. This parameter works in
+ conjunction with the tx_max_coal_bds, send max coalesced BDs, tunable
+ parameter. The NIC will return the send consumer pointer to the Host when
+ either of the thresholds is exceeded. A value of 0 means that this
+ parameter is ignored and send BDs will only be returned when the send max
+ coalesced BDs value is reached. The default value is 2000.</dd>
+ <dt id="dev.ti._d.tx_max_coal_bds"><var class="Va">dev.ti.%d.tx_max_coal_bds</var></dt>
+ <dd>This value, send max coalesced BDs, controls the number of send buffer
+ descriptors that will be coalesced before the NIC updates the send
+ consumer index. If this value is set to 0 it will disable send buffer
+ descriptor coalescing. The default value is 32.</dd>
+ <dt id="dev.ti._d.tx_buf_ratio"><var class="Va">dev.ti.%d.tx_buf_ratio</var></dt>
+ <dd>This value controls the ratio of the remaining memory in the NIC that
+ should be devoted to transmit buffer vs. receive buffer. The lower 7 bits
+ are used to indicate the ratio in 1/64th increments. For example, setting
+ this value to 16 will set the transmit buffer to 1/4 of the remaining
+ buffer space. In no cases will the transmit or receive buffer be reduced
+ below 68 KB. For a 1 MB NIC the approximate total space for data buffers
+ is 800 KB. For a 512 KB NIC that number is 300 KB. The default value is
+ 21.</dd>
+ <dt id="dev.ti._d.stat_ticks"><var class="Va">dev.ti.%d.stat_ticks</var></dt>
+ <dd>The value, stat ticks, controls the number of clock ticks (of 1
+ microseconds each) that must elapse before the NIC DMAs the statistics
+ block to the Host and generates a STATS_UPDATED event. If set to zero then
+ statistics are never DMAed to the Host. It is recommended that this value
+ be set to a high enough frequency to not mislead someone reading
+ statistics refreshes. Several times a second is enough. The default value
+ is 2000000 (2 seconds).</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="IOCTLS"><a class="permalink" href="#IOCTLS">IOCTLS</a></h1>
+<p class="Pp">In addition to the standard <a class="Xr">socket(2)</a>
+ <a class="Xr">ioctl(2)</a> calls implemented by most network drivers, the
+ <code class="Nm">ti</code> driver also includes a character device interface
+ that can be used for additional diagnostics, configuration and debugging.
+ With this character device interface, and a specially patched version of
+ <a class="Xr">gdb(1)</a> (<span class="Pa">ports/devel/gdb</span>), the user
+ can debug firmware running on the Tigon board.</p>
+<p class="Pp">These ioctls and their arguments are defined in the
+ <code class="In">&lt;<a class="In">sys/tiio.h</a>&gt;</code> header
+ file.</p>
+<dl class="Bl-tag">
+ <dt id="TIIOCGETSTATS"><a class="permalink" href="#TIIOCGETSTATS"><code class="Dv">TIIOCGETSTATS</code></a></dt>
+ <dd>Return card statistics DMAed from the card into kernel memory
+ approximately every 2 seconds. (That time interval can be changed via the
+ <code class="Dv">TIIOCSETPARAMS</code> ioctl.) The argument is
+ <var class="Vt">struct ti_stats</var>.</dd>
+ <dt id="TIIOCGETPARAMS"><a class="permalink" href="#TIIOCGETPARAMS"><code class="Dv">TIIOCGETPARAMS</code></a></dt>
+ <dd>Get various performance-related firmware parameters that largely affect
+ how interrupts are coalesced. The argument is <var class="Vt">struct
+ ti_params</var>.</dd>
+ <dt id="TIIOCSETPARAMS"><a class="permalink" href="#TIIOCSETPARAMS"><code class="Dv">TIIOCSETPARAMS</code></a></dt>
+ <dd>Set various performance-related firmware parameters that largely affect
+ how interrupts are coalesced. The argument is <var class="Vt">struct
+ ti_params</var>.</dd>
+ <dt id="TIIOCSETTRACE"><a class="permalink" href="#TIIOCSETTRACE"><code class="Dv">TIIOCSETTRACE</code></a></dt>
+ <dd>Tell the NIC to trace the requested types of information. The argument is
+ <var class="Vt">ti_trace_type</var>.</dd>
+ <dt id="TIIOCGETTRACE"><a class="permalink" href="#TIIOCGETTRACE"><code class="Dv">TIIOCGETTRACE</code></a></dt>
+ <dd>Dump the trace buffer from the card. The argument is
+ <var class="Vt">struct ti_trace_buf</var>.</dd>
+ <dt id="ALT_ATTACH"><a class="permalink" href="#ALT_ATTACH"><code class="Dv">ALT_ATTACH</code></a></dt>
+ <dd>This ioctl is used for compatibility with Alteon's Solaris driver. They
+ apparently only have one character interface for debugging, so they have
+ to tell it which Tigon instance they want to debug. This ioctl is a noop
+ for <span class="Ux">FreeBSD</span>.</dd>
+ <dt id="ALT_READ_TG_MEM"><a class="permalink" href="#ALT_READ_TG_MEM"><code class="Dv">ALT_READ_TG_MEM</code></a></dt>
+ <dd>Read the requested memory region from the Tigon board. The argument is
+ <var class="Vt">struct tg_mem</var>.</dd>
+ <dt id="ALT_WRITE_TG_MEM"><a class="permalink" href="#ALT_WRITE_TG_MEM"><code class="Dv">ALT_WRITE_TG_MEM</code></a></dt>
+ <dd>Write to the requested memory region on the Tigon board. The argument is
+ <var class="Vt">struct tg_mem</var>.</dd>
+ <dt id="ALT_READ_TG_REG"><a class="permalink" href="#ALT_READ_TG_REG"><code class="Dv">ALT_READ_TG_REG</code></a></dt>
+ <dd>Read the requested register from the Tigon board. The argument is
+ <var class="Vt">struct tg_reg</var>.</dd>
+ <dt id="ALT_WRITE_TG_REG"><a class="permalink" href="#ALT_WRITE_TG_REG"><code class="Dv">ALT_WRITE_TG_REG</code></a></dt>
+ <dd>Write to the requested register on the Tigon board. The argument is
+ <var class="Vt">struct tg_reg</var>.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
+<dl class="Bl-tag Bl-compact">
+ <dt><span class="Pa">/dev/ti[0-255]</span></dt>
+ <dd>Tigon driver character interface.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DIAGNOSTICS"><a class="permalink" href="#DIAGNOSTICS">DIAGNOSTICS</a></h1>
+<dl class="Bl-diag">
+ <dt>ti%d: couldn't map memory</dt>
+ <dd>A fatal initialization error has occurred.</dd>
+ <dt>ti%d: couldn't map interrupt</dt>
+ <dd>A fatal initialization error has occurred.</dd>
+ <dt>ti%d: no memory for softc struct!</dt>
+ <dd>The driver failed to allocate memory for per-device instance information
+ during initialization.</dd>
+ <dt>ti%d: failed to enable memory mapping!</dt>
+ <dd>The driver failed to initialize PCI shared memory mapping. This might
+ happen if the card is not in a bus-master slot.</dd>
+ <dt>ti%d: no memory for jumbo buffers!</dt>
+ <dd>The driver failed to allocate memory for jumbo frames during
+ initialization.</dd>
+ <dt>ti%d: bios thinks we're in a 64 bit slot, but we aren't</dt>
+ <dd>The BIOS has programmed the NIC as though it had been installed in a
+ 64-bit PCI slot, but in fact the NIC is in a 32-bit slot. This happens as
+ a result of a bug in some BIOSes. This can be worked around on the Tigon
+ II, but on the Tigon I initialization will fail.</dd>
+ <dt>ti%d: board self-diagnostics failed!</dt>
+ <dd>The ROMFAIL bit in the CPU state register was set after system startup,
+ indicating that the on-board NIC diagnostics failed.</dd>
+ <dt>ti%d: unknown hwrev</dt>
+ <dd>The driver detected a board with an unsupported hardware revision. The
+ <code class="Nm">ti</code> driver supports revision 4 (Tigon 1) and
+ revision 6 (Tigon 2) chips and has firmware only for those devices.</dd>
+ <dt>ti%d: watchdog timeout</dt>
+ <dd>The device has stopped responding to the network, or there is a problem
+ with the network connection (cable).</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">sendfile(2)</a>, <a class="Xr">altq(4)</a>,
+ <a class="Xr">arp(4)</a>, <a class="Xr">netintro(4)</a>,
+ <a class="Xr">ng_ether(4)</a>, <a class="Xr">vlan(4)</a>,
+ <a class="Xr">ifconfig(8)</a>, <a class="Xr">zero_copy(9)</a></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">ti</code> device driver first appeared in
+ <span class="Ux">FreeBSD 3.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">ti</code> driver was written by
+ <span class="An">Bill Paul</span>
+ &lt;<a class="Mt" href="mailto:wpaul@bsdi.com">wpaul@bsdi.com</a>&gt;. The
+ header splitting firmware modifications, character
+ <a class="Xr">ioctl(2)</a> interface and debugging support were written by
+ <span class="An">Kenneth Merry</span>
+ &lt;<a class="Mt" href="mailto:ken@FreeBSD.org">ken@FreeBSD.org</a>&gt;.
+ Initial zero copy support was written by <span class="An">Andrew
+ Gallatin</span>
+ &lt;<a class="Mt" href="mailto:gallatin@FreeBSD.org">gallatin@FreeBSD.org</a>&gt;.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">November 14, 2011</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>