>> 
>> USB3 at least is not solely desktop relevant.  I have a backburnered plan to 
>> work on this.
>> 
>> Unfortunately, I don't believe that getting good USB3 type performance is 
>> possible with our current USB stack.  (Furthermore, our USB stack is a 
>> convoluted mess -- owing largely to the way it was designed using STREAMs -- 
>> which actually makes writing USB drivers very unlike any other kind of 
>> driver.)
>> 
>> My long running plan (probably won't get to this until 2013, if I'm honest) 
>> is to try to rewrite (perhaps a parallel stack) the USB stack to support USB 
>> 3 devices.  It should be implemented to be much more of a typical nexus/leaf 
>> driver model.  (Let's be honest, nobody really benefits from the STREAMs 
>> architecture that underpins the current stack.  I've never heard of anyone 
>> pushing other kinds of modules between USB controllers and leaf devices, for 
>> example.)
>> 
>> The end result will also make it *much* easier to port drivers from other 
>> platforms.  (Right now, the USBA is alien enough to all other platform 
>> implementations that its almost impossible to borrow any significant logic 
>> from any other implementations.)
> 
> Would it be possible to lift most of the USB stack from FreeBSD? I mean,
> if they are further along, why not partake of their superior features?
> Like FreeBSD pulls in ZFS. Open-source means everybody wins.

I'm not sure about *most*, but certainly we ought to be able to suck in 
substantial portions of the host controller and device drivers.  I guess maybe 
50-60% of that code may be usable for us, and I am completely happy to leverage 
that. ;-)  In fact, I'd say that facilitating this kind of sharing should be a 
goal, although not a prime directive.   (I wouldn't throw away the rest of the 
DDI or try to build a glue layer, for example.  But having a design that is 
basically more familiar than the STREAMs weirdness will go a long way in the 
right direction.)

I think it will be *very* hard to get more than that though, even with a design 
that is much friendlier to that type of sharing than we have in the current 
USBA stack.  (Under the current USBA stuff, I think about 10% of the code might 
be shareable.)

(Btw, we do already lift a lot of things from FreeBSD, and they lift from us 
too.  We get pieces of libc, a number of userland components, and various 
device drivers from them.  From us they get some of our userland enhancements 
(e.g. localedef, some of my collation improvements), DTrace, ZFS.  Its win-win 
for everyone. :-)

        - Garrett



_______________________________________________
oi-dev mailing list
[email protected]
http://openindiana.org/mailman/listinfo/oi-dev

Reply via email to