I have been delving into the WDC kernel sources.
Initially, I just wanted to compile a module for a wifi-dongle -
couldn't be much slower than the "gig-e", right?
I ended up needing to patch the kernel,
and ended up with a (finite) number of differences
from vanilla which I may be able to sort out
now I am taking a (fairly ignorant) look at the changes,
and the additional drivers themselves,
to see if I can sort out some of the limitations of this box
due to bad drivers, or at least any
busy-loops, harcoded limits, etc.
The added stuff in the WDC source is basically the "arch-oxnas" stuff -
that-is, support for the stuff on the Oxford Semiconductor OXE800SE / OXE800DSE.
apart from various config files, that amounts to:
this, along with the libata changes needs attentiondisk uses too much cpu.
this is dm-crypt w/ ~500 lines of diff
dma, and the gmac stuff are the biggest patches
dma.c is pretty big, and has a bunch of test stuff…
this is an older version of http://www.viaarena.com/Driver/velocityget.tgz,
but it appears to be unused, a modded via-velocity from the kernel is used instead.
drivers/net/via-velocity.c is the most modified file from vanilla,
other significant ones are:
Ok, anyway, where exactly am I going with this anyway?
I can think of some interesting uses for this gadget,
it would help if the hardware was a little better understood.
So I am wondering:
If anyone with some kernel hacking skills has actually taken a look at the oxnas stuff?
If anyone has tried to contact oxsemi?
there are established drivers for some of their serial and IEEE 1394 stuff in the kernel.
If this oxnas chip has turned up in any other device?
What it would take for anyone on lkml to care about this thing?
If it would be worthwhile to more thouroughly document the contents of the WDC patch?
the diff from vanilla-126.96.36.199 is about 1.5mb. maybe it should be posted here?
how have other projects absorbed these monolithic "GPL sources" files?
So I am interested in helping to move this project forward,
but at this point, with my limited skills, I have just been experimenting
with some of the hardcoded values in the patch (like for the disk cache, mtu, etc),
looking at some unending loops that are introduced.
also making an attempt to eliminate cruft and make the patch as small as possible,
while remaining functionally identical…