mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-28 11:57:28 +00:00
16d78bb878
Spotted by: marius Discussed with: ru
339 lines
10 KiB
Groff
339 lines
10 KiB
Groff
.\" Copyright (c) 1997, 1998, 1999
|
|
.\" Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by Bill Paul.
|
|
.\" 4. Neither the name of the author nor the names of any co-contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
|
|
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
.\" THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd July 16, 2005
|
|
.Dt TI 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm ti
|
|
.Nd "Alteon Networks Tigon I and Tigon II Gigabit Ethernet driver"
|
|
.Sh SYNOPSIS
|
|
To compile this driver into the kernel,
|
|
place the following lines in your
|
|
kernel configuration file:
|
|
.Bd -ragged -offset indent
|
|
.Cd "device ti"
|
|
.Cd "options TI_PRIVATE_JUMBOS"
|
|
.Cd "options TI_JUMBO_HDRSPLIT"
|
|
.Ed
|
|
.Pp
|
|
Alternatively, to load the driver as a
|
|
module at boot time, place the following line in
|
|
.Xr loader.conf 5 :
|
|
.Bd -literal -offset indent
|
|
if_ti_load="YES"
|
|
.Ed
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
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.
|
|
.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.
|
|
.Pp
|
|
Support for jumbo frames is provided via the interface MTU setting.
|
|
Selecting an MTU larger than 1500 bytes with the
|
|
.Xr ifconfig 8
|
|
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.
|
|
.Pp
|
|
Header splitting support for Tigon 2 boards (this option has no effect for
|
|
the Tigon 1) can be turned on with the
|
|
.Dv TI_JUMBO_HDRSPLIT
|
|
option.
|
|
See
|
|
.Xr zero_copy 9
|
|
for more discussion on zero copy receive and header splitting.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
driver normally uses jumbo receive buffers allocated by the
|
|
.Xr sendfile 2
|
|
buffer allocator, but can be configured to use its own private pool of
|
|
jumbo buffers that are contiguous instead of buffers from the jumbo
|
|
allocator, which are made up of multiple page sized chunks.
|
|
To turn on private jumbos, use the
|
|
.Dv TI_PRIVATE_JUMBOS
|
|
option.
|
|
.Pp
|
|
Support for vlans is also available using the
|
|
.Xr vlan 4
|
|
mechanism.
|
|
See the
|
|
.Xr vlan 4
|
|
man page for more details.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
driver supports the following media types:
|
|
.Pp
|
|
.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
|
|
.It autoselect
|
|
Enable autoselection of the media type and options.
|
|
The user can manually override
|
|
the autoselected mode by adding media options to the
|
|
.Pa /etc/rc.conf
|
|
file.
|
|
.It 10baseT/UTP
|
|
Set 10Mbps operation.
|
|
The
|
|
.Ar mediaopt
|
|
option can also be used to select either
|
|
.Ar full-duplex
|
|
or
|
|
.Ar half-duplex
|
|
modes.
|
|
.It 100baseTX
|
|
Set 100Mbps (Fast Ethernet) operation.
|
|
The
|
|
.Ar mediaopt
|
|
option can also be used to select either
|
|
.Ar full-duplex
|
|
or
|
|
.Ar half-duplex
|
|
modes.
|
|
.It 1000baseSX
|
|
Set 1000Mbps (Gigabit Ethernet) operation.
|
|
Only full
|
|
.Ar full-duplex
|
|
mode is supported at this speed.
|
|
.El
|
|
.Pp
|
|
The
|
|
.Nm
|
|
driver supports the following media options:
|
|
.Pp
|
|
.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
|
|
.It full-duplex
|
|
Force full duplex operation
|
|
.It half-duplex
|
|
Force half duplex operation.
|
|
.El
|
|
.Pp
|
|
For more information on configuring this device, see
|
|
.Xr ifconfig 8 .
|
|
.Sh HARDWARE
|
|
The
|
|
.Nm
|
|
driver supports Gigabit Ethernet adapters based on the
|
|
Alteon Tigon I and II chips.
|
|
The
|
|
.Nm
|
|
driver has been tested with the following adapters:
|
|
.Pp
|
|
.Bl -bullet -compact
|
|
.It
|
|
3Com 3c985-SX Gigabit Ethernet adapter (Tigon 1)
|
|
.It
|
|
3Com 3c985B-SX Gigabit Ethernet adapter (Tigon 2)
|
|
.It
|
|
Alteon AceNIC V Gigabit Ethernet adapter (1000baseSX)
|
|
.It
|
|
Alteon AceNIC V Gigabit Ethernet adapter (1000baseT)
|
|
.It
|
|
Digital EtherWORKS 1000SX PCI Gigabit adapter
|
|
.It
|
|
Netgear GA620 Gigabit Ethernet adapter (1000baseSX)
|
|
.It
|
|
Netgear GA620T Gigabit Ethernet adapter (1000baseT)
|
|
.El
|
|
.Pp
|
|
The following adapters should also be supported but have
|
|
not yet been tested:
|
|
.Pp
|
|
.Bl -bullet -compact
|
|
.It
|
|
Asante GigaNIX1000T Gigabit Ethernet adapter
|
|
.It
|
|
Asante PCI 1000BASE-SX Gigabit Ethernet adapter
|
|
.It
|
|
Farallon PN9000SX Gigabit Ethernet adapter
|
|
.It
|
|
NEC Gigabit Ethernet
|
|
.It
|
|
Silicon Graphics PCI Gigabit Ethernet adapter
|
|
.El
|
|
.Sh IOCTLS
|
|
In addition to the standard
|
|
.Xr socket 2
|
|
.Xr ioctl 2
|
|
calls implemented by most network drivers, the
|
|
.Nm
|
|
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
|
|
.Xr gdb 1 ,
|
|
the user can
|
|
debug firmware running on the Tigon board.
|
|
.Pp
|
|
These ioctls and their arguments are defined in the
|
|
.In sys/tiio.h
|
|
header file.
|
|
.Bl -tag -width ".Dv ALT_WRITE_TG_MEM"
|
|
.It Dv TIIOCGETSTATS
|
|
Return card statistics DMAed from the card into kernel memory approximately
|
|
every 2 seconds.
|
|
(That time interval can be changed via the
|
|
.Dv TIIOCSETPARAMS
|
|
ioctl.)
|
|
The argument is
|
|
.Vt "struct ti_stats" .
|
|
.It Dv TIIOCGETPARAMS
|
|
Get various performance-related firmware parameters that largely affect how
|
|
interrupts are coalesced.
|
|
The argument is
|
|
.Vt "struct ti_params" .
|
|
.It Dv TIIOCSETPARAMS
|
|
Set various performance-related firmware parameters that largely affect how
|
|
interrupts are coalesced.
|
|
The argument is
|
|
.Vt "struct ti_params" .
|
|
.It Dv TIIOCSETTRACE
|
|
Tell the NIC to trace the requested types of information.
|
|
The argument is
|
|
.Vt ti_trace_type .
|
|
.It Dv TIIOCGETTRACE
|
|
Dump the trace buffer from the card.
|
|
The argument is
|
|
.Vt "struct ti_trace_buf" .
|
|
.It Dv ALT_ATTACH
|
|
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
|
|
.Fx .
|
|
.It Dv ALT_READ_TG_MEM
|
|
Read the requested memory region from the Tigon board.
|
|
The argument is
|
|
.Vt "struct tg_mem" .
|
|
.It Dv ALT_WRITE_TG_MEM
|
|
Write to the requested memory region on the Tigon board.
|
|
The argument is
|
|
.Vt "struct tg_mem" .
|
|
.It Dv ALT_READ_TG_REG
|
|
Read the requested register on the Tigon board.
|
|
The argument is
|
|
.Vt "struct tg_reg" .
|
|
.It Dv ALT_WRITE_TG_REG
|
|
Write to the requested register on the Tigon board.
|
|
The argument is
|
|
.Vt "struct tg_reg" .
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width ".Pa /dev/ti[0-255]" -compact
|
|
.It Pa /dev/ti[0-255]
|
|
Tigon driver character interface.
|
|
.El
|
|
.Sh DIAGNOSTICS
|
|
.Bl -diag
|
|
.It "ti%d: couldn't map memory"
|
|
A fatal initialization error has occurred.
|
|
.It "ti%d: couldn't map interrupt"
|
|
A fatal initialization error has occurred.
|
|
.It "ti%d: no memory for softc struct!"
|
|
The driver failed to allocate memory for per-device instance information
|
|
during initialization.
|
|
.It "ti%d: failed to enable memory mapping!"
|
|
The driver failed to initialize PCI shared memory mapping.
|
|
This might
|
|
happen if the card is not in a bus-master slot.
|
|
.It "ti%d: no memory for jumbo buffers!"
|
|
The driver failed to allocate memory for jumbo frames during
|
|
initialization.
|
|
.It "ti%d: bios thinks we're in a 64 bit slot, but we aren't"
|
|
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.
|
|
.It "ti%d: board self-diagnostics failed!"
|
|
The ROMFAIL bit in the CPU state register was set after system
|
|
startup, indicating that the on-board NIC diagnostics failed.
|
|
.It "ti%d: unknown hwrev"
|
|
The driver detected a board with an unsupported hardware revision.
|
|
The
|
|
.Nm
|
|
driver supports revision 4 (Tigon 1) and revision 6 (Tigon 2) chips
|
|
and has firmware only for those devices.
|
|
.It "ti%d: watchdog timeout"
|
|
The device has stopped responding to the network, or there is a problem with
|
|
the network connection (cable).
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr sendfile 2 ,
|
|
.Xr arp 4 ,
|
|
.Xr netintro 4 ,
|
|
.Xr ng_ether 4 ,
|
|
.Xr vlan 4 ,
|
|
.Xr ifconfig 8 ,
|
|
.Xr zero_copy 9
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
device driver first appeared in
|
|
.Fx 3.0 .
|
|
.Sh AUTHORS
|
|
.An -nosplit
|
|
The
|
|
.Nm
|
|
driver was written by
|
|
.An Bill Paul Aq wpaul@bsdi.com .
|
|
The header splitting firmware modifications, character
|
|
.Xr ioctl 2
|
|
interface and debugging support were written by
|
|
.An Kenneth Merry Aq ken@FreeBSD.org .
|
|
Initial zero copy support was written by
|
|
.An Andrew Gallatin Aq gallatin@FreeBSD.org .
|