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.

AM335x USB Host CppiDmaModeSet() function for setting Per EndPoint RNDIS mode does not match TRM

in starterware_07_00_00_02     drivers/cppi41dma.c   function: Cppi41DmaModeSet()

the per EndPoint RNDIS vs Transparent mode appears to be set incorrectly.

The code appears to be modeled on the CPPI implementation in the TMS320DM646x which had 4 endpoints for Tx and 4 endpoints for Rx.

In the TMS320DM646x, a single register (RNDISR) was used to program the RNDIS mode for both RX and TX endpoints (spruer7e section 4.3)

However, the AM335x CPPI appears to have 16 endpoints for Tx and 16 for Rx (spru73f section 16.5.2.13, 16.5.2.14)

  • registers USB0TXMODE and USB1TXMODE are used to set the Tx endpoint modes
  • registers USB0RXMODE and USB1RXMODE are used to set the Rx endpoint modes

I believe the examples in usb_host_msc are working despite this issue in the code because they are trying to run in TRANSPARENT instead of RNDIS mode. (TRANSPARENT is mode=0 and it is the default)

  • any comments on this from the starterware team ?

    We need to get the CPPI DMA working with the USB Host for our upcoming product.

    I want to make sure I am not missing something obvious related to the per EndPoint RNDIS vs Transparent mode on the AM335x