Re: Errata for Freescale root-hub TT?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 25 Mar 2015, Peter Chen wrote:

> > > How do you know the frame has filled already at that time? The software
> > > makes sure it fills frame in time before next time frame?
> > 
> > I'm not sure I understand the question.
> > 
> > The USB analyzer log showed something like this (this is a rough 
> > approximation because I didn't keep the original analyzer output file):
> > 
> > 	Timestamp		Transaction
> > 	s.mmm uuu
> > 	-----------------------------------
> > 	0.000 000		SOF
> > 	0.000 030		Isoc OUT
> > 	0.000 091		Isoc OUT
> > 	0.000 162		Isoc OUT
> > 	0.000 224		Isoc OUT
> > 	0.001 000		SOF
> > 
> > In this example, there are 4 OUT transfers taking about 290 us and then
> > nothing else for the rest of the frame.
> > 
> > I also know, from looking at the "periodic" file in the EHCI debugfs 
> > directory, that each frame was linked to 8 siTDs:
> > 
> > 	siTD OUT, Smask = 0x01, Cmask = 0x00, transfer length = 64
> > 	siTD OUT, Smask = 0x01, Cmask = 0x00, transfer length = 64
> > 	siTD OUT, Smask = 0x02, Cmask = 0x00, transfer length = 64
> > 	siTD OUT, Smask = 0x02, Cmask = 0x00, transfer length = 64
> > 	siTD IN,  Smask = 0x04, Cmask = 0x70, transfer length = 64
> > 	siTD IN,  Smask = 0x04, Cmask = 0x70, transfer length = 64
> > 	siTD IN,  Smask = 0x08, Cmask = 0xe0, transfer length = 64
> > 	siTD IN,  Smask = 0x08, Cmask = 0xe0, transfer length = 64
> > 
> 
> I did not debug too many for Host ISOC, I just want to make sure the
> siTD is ready before the controller read it? 

Yes, all the siTDs were ready before the controller read them.  I know
because it worked perfectly when I used a high-speed hub instead of a
full-speed hub.

> Does it fail at the beginning or running several cycles?

The isochronous streams did not all start at the same time.  First one
isoc-OUT stream started, then the second stream, then the third stream,
then the fourth stream.  After that, the isoc-IN streams started, one
by one.

The controller worked okay up until the time the isoc-IN streams began.  
Before that, it transmitted the OUT packets correctly.  After the
isoc-IN streams started, the controller sometimes transmitted only the
four OUT packets (like in the example above), sometimes a mixture of
OUT and IN packets, and sometimes only one or two IN packets.  The
behavior was very erratic.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux