ti(4)
NAME
- ti - Alteon Networks Tigon I and Tigon II Gigabit Ethernet
- driver
SYNOPSIS
To compile this driver into the kernel, place the following lines in your kernel configuration file: device ti options TI_PRIVATE_JUMBOS options TI_JUMBO_HDRSPLIT Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5): if_ti_load="YES"
DESCRIPTION
- The ti 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 chan - nels 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 memo - ry and bus
master DMA. The Tigon I and II support hardware multicast - address filtering, VLAN tag extraction and insertion, and jumbo Ether
- net 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. - 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. - Support for jumbo frames is provided via the interface MTU
- setting.
Selecting an MTU larger than 1500 bytes with the 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. - Header splitting support for Tigon 2 boards (this option has
- no effect
for the Tigon 1) can be turned on with the TI_JUMBO_HDRSPLIT - option. See
zero_copy(9) for more discussion on zero copy receive and - header splitting.
- The ti driver normally uses jumbo receive buffers allocated
- by the
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 TI_PRIVATE_JUMBOS option. - Support for vlans is also available using the vlan(4) mecha
- nism. See the
vlan(4) man page for more details. - The ti driver supports the following media types:
- autoselect Enable autoselection of the media type
- and options.
- The user can manually override the au
- toselected
mode by adding media options to the - /etc/rc.conf
file. - 10baseT/UTP Set 10Mbps operation. The mediaopt
- option can also
- be used to select either full-duplex
- or half-duplex
modes. - 100baseTX Set 100Mbps (Fast Ethernet) operation.
- The
- mediaopt option can also be used to
- select either
full-duplex or half-duplex modes. - 1000baseSX Set 1000Mbps (Gigabit Ethernet) opera
- tion. Only
- full full-duplex mode is supported at
- this speed.
- The ti driver supports the following media options:
- full-duplex Force full duplex operation
- half-duplex Force half duplex operation.
- For more information on configuring this device, see ifcon
- fig(8).
HARDWARE
- The ti driver supports Gigabit Ethernet adapters based on
- the Alteon
Tigon I and II chips. The ti driver has been tested with - the following
adapters: - +o 3Com 3c985-SX Gigabit Ethernet adapter (Tigon 1)
+o 3Com 3c985B-SX Gigabit Ethernet adapter (Tigon 2)
+o Alteon AceNIC V Gigabit Ethernet adapter (1000baseSX)
+o Alteon AceNIC V Gigabit Ethernet adapter (1000baseT)
+o Digital EtherWORKS 1000SX PCI Gigabit adapter
+o Netgear GA620 Gigabit Ethernet adapter (1000baseSX)
+o Netgear GA620T Gigabit Ethernet adapter (1000baseT) - The following adapters should also be supported but have not
- yet been
tested: - +o Asante GigaNIX1000T Gigabit Ethernet adapter
+o Asante PCI 1000BASE-SX Gigabit Ethernet adapter
+o Farallon PN9000SX Gigabit Ethernet adapter
+o NEC Gigabit Ethernet
+o Silicon Graphics PCI Gigabit Ethernet adapter
IOCTLS
- In addition to the standard socket(2) ioctl(2) calls imple
- mented by most
network drivers, the ti driver also includes a character de - vice interface
that can be used for additional diagnostics, configuration - and debugging.
With this character device interface, and a specially - patched version of
gdb(1), the user can debug firmware running on the Tigon - board.
- These ioctls and their arguments are defined in the #include
- <sys/tiio.h>
header file. - TIIOCGETSTATS Return card statistics DMAed from the
- card into
- kernel memory approximately every 2
- seconds. (That
time interval can be changed via the - TIIOCSETPARAMS
ioctl.) The argument is struct - ti_stats.
- TIIOCGETPARAMS Get various performance-related
- firmware parameters
- that largely affect how interrupts are
- coalesced.
The argument is struct ti_params. - TIIOCSETPARAMS Set various performance-related
- firmware parameters
- that largely affect how interrupts are
- coalesced.
The argument is struct ti_params. - TIIOCSETTRACE Tell the NIC to trace the requested
- types of infor
- mation. The argument is
- ti_trace_type.
- TIIOCGETTRACE Dump the trace buffer from the card.
- The argument
- is struct ti_trace_buf.
- 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 FreeBSD. - ALT_READ_TG_MEM Read the requested memory region from
- the Tigon
- board. The argument is struct tg_mem.
- ALT_WRITE_TG_MEM Write to the requested memory region
- on the Tigon
- board. The argument is struct tg_mem.
- ALT_READ_TG_REG Read the requested register on the
- Tigon board.
- The argument is struct tg_reg.
- ALT_WRITE_TG_REG Write to the requested register on the
- Tigon board.
- The argument is struct tg_reg.
FILES
/dev/ti[0-255] Tigon driver character interface.
DIAGNOSTICS
- ti%d: couldn't map memory A fatal initialization error has
- occurred.
- ti%d: couldn't map interrupt A fatal initialization error
- has occurred.
- ti%d: no memory for softc struct! The driver failed to al
- locate memory
for per-device instance information during initialization. - 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. - ti%d: no memory for jumbo buffers! The driver failed to al
- locate memory
for jumbo frames during initialization. - 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. - 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. - ti%d: unknown hwrev The driver detected a board with an un
- supported
hardware revision. The ti driver supports revision 4 (Tigon - 1) and revision 6 (Tigon 2) chips and has firmware only for those de
- vices.
- ti%d: watchdog timeout The device has stopped responding to
- the network,
or there is a problem with the network connection (cable).
SEE ALSO
HISTORY
The ti device driver first appeared in FreeBSD 3.0.
AUTHORS
- The ti driver was written by Bill Paul <wpaul@bsdi.com>.
- The header
splitting firmware modifications, character ioctl(2) inter - face and debugging support were written by Kenneth Merry <ken@FreeB
- SD.org>. Initial
zero copy support was written by Andrew Gallatin <gal - latin@FreeBSD.org>.
- BSD July 16, 2005