home | help
TI(4)			     Kernel Interfaces Manual			   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 con-
     tains an embedded R4000 CPU, gigabit MAC, dual DMA channels and a	PCI  in-
     terface  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.   Communica-
     tion  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.

     While the Tigon chipset supports 10, 100 and 1000Mbps speeds,  support  for
     10  and  100Mbps  speeds is only available on boards with the proper trans-
     ceivers.  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.  Se-
     lecting an MTU larger than 1500 bytes with the ifconfig(8) utility  config-
     ures  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 send-
     file(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  al-
     locator,  which are made up of multiple page sized chunks.  To turn on pri-
     vate jumbos, use the TI_PRIVATE_JUMBOS option.

     Support for vlans is also available using the vlan(4) mechanism.	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 autoselected  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) operation.  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 ifconfig(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:

     *	 3Com 3c985-SX Gigabit Ethernet adapter (Tigon 1)
     *	 3Com 3c985B-SX Gigabit Ethernet adapter (Tigon 2)
     *	 Alteon AceNIC V Gigabit Ethernet adapter (1000baseSX)
     *	 Alteon AceNIC V Gigabit Ethernet adapter (1000baseT)
     *	 Digital EtherWORKS 1000SX PCI Gigabit adapter
     *	 Netgear GA620 Gigabit Ethernet adapter (1000baseSX)
     *	 Netgear GA620T Gigabit Ethernet adapter (1000baseT)

     The following adapters should also be  supported  but  have  not  yet  been
     tested:

     *	 Asante GigaNIX1000T Gigabit Ethernet adapter
     *	 Asante PCI 1000BASE-SX Gigabit Ethernet adapter
     *	 Farallon PN9000SX Gigabit Ethernet adapter
     *	 NEC Gigabit Ethernet
     *	 Silicon Graphics PCI Gigabit Ethernet adapter

IOCTLS
     In  addition  to  the standard socket(2) ioctl(2) calls implemented by most
     network drivers, the ti 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
     gdb(1), the user can debug firmware running on the Tigon board.

     These  ioctls  and  their	arguments are defined in the <sys/tiio.h> header
     file.

     TIIOCGETSTATS     Return card statistics DMAed from the  card  into  kernel
		       memory  approximately every 2 seconds.  (That time inter-
		       val 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  argu-
		       ment is struct ti_params.

     TIIOCSETPARAMS    Set  various performance-related firmware parameters that
		       largely affect how interrupts are coalesced.   The  argu-
		       ment is struct ti_params.

     TIIOCSETTRACE     Tell the NIC to trace the requested types of information.
		       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  So-
		       laris  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  ar-
		       gument 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 allocate 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-mas-
     ter slot.

     ti%d:  no	memory	for jumbo buffers!  The driver failed to allocate memory
     for jumbo frames during initialization.

     ti%d: bios thinks we're in a 64 bit slot, but we aren't  The BIOS has  pro-
     grammed  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 reg-
     ister  was set after system startup, indicating that the on-board NIC diag-
     nostics failed.

     ti%d: unknown hwrev  The driver detected a board with an unsupported  hard-
     ware  revision.  The ti driver supports revision 4 (Tigon 1) and revision 6
     (Tigon 2) chips and has firmware only for those devices.

     ti%d: watchdog timeout  The device has stopped responding to  the	network,
     or there is a problem with the network connection (cable).

SEE ALSO
     sendfile(2),   arp(4),   netintro(4),  ng_ether(4),  vlan(4),  ifconfig(8),
     zero_copy(9)

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 split-
     ting firmware modifications, character  ioctl(2)  interface  and  debugging
     support were written by Kenneth Merry <ken@FreeBSD.org>.  Initial zero copy
     support was written by Andrew Gallatin <gallatin@FreeBSD.org>.

FreeBSD 7.2			  July 16, 2005 			   TI(4)

home | help