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.

Second qdma channel request fail on DM6437

Hi,

I use the edma3_lld driver and I have a trouble to request more than one QCMA channel.
If I modify the edma3_drv_bios_dm6437_st_sample.pjt (comes with the driver) to request two QDMA channel, the second request fail with the error -133.
I just add these lines in the qdma_test after the first request:

    qCh2Id = EDMA3_DRV_QDMA_CHANNEL_ANY;
    qTcc2 = EDMA3_DRV_TCC_ANY;
    result = EDMA3_DRV_requestChannel (hEdma, &qCh2Id, &qTcc2,
                                        (EDMA3_RM_EventQueue)0, &callback1,
                                        NULL);
return -133 in the result

I use the driver EDMA3 LLD 1.05. How can I use more than one channel ?

Thank's

Guy

  • Reason for this is only 1 QDMA channel is owned by the sample application. Beyond that, the LLD wont allow you to request QDMA channels.

    The same behaviour can be altered by modifying the sample config file ("edma3_lld_1_05_00\packages\ti\sdo\edma3\drv\sample\src\bios_edma3_drv_sample_dm643x_cfg.c") coming along with the package. In the 'ownQdmaChannels' section (line 338), change the value from 0x00000080u (only 1 QDMA channel) to 0x000000C0u (2 QDMA channels).

     

  • So I have encountered the same problem and your solution corrected it.  My problem now is that I want 3 channels and do not understand how the values affect the configuration.  If the original value 0x00000080u enables only 1 QDMA channel and 0x000000C0u enables 2 QDMA channels, I don't see the relationship that allows me to enable 3 channels.  Please describe this in a general way or provide an example for 3, 4 or even 5 channels.

    What is the reason this is restricted?  Should I be wary of enabling all 8 channels?

    Thank you, Ed

  • I think I now understand, the bits are reversed from normal.  0x80 is binary 1000 0000, 0xC0 is 1100 0000.  My guess is that 0xE0 would enable 3 channels because it is 1110 0000.  It does seem to work, but I'm still curious why to restrict it at all?

    Ed

  • Hi,

    You are right. One bit per channel.

    It is possible to restrict if you want to manage some QDMA channel by the LLD driver and other by any way except LLD driver.

    Guy