>>
>> 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