.\" $NetBSD: fxp.4,v 1.16 2008/04/30 13:10:54 martin Exp $
.\"
.\" Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
.\" NASA Ames Research Center.
.\"
.\" 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.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 THE FOUNDATION OR CONTRIBUTORS
.\" 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.
.\"
.Dd October 15, 2005
.Dt FXP 4
.Os
.Sh NAME
.Nm fxp
.Nd Intel i8255x 10/100 Ethernet device driver
.Sh SYNOPSIS
.Cd "fxp* at cardbus? function ?"
.Cd "fxp* at pci? dev ? function ?"
.Sh DESCRIPTION
The
.Nm
device driver supports Ethernet interfaces based on the Intel i82557,
i82558, i82559, and i82550 10/100 PCI Ethernet chips.
.Pp
Certain versions of the i8255x support loading microcode which implements
a receive interrupt mitigation function, known as
.Dq CPUSaver .
Use of this option can improve performance in some situations by reducing
interrupt load on the host.
This option is available on the following chip versions:
.Pp
.Bl -bullet -compact
.It
i82558 step A4 (rev 4)
.It
i82558 step B0 (rev 5)
.It
i82559 step A0 (rev 8)
.It
i82559S step A (rev 9)
.It
i82550 (rev 12)
.It
i82550 step C (rev 13)
.El
.Pp
This option is enabled by setting the
.Dq link0
option with
.Xr ifconfig 8 .
.Pp
Some chipset revisions can suffer from a receiver-side lockup bug which
can be mitigated by resetting the chip every sixteen seconds without
traffic.
Since the probe for affected chipsets generates false positives
and the workaround can cause momentary loss of responsiveness, particularly
noticeable when playing audio, the workaround is not enabled by default.
The boot messages will indicate if any interface may have this issue.
The workaround is enabled by setting the
.Dq link1
option with
.Xr ifconfig 8 .
.Sh HARDWARE
Cards supported by the
.Nm
driver include:
.Pp
.Bl -bullet -compact
.It
Intel EtherExpress Pro 10+
.It
Intel EtherExpress Pro 100B
.It
Intel EtherExpress Pro 100+
.It
Intel InBusiness 10/100
.It
Intel PRO/100 S
.El
.Sh MEDIA SELECTION
Media selection is supported via MII.
See
.Xr ifmedia 4
and
.Xr mii 4
for more information.
.Pp
EtherExpress Pro 10+ boards may use a Seeq 80c24 AutoDUPLEX(tm)
media interface.
Boards with these chips do not support media
selection, as the 80c24 has no programming interface, and no
way to read link status.
These boards claim a media of "manual"
since they self-configure based on the configuration of the link
partner (hub or switch).
.Sh DIAGNOSTICS
.Bl -diag
.It "fxp0: WARNING: SCB timed out!"
The driver timed out waiting for the chip's command interface to
become ready.
.It "fxp0: too many segments, aborting"
The driver encountered a packet that included too many DMA segments,
and was not able to allocate a new buffer to transmit the packet from.
The packet has been dropped.
.It "fxp0: too many segments, retrying"
The driver encountered a packet that included too many DMA segments,
and allocated a new buffer to transmit the packet from.
.It "fxp0: can't load mbuf chain, error = %d"
The driver was unable to load a transmit DMA map, and has reported the
errno value.
.It "fxp0: device timeout"
The device failed to generate a transmit complete interrupt for the
last packet transmitted.
The device has been reset.
.It "fxp0: can't load rx buffer, error = %d"
The driver was unable to load the DMA map for a receive buffer, and
has reported the errno value.
This error is currently fatal, and will
panic the system.
.It "fxp0: fxp_mdi_read: timed out"
The MDIO failed to become ready during an MII read operation.
.It "fxp0: fxp_mdi_write: timed out"
The MDIO failed to become ready during an MII write operation.
.It "fxp0: May need receiver lock-up workaround"
The interface may need to be periodically reset to workaround a receiver
lock-up bug.
.El
.Sh SEE ALSO
.Xr cardbus 4 ,
.Xr ifmedia 4 ,
.Xr intro 4 ,
.Xr mii 4 ,
.Xr pci 4 ,
.Xr ifconfig 8