We are trying to get the AM335X USB Host running in an RTOS. I have been using the StarterWare (02_00_00_07) as the starting point. I have several questions/issues related to the Interrupt service routine,
from the file usbhostenum.c in the IRQ handler, USBHostIntHandlerInternal(), there is a call to dmaTxCompletion().
inside dmaTxCompletion() there is a while loop which is waiting for BIT1 to clear of some register. we see delays of 10ms+ in this while loop, because this function is called from an IRQ it is cause significant timing issues in the RTOS.
My first problem is i cannot find that register in the TRM (spruh73f.pdf) I think its address is (USB_O_TXCSRL1 + EP_OFFSET( ulEndpoint))
closest i could come was some discussion on HOST_TXCSR in spurh73f.pdf section 16.3.8.2.2.2.1 (Bulk OUT Setup: Host Mode)
I cannot find the details of this register in the register description, thus i cant verify the address. Furthermore, it appears that perhaps the spurh73f does not have a complete description of the functionality which "corresponds" the code in usbhostenum.c
I suspect I am missing some detailed documentation on the Mentor USB OTG Controller (musbmhdrc)
Getting the USB Host to work in an RTOS is critical to the decision of whether we can integrate the AM335x in our next generation product.
Is there any way to get more the details of the Mentor USB OTG controller. We would be more than willing to support whatever NDA's are required