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.

DM355 mapdmaq - what/why/when?

In dvsdk_2_00_00_22 for the DM355, the dvsdk_demos_2_00_00_07/dm355/loadmodules.sh script runs a program called mapdmaq between the insmod of cmemk.ko and dm350mmap.ko.

This program is supplied in binary form with no source. The only explanation of what it does I could find was the following in the release notes: "mapdmaq-hd A utility that sets the DMA priority of the arm side drivers higher than the DSP".

I decoded what this program does:

Using /dev/mem, it writes 0 to 0x01c00250, 4, 8 & c (EDMA CC DMAQNUM[4-7]) and 0x50 to 0x20000020 (DDR2 PBBPR).

Presumably doing this from user space was a way to deliver a late fix without changing any code in the LSP (in this case, version 02_00_00_140).

My questions are:

What is this program doing?

Why is it doing it?

Why is it doing it from user space?

Under what circumstances would you include this program in your DM355 product?

 

  • As suggested in the release notes, this tool sets DMA priority of ARM side higher than that of MJCP on DM355.  My understanding is that this is useful when you are pushing DDR2 badnwidth (e.g. high resolutions) to the limit to allow ARM enough access to DDR2 resource; may not be required when dealing with low resolutions but should not hurt to have it there.  This should probrably be pulled into the kernel eventually and not be delivered via separate module.