1.\" $OpenBSD: nfe.4,v 1.10 2006/08/30 22:56:05 jmc Exp $ 2.\" 3.\" Copyright (c) 2006 Jonathan Gray <jsg@openbsd.org> 4.\" 5.\" Permission to use, copy, modify, and distribute this software for any 6.\" purpose with or without fee is hereby granted, provided that the above 7.\" copyright notice and this permission notice appear in all copies. 8.\" 9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16.\" 17.Dd July 12, 2008 18.Dt NFE 4 19.Os 20.Sh NAME 21.Nm nfe 22.Nd NVIDIA nForce MCP 10/100/Gigabit Ethernet driver 23.Sh SYNOPSIS 24To compile this driver into the kernel, 25place the following lines in your 26kernel configuration file: 27.Bd -ragged -offset indent 28.Cd "device miibus" 29.Cd "device nfe" 30.Ed 31.Pp 32Alternatively, to load the driver as a 33module at boot time, place the following line in 34.Xr loader.conf 5 : 35.Bd -literal -offset indent 36if_nfe_load="YES" 37.Ed 38.Sh DESCRIPTION 39The 40.Nm 41driver supports PCI Ethernet adapters based on the NVIDIA 42nForce Media and Communications Processors (MCP), such as 43the nForce, nForce 2, nForce 3, CK804, MCP04, MCP51, MCP55, 44MCP61, MCP65, MCP67, MCP73, MCP77 and MCP79 Ethernet controller chips. 45.Pp 46The 47.Nm 48driver supports the following 49.Ar media 50types: 51.Pp 52.Bl -tag -width autoselect -compact 53.It Cm autoselect 54Enable autoselection of the media type and options. 55.It Cm 10baseT 56Set 10Mbps operation. 57.It Cm 100baseTX 58Set 100Mbps (Fast Ethernet) operation. 59.It Cm 1000baseT 60Set 1000Mbps (Gigabit Ethernet) operation (recent models only). 61.El 62.Ss MIB Variables and Loader Tunables 63The following per-interface variables are implemented in the 64.Va hw.nfe Ns Em X 65branch of the 66.Xr sysctl 3 67MIB. 68Loader tunables with the same names, but using the prefix 69.Va hw.nfe 70are also implemented, they apply to all 71.Nm 72interfaces in system and can be set in 73.Xr loader.conf 5 . 74.Bl -tag -width ".Va rx_ring_count" 75.It Va imtimer 76Interrupt moderation time (unit: microseconds). 77The default value is -125. 78A value of 0 means disabled. 79A negative value, -Y, means hardware timer simulated interrupt moderation, 80the simulated interrupt moderation timer will be set to Y. 81A positive valye, Y, means hardware timer only interrupt moderation, 82hardware timer will be set to Y. 83Value can be tuned when the interface is running. 84Positive values in the range 64-128 seems to be a reasonable. 85.It Va rx_ring_count 86RX ring count. 87sysctl node is read-only. 88The default value is 128. 89With heavier interrupt moderation (eg. imtimer=-250), 90it is recommended to increase rx_ring_count (eg. to 512). 91.It Va tx_ring_count 92TX ring count. 93sysctl node is read-only. 94The default value is 256. 95.El 96.Pp 97For more information on configuring this device, see 98.Xr ifconfig 8 . 99The 100.Nm 101driver supports 102.Xr polling 4 . 103.Sh SEE ALSO 104.Xr arp 4 , 105.Xr ifmedia 4 , 106.Xr intro 4 , 107.Xr miibus 4 , 108.Xr netintro 4 , 109.Xr pci 4 , 110.Xr polling 4 , 111.Xr vlan 4 , 112.Xr loader.conf 5 , 113.Xr ifconfig 8 114.Sh HISTORY 115The 116.Nm 117device driver first appeared in 118.Ox 3.9 119and was imported into 120.Dx 1.7 . 121.Sh AUTHORS 122.An -nosplit 123The 124.Nm 125driver was written by 126.An Jonathan Gray Aq Mt jsg@openbsd.org 127and 128.An Damien Bergamini Aq Mt damien@openbsd.org . 129It was ported to 130.Dx 131by 132.An Sepherosa Ziehau Aq Mt sepherosa@gmail.com . 133.Sh CAVEATS 134NVIDIA refuse to release any documentation on their products. 135