Subject: Re: Annoucing the Port of FreeBSD NForce ethernet driver to NetBSD
To: None <jonathan@dsg.stanford.edu>
From: William S. Morgart <wsm@morgart.com>
List: tech-kern
Date: 05/01/2005 23:32:36
>>>>> "Jonathan" == Jonathan Stone <jonathan@dsg.stanford.edu> writes:

Jonathan> In message <200504250304.j3P34gqI005704@morgart.com>,
Jonathan> "William S. Morgart" writes:

>> I have ported Quinton Dolan's FreeBSD i386 port of the NVidia
>> NForce ethernet driver to NetBSD (>= 2.99.17).


Jonathan> Just out of curiosity: have you looked at the Linux
Jonathan> `forcedeth' driver? I haven't, but if it really works, and
Jonathan> nVidia is sending the developers diffs, then maybe the info
Jonathan> there will enough to write a full-source, BSD-licence *BSD
Jonathan> driver?

Jonathan> Just a thought.

I have looked at the forcedeth driver but decided that Quinton's work
on FreeBSD was easier to port initially - I had nVidia hardware that I
wanted to get NetBSD fully operational on. Now looking at the
forcedeth driver is possible since I have networking up.

>> It is functional and has some open issues - multicast support
>> foremost since I don't have a multicast environment to test in.

Jonathan> Have you tried pinging 224.0.0.1?

Yes (thanks to Jason Thorpe for pointing me at that address) and it
works in the latest version of the driver. 

>> The driver requires the addition of support for the Realtek 8139
>> PHY device. I've ported the FreeBSD version written by Bill Paul
>> <wpaul@ctr.columbia.edu>. of this support to NetBSD. The kernel
>> config changes can be found in the nvnet driver tar file or at
>> http://www.morgart.com/NetBSD/Realtek8139/rlphy.tgz.
>> 
>> I'm providing the Realtek support separately in the hope that it
>> can be added to the main NetBSD source.

Jonathan> I skimmed this very quickly. a few quick comments:

Jonathan> I didn't understand the check for an `rl' parent device: If
Jonathan> you're using that phy with the nforce ethernet driver, does
Jonathan> the nforce attach as some kind of `rl'. or an `nv', or what?
Jonathan> Am I missing something?

I don't know ... the rlphy.c file is what is in FreeBSD and I only
changed what was necessary to get it to work in NetBSD ... So checking
if the parent is an rl device could be completely useless in
NetBSD. Its also code that's not reached in the rlphy_match function
since the check for realtek 8201 phy at the beginning should always
match for the nvidia hardware thus the other two checks in that
function could be deleted.


Jonathan> Also, if we did import this, we should rip out the
Jonathan> corresponding code from the 81x9 driver (we don't want to
Jonathan> duplicate it).

It would probably be more appropriate to add to the 81x9 phy driver
support for the 8139 ... but I haven't looked at whether that is
sensible or not.

Jonathan> Last: does the FreeBSD driver work with the gigabit Nvidia
Jonathan> Ethernet?  Have you tried it? Will it need yet more PHY
Jonathan> support?

It should since the FreeBSD driver and NetBSD driver are really
wrappers around the nVidia supplied software.

Regards,

Bill Morgart
wsm@morgart.com