This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Bulk IN endpoint stops polling for packets

Hi All,

I am facing an issue with USB driver on ARM platform. the bulk in rx endpoint stops polling for rx packets after some time, when the issue occurs I see(with USB analyzer) all the other endpoints(tx and interrupt) are operational and I don't see any abnormal packets on rx endpoint.

But when I do abort, reset and resubmit the rx buffers on Bulk IN endpoint , it starts polling for rx packets and able to receive packets. This issue is frequent event after after doing(abort, reset & resubmit), it stops polling for rx packets after some time(after 1-2mins).

Pls suggest me the possible cause for this issue.

Regards
Akhil

Parents
  • Which DaVinci?
    Is it DM31x / DM64x etc.
    I believe DaVinci series have common USB subsystem.

    Do you see any error bit is set on this register, when the polling IN transaction stops?

    USBn_HOST_RXCSR
    - bit8: RXSTALL
    - bit3: DATAERR_NAKTIMEOUT
    - bit2: ERROR

    Stop the execution on a debugger, and read this register out.

    > Same USB driver working fine on X86 Platform.

    The X86 Platform should mount different USB engine from DaVinci.
    The low-level driver under HAL (Hardware abstraction Layer) should be also chip-specific.

    Tsuneo

Reply
  • Which DaVinci?
    Is it DM31x / DM64x etc.
    I believe DaVinci series have common USB subsystem.

    Do you see any error bit is set on this register, when the polling IN transaction stops?

    USBn_HOST_RXCSR
    - bit8: RXSTALL
    - bit3: DATAERR_NAKTIMEOUT
    - bit2: ERROR

    Stop the execution on a debugger, and read this register out.

    > Same USB driver working fine on X86 Platform.

    The X86 Platform should mount different USB engine from DaVinci.
    The low-level driver under HAL (Hardware abstraction Layer) should be also chip-specific.

    Tsuneo

Children