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.

TMDS64EVM: 3 Udma Instances in SBL Ospi Linux ?

Part Number: TMDS64EVM

Dear Experts,

I have a custom sbl ospi linux project and I am having some problems with Udma in this project.

I want to use both ethernet and crypto device (SA2UL) and Ospi Flash in the same project.

However, syscfg shows that the maximum number of udma instances can be 2.

On my side, Sbl uses BCDMA_0 as default, Etherhent and Crypto uses PKTDMA_0.

Syscfg does not support 3 udma instances.

That's why I don't use them together in the project. 

What do you advise me to do in this situation?

I would be very grateful if you could help me.

I especially wonder if a software solution can be provided

Best Regard,

Tuna Girisken

CCS Version: 12.4.0
SDK Version: 08.06.00.45
Board: Hs-Fs and Gp doesnt mater (I mean i have both of them)

  • Hi Tuna,

    I have taken note of your use case and checking with the developers for suggestions.

    Regards,

    Prashant

  • Hello Tuna,

    Actually, either BCDMA or PKTDMA with one instant can be used for different applications.

     

    Let's say I have one PKTDMA Instant, but the same can be used for ADC and UART applications.

    See below for configurations. ADC + PKTDMA in this channel type configured as RX mode and opened channel for ADC application and simailry, you can

    open different channels for UART applications . The same logic can be applied to your use case. Use multiple channels with single UDMA instant .

     

    /* Init channel parameters */
    chType = UDMA_CH_TYPE_PDMA_RX;
    UdmaChPrms_init(&chPrms, chType);
    chPrms.peerChNum = APP_ADC_RX_PDMA_CH;
    chPrms.fqRingPrms.ringMem = &gRxFqRingMem[0U];
    chPrms.fqRingPrms.ringMemSize = UDMA_TEST_RING_MEM_SIZE;
    chPrms.fqRingPrms.elemCnt = UDMA_TEST_RING_ENTRIES;

    /* Open channel for block copy */
    retVal = Udma_chOpen(drvHandle, rxChHandle, chType, &chPrms);
    DebugP_assert(UDMA_SOK == retVal);


    Regards,

    S.Anil.

  • Thanks for the reply Swargam.
    I will try your advice and get back to you.

    Regards,
    Tuna

  • Hello Tuna,

    Thanks for the update. Please share your test results after integrating the above proposal into your application.

    Regards,

    S.Anil.