AnsweredAssumed Answered

CMA Size

Question asked by Ofer Austerlitz on May 20, 2019
Latest reply on May 26, 2019 by Ofer Austerlitz


At the moment Linux CMA size is hard-coded on all i.MX8 and i.MX8M platforms in SoC DTSI file.


i.MX8MM: fsl-imx8mm.dtsi\freescale\dts\boot\arm64\arch - linux-imx - i.MX Linux kernel 

i.MX8M: fsl-imx8mq.dtsi\freescale\dts\boot\arm64\arch - linux-imx - i.MX Linux kernel

i.MX8QM: fsl-imx8qm.dtsi\freescale\dts\boot\arm64\arch - linux-imx - i.MX Linux kernel 

i.MX8QXP: fsl-imx8dx.dtsi\freescale\dts\boot\arm64\arch - linux-imx - i.MX Linux kernel 


This works for NXP evaluation platforms, but may result in kernel crashes on custom boards with smaller amount of RAM.

For example, our i.MX8M board with 1GB of RAM crashes since by default 960MB area is allocated by CMA.


It is not clear why CMA size, which is board specific, is being fixed in SoC DTSI file inherited by all boards.

Is there any benefit in defining CMA parameters in DTS instead of passing CMA size as kernel command line parameter based on the actual DRAM size ?