On Fri, Mar 30, 2001 at 03:04:24PM -0800, Miles Lane wrote:
> Georg Acher wrote:
> 
> > Still not fixed:
> > - Fix data toggles for killed bulk URBs
> > - Workaround for VIA-UHCI babble problem (I have contacted VIA...)
> 
> Just curious, is this a problem that plagues the uhci driver
> as well?  If not, have you looked into what uhci is doing
> differently when talking to one of the VIA UHCI host-controllers?

To summarize what's happening:

During my work with the EZUSB I sometimes produced a firmware that
mysteriously killed usb-uhci. The symptom was that no transfer made it 
to the USB  and thus timed out. So I fixed the errors in the firmware or the
VHDL-code and it worked fine again (very pragmatic way ;-)

Last week I found the time to investigate this a bit deeper. The root of the
problems lies in the faulty firmware, that sends more isochronous data to
the PC than indicated in the endpoint descriptor and (in the end) in the
transfer descriptor (TD). In other words, the device babbles and (according
to the UHCI spec) the chips should flag that error in the TD and life
should go on.

However, on VIA UHCIs (PCI cards or chipsets) the error is only flaged in
the controller status registers and immediately after that, no more transfer
descriptors (iso/control/bulk) are processed, the bus is dead. Looking at it
with the USB-analyzer, the frame with the babble is the last frame where any
transfers are processed. After that, only raw SOFs appear, which (maybe
unrelated...) also die after a while.

For usb-uhci this means that all transfers never complete and time out. The
only way back to life is to reload usb-uhci (ie. reset the controller).

It is very easy to simulate babble by hardcoding a (too) small number in the
TD in the submit_iso() calls of usb-uhci/uhci.

As mentioned, usb-uhci "gracefully" times out (well, but dead is dead). I
just tried uhci of 2.4.2 and it oopses in interrupt (at the beginning of
uhci_unlink_generic()), OHCI simply flags the error and goes on (I hate 
good designed hardware ;-)

So I can't say whether uhci handles the problem different or shows the same
symptoms...

I tried the babble simulation on a "real Intel" chipset (PIIX4) (only with
2.2.18, but that shouldn't IHMO matter) and it also continues to work as
expected. 

I will try it also with 2.4.2 tomorrow. And, yes, I'll stress Windows with the
same PCI-USB card ;-)

I've emailed VIA and am now waiting for a response. Does anybody know a
specific contact person there?

-- 
         Georg Acher, [EMAIL PROTECTED]         
         http://www.in.tum.de/~acher/
          "Oh no, not again !" The bowl of petunias          

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to