On Sat, 1 Jul 2006, Maulik Mankad wrote:

> Hi,
> 
> I am working on Intel's IXP465 network processor. It has an on-chip USB host
> controller. I am porting the USB host driver for it.

Here's my perspective on these matters, which is a little different from
David Brownell's.

But first, since you're using Intel's IXP465 processor, shouldn't you send 
your questions to Intel?  They know more about how their USB controller 
works than anyone else.

> Can someone explain to me how a DMA engine in the USB host controller work
> in concept? Also let me know how the DMA engine is kicked off in a standard
> USB host controller.

Do you realize that the details vary considerably among different kinds of 
host controllers?  You're probably most interested in EHCI-compliant 
controllers, because that's what you're using, but you didn't specify the 
type of controller in your question.

In broad terms, the DMA engine reads from main memory the data structures 
that describe the USB transactions to be carried out.  The DMA engine also 
accesses main memory buffers to fetch or store the data portions of these 
transactions.

In UHCI controllers, the DMA engine is started when the controller driver
sets the Run/Stop bit in the controller's USB Command Register.  The 
engine stops when this bit is turned off, when the controller encounters 
an error, or when the controller is reset.

> I want to know how in Linux code the DMA engine is configured and how it
> works.

I can't explain how the DMA engine works; to understand that you will have
to speak with the chip designers.  Besides, you probably don't really want 
to know how it works -- more likely you want to know how to use it.

In UHCI controllers, the DMA engine is configured by writing the Frame
List Base Address to one of the controller's registers.  This is the
address of the main data structure used by the DMA engine (it contains
pointers to other data structures).  No extra configuration is needed.

Alan Stern


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to