This is forcedeth: A new driver for the ethernet interface of the
NVIDIA nForce chipset, licensed under GPL.

The following kernels already include forcedeth:
* Linux 2.4.26 (forcedeth 0.25)
* Linux 2.6.5  (forcedeth 0.25)

The following distributions support forcedeth:
* SUSE 9.1
* SUSE 9.0 with current update kernel (forcedeth 0.23)
* Gentoo (since when?)
* Fedora Core 2
* Xbox Linux (since when?)
* please send me corrections/additions to this list


Currently I am adding gigabit ethernet support to forcedeth.

UPDATE:
NVidia has contributed gigabit support to forcedeth, so I'll work
on integrating their patch and fixing remaining bugs in it. If you want
to try it, download forcedeth_gigabit_try19.txt and apply it against
the latest 2.6 kernel.




The driver was written without support from NVIDIA, it's the result of
a cleanroom development:
Carl-Daniel and Andrew reverse engineered the nvnet driver and wrote a
specification, Manfred wrote the driver based on the spec. Carl-Daniel
fitted some compat glue to get it to compile under 2.4 and debugged
some nForce3 issues.

This release is intended for experienced users, it's beta quality:
normal network traffic should work full speed.
Some versions of the hardware seem to have incomplete TX interrupt
handling and need a workaround. That workaround is enabled by default.

We received success reports for nForce, nForce2 and nForce3 systems.
We'd appreciate throughput measurements.

cityhunter <x-y-z()laposte!net> has sent us the following results:
> doing a ftp transaction from my linux to windo$ filesize 650Mo
> mesured average 11202.6ko/s and most of the time stable :)
> this is better than nvidia! 

Try it yourself and tell us if something breaks. Note that the driver
generated quite a lot of debug output. This has been disabled now.
If you need debugging output (because it doesn't work perfectly),
simply change the line
#if 0
in linux/drivers/net/forcedeth.c:79 to
#if 1
and you should get gobs of debug output.

Fixed problems:
* Oops on module removal. Fixed in v0.18
* Packets with 1500 bytes size were discarded. Fixed in v0.17
* Some boards give bogus MAC addresses and work only partially.
  Same problem happens with nvnet on these boards. Please report
  your exact hardware version/ manufacturer since NVidia has stated
  this should never happen and they are interested in any cases where
  it happens. Workaround in v0.19
* Under extremely high network load on nForce3 systems, the card
  just stopped working. Fixed in v0.19
* nForce3 systems were programmed to an incredibly high interrupt rate.
  Fixed in v0.22
* gigabit support should be working.

Known problems:
* Some nForce versions will report every received packet as 1500 bytes
  long and fool RX statistics. This is definitely a hardware bug and
  we intend to provide a workaround sometime later.
* "eth0: received irq with unknown events 0x<something>. Please report"
  might show up in your logs. That means we didn't encounter such an
  event during development and can only guess about its meaning.
  Please tell us what you were doing when the message appeared, how
  often it appeared and if it affects behaviour of your machine
  negatively.

Send any bug reports to <linux-kernel@vger.kernel.org> or
<netdev@oss.sgi.com> and add Carl-Daniel Hailfinger
<c-d.hailfinger.kernel.2004@gmx.net> to the CC: of your message to get
the remaining issues fixed.


        Manfred Spraul
        Carl-Daniel Hailfinger
        Andrew de Quincey


The files listed below have a version number in their name.
forcedeth_2_4_patch.txt and forcedeth_2_6_patch.txt are links to
the most recent version available.

UPDATE: The patches below are not the most recent versions anymore.
Please get a current 2.4 or 2.6 kernel and use the newer drivers
included there.

v0.20 and earlier should apply cleanly against 2.6.0-test11 and
2.4.23 respectively. For your convenience, I have put up some of
the patches against 2.4.22 and 2.4.21, too.



IMPORTANT NOTE:
forcedeth_2_4_patch_v22.txt and later need at least 2.4.25-preX
forcedeth_2_6_patch_v22.txt and later need at least 2.6.2-rcX

If you need a makefile for 2.6 to compile forcedeth as a module
outside the tree, please mail me. Heiko Jones <heiko()smart-linux!com>
kindly gave me such a makefile and I want to get it tested before
I put it up here.

        Carl-Daniel



PLEASE READ THIS BEFORE YOU DOWNLOAD A PATCH.
If you can use kernel 2.4.26 or 2.6.5, you do not need any patch because
a current version of forcedeth is included in these and later kernels.
If you absolutely need support for newer nForce network adapters which
do not work with the current driver, please download 2.6.7-bk4 or later
which already has forcedeth included and apply
forcedeth_gigabit_try19.txt on top of it. If you want to work with
plain 2.6.7, you have to apply forcedeth-bk4.patch before applying
forcedeth_gigabit_try19.txt. If that makes your
network work, please mail <c-d.hailfinger.kernel.2004@gmx.net> so I can
use that info to finish the driver.

Thanks!
Apache/2.2.22 Server at www.hailfinger.org Port 80