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.

AM6421: BCDMA and PKTDMA configuration problem

Part Number: AM6421

Tool/software:

Hi

I have encountered a difficult problem when I use BCDMA and PKTDMA at the same time. detail process is as following:

Baed on TI SDK AM64X 10_00_00 example code "C:\ti\mcu_plus_sdk_am64x_10_00_00_20\examples\drivers\udma\udma_memcpy_interrupt\am64x-evm\r5fss0-0_nortos", it runs normally on 12.7.1 CCS and compiler TI Clang v3.2.2.LTS.

Once I add a new UART with PKTDMA, it pass compile but failed when I click run, the detail SysCfg information is as follows:

the console information is as follows:

In addition, this is easy to reproduce, please help to reproduce and explain it!

thank you!

  • Hello,

    I am looking at your queries and you may expect reply in one or two days .

    Regards,

    Anil.

  • Hello ,

    I am able to find the root cause of this issue and this is a bug in the generated code.

    I will raise the Jira to fix it in the next releases. 

    Root Cause Analysis:
    • Currently, two instances of DMA are being generated: BCDMA and PKTDMA.
    • When configuring UART with DMA, the generated code always selects the 0th instance.
    • However, in the generated code, the 0th instance is assigned to BCDMA instead of PKTDMA, causing the issue.


    Workaround:
    • Ensure that PKTDMA is always configured as the 0th instance and BCDMA as the 1st instance, as shown below.


    •Next enable the UART DMA with the PKTDMA instant i.e UDMA0 instant like as below.

    In the UDMA memcpy example, the gConfigUdma0BlkCopyChHandle is currently assigned to the BCDMA channel handle . With this instance change, the buffer should be assigned to gConfigUdma1BlkCopyChHandle  channel handle , as shown below.


    • Update this change in the application code accordingly.


    • Apply the changes, compile the code, and run it from CCS .


    Please let me know if you encounter any issues.

    Regards,

    Anil.

  • Hi ,

    thanks for your quick feedback!

    I try to configure the BCDMA and UART PKTDMA according to your suggestion. And I find that fhe following phenonemon:

    when I run the original example code "C:\ti\mcu_plus_sdk_am64x_10_00_00_20\examples\drivers\udma\udma_memcpy_interrupt\am64x-evm\r5fss0-0_nortos", the output is as follows:

    and after I re-configure the  BCDMA and UART PKTDMA step by step according to your suggestion, and console shows below after I run it few seconds later:

    and next, I click stop, and it like this

    so please help me find the reason.

    In additon, when do you release next version and you plan to fix SysCfg, right? 

     

    Thank you!

  • Hi ,

    I would like to provide some additional information.

    based on above configuration, and I add another UART with PKTDMA, shown as follows:

    when I run it, the same phenomenon as the beginning shown as follows:

    so can you help me reproduce it and find the root reason.

    thank you!

  • Hello ,

    I feel that this is a different issue.

    You have enabled more than one PKTDMA instant.

    I hope the above changes will work 1 BCDMA and 1 PKTDMA instants configuration .

    Please confirm.

    Regards,

    Anil.

  • Hi,,

    It can work normally if I configure 1 BCDMA and 1 PKTDMA according to your suggestion. 

    And next step, I nedd 1 BCDMA and 2 PKTDMA finally, could you give me some work around to solve this problem?

    thank you!

  • Hello ,

    I am closing this thread and continuing discussing other issue ( 1 BCDMA and 2 PKTDMA) in the thread below.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1486852/am6421-how-many-pktdma-can-be-configuration-at-most

    Regards,

    Anil.