Re: Compatibility of Nvidia NVNET driver license with GPL

From: Jeff Garzik
Date: Wed Dec 31 2003 - 08:02:41 EST


Karel Kulhavý wrote:
On Wed, Dec 31, 2003 at 01:36:58AM -0500, Jeff Garzik wrote:

Karel Kulhavý wrote:

Hello

I faintly remember reading some article on the Net from Linus Torvalds stating
something like if a piece of code is written specifically for Linux kernel, it
must be under GPL.

I have got an nVidia NForce2 board and downloaded their Ethernet driver (nvnet)
and they say in README: "the network driver provided by NVIDIA is subject to
the NVIDIA software license". How is with compatibility of such a behaviour
with GPL of the kernel sources?


Since I am not a lawyer, my engineering suggestion would be to sidestep legal issues by using "forcedeth" driver, to drive your nForce NIC. It's fully GPL'd, and full open source.


Suppose we would like to overcome these perpetual problems with misbehaving
manufacturers by designing a PCI network card from scratch in the soul of
free source hardware.

What are the requirements of the kernel for such a card to be cool instead of
piece of shit? How should such a card behave from PCI point of view, should it
support scatter, gather, how should interrupts be handled, what should be
programmable and what not? How should be busmastering implemented?

I am seriously thinking about designing something like that (tailored specially
for Linux) because of developping Ronja - if I included native Ronja support in
"my" network card, I could remove the superfluous circuits that implement
"bureaucracy" linke autonegotiation, TP link integrity etc. and concentrate on
raw performance. Also multiple ports could be on one card (say 4) which would
make the whole thing more nifty.

I have made to work the whole design chain from schematic design to production
of raw files for PCB manufacturers. Also seen a design of video capture
board for IDE connector so I judge implementing something on a PCI should'n
be a pain in the ass higher than moderate.

If you are serious about this, we have tons of good ideas, and tons of suggestions on how to avoid bad ideas :)

OpenCores (http://www.opencores.org/) might be a good place to start, as they already have a 10/100 ethernet MAC which is working, and has been silicon'd: http://www.opencores.org/projects/ethmac/ Full "source" for the MAC is available, in VHDL I think. OpenCores also has PCI VHDL and other glue you may need.

You'll definitely want to implement autonegotiation. It's a showstopper without that. And if it's not gigabit ethernet, it's already outdated. So it's a tough challenge.

Once you have basic gigabit ethernet working with 10/100/1000 autonegotiation, let us know, and we'll pelt you with good suggestions :)


Is it possible to obtain some PCI specs without NDA's and such bullshit?
Is here anyone who has taken the PCI specs and rewritten them in their
own words?

You don't need an NDA, but you do need to pay US$50 or so for the specs. Or a nice person might just send them to you :)

Jeff




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/