Sorry, everyone, I sort of started this. :)
> > The issue is that nVidia supply a .o file containing all the goodies; it
> > is believed to be quite possible to fake up something using the kernel
> > network API to use this and make it believe it was a kernel driver.
Misunderstanding on Mr Green's part. My suggestion was that the
nvnetlib.o contains enough NIC API on to which we could glue an EB
driver API (as suggested already). It seems to me that the *driver* is
essentially open source, but that the minutiae of tweaking the NIC is
enclosed in nvnetlib.o - I've never done an Etherboot polling driver
before, but I've looked at enough NIC specs to guess that this is true,
and my original post to suggest to the xbox-linux guys that, if
possible, a
This would seem reasonable, as well - after all hardware vendors tend to
be obsessed only be hiding their hw interfaces; making life hard for the
world is usually just a side-effect.
And if we *do* hit any problems, we could just ask nVidia, no? At least
lets give them opportunity to be helpful before assuming that they
aren't. The LinuxBIOS experience is somethimes that asking hw vendors
for specs means that the *spec* may be NDA'd even though the resulting
source can be open.
> > The main question is, what's the prevailing opinion about using a .o in
> > this way GPL-wise. It has been suggested that we'll be okay if we do
> > not distribute the .o but make our GPL project consist of everything
> > but. (Because we are running on the xbox only, portability is not a
> > concern).
The GPL is only "enforced" at the point of *distribution* (from reading
http://emoglen.law.columbia.edu/publications/lu-12.html), but we are not
claiming nvnetlib.o is GPL'd. It's nVidia's copyright, which they
license as being OK for distribution in Linux related circumstances. The
question is more does *Etherboot* tolerate being linked with such code?
Actually, since EB can boot FreeDOS and maybe other things, I suppose
it's not exclusively Linux related. :)
> > In addition, has anyone made such a fake kernel API shell before? Has
> > anyone looked at supporting nForce motherboards?
I repeat that this was NOT my suggestion, but I believe OSkit does this.
> 1. The nVidia .o file is 20kB in size - around 4-5 times the size of most
> of the Etherboot drivers. This might be enough to prevent it working
> in 5.0.x (AFAICT, the memory-map changes in the 5.1.x branch will fix
> this anyway).
I can image that much of the nvnet.o might be bloat from Etherboot's
POV, but as you say EB can hopefully cope.
> 2. Is it possible to use the .o file to create a polling driver?
> Etherboot doesn't use interrupts.
Based on fairly cursory inspection, I'd guess yes. It may not be
elegant, though, and I suspect the only authoritative answer is likely
to be suck it and see.
Several dozen people will now prove me wrong...
> 3. As others have said, don't bother faking a kernel network API - just
> take the skeleton Etherboot driver in skel.c and fill out the gaps
> between that and the nVidia .o file.
:)
|