Hello,
In the Linux kernel source the EBA for IPU-CPMEM is allocated using the dma_alloc_coherent API. Is this a must to do?
I'm writing a driver from the scratch for a very specific CSI module manipulation and therefore I would like to know whether there are any other ways to perform this memory allocation (ie. kmalloc).
In SDK the memory used for the EBA is,
#define IPU_DMA_MEMORY_START | 0x40000000 |
#define CH0_EBA1 | (IPU_DMA_MEMORY_START + 0x01C00000) |
Do these memory locations have any special attributes associated or can I use any memory location by allocating through kmalloc?
Can someone give me some thought for this?
Thank you in advance.
Pradeepa
Solved! Go to Solution.
Hi Pradeepa
any memory location can be used but
IPU IDMAC can operate only with unfragmented memory,
so seems one can use kmalloc, but verify that requirement.
EBA is described in sect.37.4.2.7 IMX6DQRM
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Pradeepa
any memory location can be used but
IPU IDMAC can operate only with unfragmented memory,
so seems one can use kmalloc, but verify that requirement.
EBA is described in sect.37.4.2.7 IMX6DQRM
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------