Re: Clear-TT-Buffer etc.

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

 



On Mon, 18 May 2009, Steve Calfee wrote:

> On Mon, May 18, 2009 at 2:27 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> > On Mon, 18 May 2009, Steve Calfee wrote:
> >
> >> Hi Alan,
> >>
> >> It has been a really long time since I used the Arc core (around
> >> 2003?), and I no longer have the ARC ehci document, which may have
> >> been under NDA.
> >>
> >> However, It is my impression that the ARC/TD core was done the "right"
> >> way, with respect to non-HS transfers. I think it just uses the ehci
> >> dma transfer machine to send on FS/LS. So I think it is the case that
> >> there is no transaction translator at all. All that split transfer
> >> stuff was just to implement a new protocol between HS controllers and
> >> HS hubs with FS/LS connections. Why would the ARC core do the TT hack
> >> internally for known speed connections?
> >
> > Because if you don't buffer FS/LS transfers separately from HS
> > transfers, you end up delaying the HS bus unnecessarily.  Hence there
> > has to be special buffering hardware for FS/LS transfers -- and once
> > you've done that, you're 50% of the way toward implementing a TT.
> >
> 
> I was talking about a host port directly connected to a FS/LS device.

So was I.

> In that case the hardware DMAs into a fifo and the only Host
> controller difference between HS/FS/LS is the clocking rate out of the
> fifo.

How do you know?  It _could_ work that way, but reconciling that
behavior with the documented way a controller iterates through the
entries on the async list would be a little tricky (because there would
have to be two or three different iterators: one for LS/FS -- or one
for each -- and one for HS).

> Maybe the ARC ehci does include a TT, but I could find no evidence
> for it in the ARC spec.

I don't know about the old ARC spec, but the more recent specs 
explicitly include phrases like "built-in TT" or "root-hub TT".

> Including that you say isoc transfers
> for FS is the same queuing as for HS.

That isn't what I said.  I said it is the same as queuing for regular 
EHCI -- i.e., the same as queuing a FS transfer through a high-speed 
hub's TT.

> If they had a TT you wouldn't
> you have to go through the same dance of fitting an xfer into multiple
> HS frams as you do in a HS hub?

Right.  And indeed, you _do_ have to go through the same dance.

> >> I really hope Sarah can push back on the Intel XHCI hardware guys and
> >> prevent a similar hack for superspeed and lower speed devices.
> >
> > It may be too late for that; their hardware is already developed
> > (though perhaps not finalized).  However the overall design _is_
> > finalized.  USB-3.0 actually contains two separate buses, one running
> > at 1.5/12/480 Mbs and the other running at 4 Gbs.
> >
> 
> If they do a companion controller for xhci, there will be actually 3
> different controllers built in: uhci(or ohci), echi and xhci. All 3
> could use a single connector. I realize superspeed will have a few
> extra wires, but for compatibility old style connectors will still be
> there.

AFAIK, Intel has not yet released the specs for their XHCI controller.  
When they do, we may find that it has only two built-in controllers:  
XHCI, and EHCI with a root-hub TT.  :-)

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