Tool/software:
Hi,
we have had some trouble reserving the DSP CMA Pools such that other A15 processes cannot access/allocate these..
here is our .dts configuration
dsp1_cma_pool: dsp1_cma@95800000 { compatible = "shared-dma-pool"; reg = <0x0 0x95800000 0x0 0x5000000>; reusable; status = "okay"; }; dsp2_cma_pool: dsp2_cma@9a800000 { compatible = "shared-dma-pool"; reg = <0x0 0x9a800000 0x0 0x5000000>; reusable; status = "okay"; }; &dsp1 { status = "okay"; memory-region = <&dsp1_cma_pool>; mboxes = <&mailbox5 &mbox_dsp1_ipc3x>; timers = <&timer5>; }; &dsp2 { status = "okay"; memory-region = <&dsp2_cma_pool>; mboxes = <&mailbox6 &mbox_dsp2_ipc3x>; timers = <&timer6>; };
we have tried to use no-map. remove reusable and a few other options to modify the dts file, all prevent the DSPs from binding.
what is worse is the kernel can get a hold of these blocks even if "MemFree" hovers around 600MB. it would be acceptable if there is no space left on the DDR and the A15 needs more.
this issue started getting worse when we updated our SDK from 03.01.00.06 to 06.03.00.106
and we have seen random lockups of the kernel. we suspect it might be related to overlaps between the DSP CMA Pool and other linux processes using those. we're not sure since there's no trace on the lockup.
we'd appreciate if someone could help us make these 160MB from the 2GB DDR be truly reserved for the DSPs.
CMA-related defconfig:
CONFIG_CMA=y CONFIG_CMA_DEBUG=y CONFIG_CMA_DEBUGFS=y CONFIG_CMA_AREAS=7 CONFIG_DMA_CMA=y CONFIG_CMA_SIZE_MBYTES=24 CONFIG_CMA_SIZE_SEL_MBYTES=y CONFIG_CMA_ALIGNMENT=8 CONFIG_GENERIC_ARCH_TOPOLOGY=y
please let us know if we can provide any more information
thanks,
Daksh