This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP3530 Host USB Configuration

Other Parts Discussed in Thread: OMAP3530

 

We want to use the OMAP3530 Host USB controlled by the DSP (IVA2.2).

We can get the USB to work if we start Linux & use that to load the DSP.

However, if we attempt to run the DSP in "Standalone Mode" using the Emulator, the Host USB doesn't work.

We can program the USB Host Registers, but don't seem to be getting any data transfers between the USB Module & the DDR2 Memory.

What are the steps required to get the Host USB fully operational on the OMAP3530?

So far

- we have disabled the DSP's cache (had some DSP cache vs. Memory issues)

- we are enabling the clocks in the PRCM (CM_FCLKEN_USBHOST, CM_ICLKEN_USBHOST, CM_ICLKEN3_CORE, CM_FCLKEN3_CORE)

- I thought it might be an L3 Firewall Issue, but checking the various register configurations, it looks like we're using the default values for both Linux & Stand Alone

The Registers I've explicitly checked are:

- L3 Initiator Agent (USB Host), L3 Target Agent (SMS), L3 Protection Mechanism (5.2.5.4), SMS Register Manual (11.2.7).  They all seem to be default for both Linux & Stand Alone.

Any thoughts on what's missing. 

Please advise.

  • To clarify:

    We are aware that no USB or USB Controller DMA interrupts or requests are available to the DSP core. We are using a USB protocol stack  from Jungo, modified to perform all interactions with the USB controller by polling its status registers, and working with them on this. We can get the USB to work if we start Linux & use that to load the DSP using DSPLink and then initialize and manage the USB controller using software running on the DSP core.

    The problems we have are when we try to replicateall initialization code from the Linux world drivers inside the DSP when loading from the debugger only (which we need to do when performing detailed debugging).