Hi Dave,

I browsed through source code of 2.4 kernel non PCI based controller drivers
(pxa2xx_udc, n9604, and superh_udc). I have a few doubts based on it -

* init() function : handles all initialisations ,mainly filling the xxx_udc
structure with endpoint and device (ep 0) specific data from some hardcoded
structures (eg. epNo,epType,Vendorid,maxpacketsize...) . It also sets
various endpoint registers and installs interrupt handlers. 

    Provided there are quite a number of endpoints to initialise it is it ok
to put all their initialisations in the init() function ? 

    Also, I could not see the DMA descriptor list being created (for IN and
OUT). How is this DMA handled ? Also where are the buffers to be used by DMA
(sk_buff) allocated ? I did a search on dev_alloc_skb and found them in
ethernet-rndis module, which i found rather strange.


* i am still unclear about interface between the gadget and controller
driver. How will data be sent/received to/from the ether-rndis gadget driver
by our controller driver ?


Regards
Raghu


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David
Brownell
Sent: Wednesday, December 29, 2004 12:06 AM
To: linux-usb-devel@lists.sourceforge.net
Cc: Raghunathan K
Subject: Re: [linux-usb-devel] Embedded USB device development


On Tuesday 28 December 2004 4:20 am, Raghunathan K wrote:
> I used the latest 2.4.28 gadget files in my 2.4.20 build (from
> include/linux/usb* and drivers/gadget). After a few changes in 
> makefiles and config.in i was able to compile the gadget framework.

Good!   Though you might want to grab the latest 2.4.29-pre
code as you get going; there are a few interface updates,
and a significant bugfix (memleak) to the RNDIS support.


> But since my board
> does not have PCI based support i was unable to compile the existing
net2280
> and goku_udc controller drivers. I guess 2.6 kernel has examples of
> controller drivers which are not PCI based but ARM AHB based.

AHB would normally be modeled as a platform bus.  Its details should be more
meaningful to somone integrating an ARM cell into some system-on-chip design
(*) than to software ... that is, someone who compiles RTL to gates, not C
to assembly language.

On 2.4 such busses don't have formal support; on 2.6 "platform_bus" is
normally used to model AHB interconnects in Linux.

For kernel 2.4 based non-PCI drivers, see the gadget-2.4 tree as listed at
http://www.linux-usb.org/gadget ... you can browse the code on-line at

 http://usb-gadget.bkbits.net:8080/gadget-2.4

Non-PCI drivers there include pxa2xx_udc, n9604, and superh_udc. There are
other such drivers; most such work uses 2.6 lately.

- Dave

(*) http://www.arm.com/products/solutions/AMBAHomePage.html


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel



-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
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