USB2.0 external hub and ehci question
Bernd Walter
ticso at cicely12.cicely.de
Tue Sep 30 03:33:48 PDT 2003
On Tue, Sep 30, 2003 at 05:26:33AM +0200, Barry Bouwsma wrote:
> [Drop hostname part of IPv6-only address above to obtain IPv4-capable e-mail,
> or just drop me from the recipients and I'll catch up from the archives]
>
>
> Hallo Hackers, I suppose I should post this to -current as the code in
> question is derived from there, but I'm running it on RELENG_4, so...
>
> I've ported the USB controller codes (uhci, ohci, and ehci) from -current
> to 4.9-PRERELEASE in order to try and add USB2.0 support to 4.x, and I see
> something that I also saw with the NetBSD ehci codes back last December;
> namely, that I can't attach an external hub, supposedly with USB2.0
> capability, and have it be recognized.
>
> First, I seem to have no problems building just the uhci and ohci codes
> into the usb.ko kernel module, and using them, though I haven't thoroughly
> crash-tested them.
>
> I've mixed all three controller codes, with the result that the hub is
> not seen. Nor is the external drive. Which I attribute to my own
> incompetence more than anything. So to make things easier, I ditched
> all but the ehci code and ignored the check for companion controllers,
> to limit testing to just that.
>
> With an external USB2.0 drive connected, I am able to see and mount it.
> When I connect the external hub in its place, I get the error that the
> port was disabled, STALLED -- just as I saw under old NetBSD.
>
> I haven't built -current, or a more recent NetBSD, to see if their
> behaviour is any different when faced with this hub. Is it possible
> I need some sort of quirks entry for this device, which I can use as
> a USB1.x device fine? Or do I not even get that far?
cypress hubs stall the controll endpoint without a reason when running
high speed - even if it had one the specs say that the control endpoint
shouldn't stall at all.
I have a workaround for the probing problem, but USB2 hubs won't work
anyway, because at ehci is missing support for interrupt endpoints.
Maybe there are other show stopppers too.
--
B.Walter BWCT http://www.bwct.de
ticso at bwct.de info at bwct.de
More information about the freebsd-hackers
mailing list