Topics

DMA: No cache mermory region


Raveendra Padasalagi <raveendra.padasalagi@...>
 

Hi Tomasz, all,

 

We have a DMA controller requiring 1MB of non-cache memory region for DMA descriptors.

I had a look into CONFIG_NOCACHE_MEMORY implementation.

 

./arch/common/nocache.ld

 

/* Non-cached region of RAM */

SECTION_DATA_PROLOGUE(_NOCACHE_SECTION_NAME,(NOLOAD),)

{

        MPU_ALIGN(_nocache_ram_size);

        _nocache_ram_start = .;

        *(.nocache)

        *(".nocache.*")

        MPU_ALIGN(_nocache_ram_size);

        _nocache_ram_end = .;

} GROUP_DATA_LINK_IN(RAMABLE_REGION, RAMABLE_REGION)

_nocache_ram_size = _nocache_ram_end - _nocache_ram_start;

 

Since RAMABLE_REGION is RAM which is TCM memory in our case and its very small in size and we can’t get 1MB.

 

We need a way to specify DDR memory region instead of RAMABLE_REGION.

How to achieve this generically ? any hints is appreciated.

 

Regards,

Raveendra