[U-Boot-Users] USB device configuration

Hello,
during my PXA27x USB device support developing adventure I notice that usbtty calls the functions:
udc_init: PXA27x usbd start udc_setup_ep: setting up endpoint addr 0 udc_enable: enable device a2077f74, status 0 udc_connect: udc_setup_ep: setting up endpoint addr 1 udc_setup_ep: setting up endpoint addr 82 udc_setup_ep: setting up endpoint addr 83
Looking at PXA27x manual I read that I have to setup the endpoints and __then__ enable UDC for normal operations! But looking above I see that u-boot calls before the udc_enable() and then the function udc_setup_ep()...
There are something wrong or I haven't understood well how UDC support works? =:-o
Thanks,
Rodolfo

On Wed, May 09, 2007 at 11:03:11AM +0200, Rodolfo Giometti wrote:
Hello,
during my PXA27x USB device support developing adventure I notice that usbtty calls the functions:
udc_init: PXA27x usbd start udc_setup_ep: setting up endpoint addr 0 udc_enable: enable device a2077f74, status 0 udc_connect: udc_setup_ep: setting up endpoint addr 1 udc_setup_ep: setting up endpoint addr 82 udc_setup_ep: setting up endpoint addr 83
Looking at PXA27x manual I read that I have to setup the endpoints and __then__ enable UDC for normal operations! But looking above I see that u-boot calls before the udc_enable() and then the function udc_setup_ep()...
I think that the correct sequence into usbtty should be:
@@ -554,11 +554,11 @@ int drv_usbtty_init (void) usbtty_init_strings (); usbtty_init_instances ();
+ usbtty_init_endpoints (); + udc_startup_events (device_instance);/* Enable dev, init udc pointers */ udc_connect (); /* Enable pullup for host detection */
- usbtty_init_endpoints (); - /* Device initialization */ memset (&usbttydev, 0, sizeof (usbttydev));
Comments?
Rodolfo

On Wed, 9 May 2007 11:19:31 +0200 Rodolfo Giometti giometti@enneenne.com wrote:
I think that the correct sequence into usbtty should be:
@@ -554,11 +554,11 @@ int drv_usbtty_init (void) usbtty_init_strings (); usbtty_init_instances ();
usbtty_init_endpoints ();
udc_startup_events (device_instance);/* Enable dev, init
udc pointers */ udc_connect (); /* Enable pullup for host detection */
usbtty_init_endpoints ();
/* Device initialization */ memset (&usbttydev, 0, sizeof (usbttydev));
Comments?
Greetings Rodolfo.
Apologies, for the late response, sometimes I work/sleep without checking my home mail and missed this for ~ 48 hours.
Umm, *provisionally* this appears not to be a problem for usbdcore_mpc8xx.c... just having a quick scan of usbdcore_omap1510 I don't immediately see a way that code could be broken by such a change... *then again* keep in mind when I was mucking with the usbtty stuff, I specifically tried *not* to change the order that things happen in, for fear of breaking other people's - omap stuff.
Perhaps someone using the omap1510 in USB device mode would be in a better position to make a statement on that.
In this specific instance though we _should_ be safe enough. Even still when you submit your modifications to the list, I'll ensure I do a test run from the POV of usbdcore_mpc8xx, just to make sure your code doesn't break my code !
Best, Bryan
participants (2)
-
Bryan O'Donoghue
-
Rodolfo Giometti