From bee73083a4f131ac585eb57ac9ae496f32c10de2 Mon Sep 17 00:00:00 2001 From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Date: Fri, 8 Feb 2019 18:42:24 +0100 Subject: [PATCH] toradex: colibri_imx6: overwrite CMA memory set in device tree Make sure CMA memory is not greater than 50% of available physical memory. Allow user to change the CMA memory via 'cma-size' U-Boot environment variable. Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> --- board/toradex/colibri_imx6/colibri_imx6.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c index efb6b925af..35adff1d00 100644 --- a/board/toradex/colibri_imx6/colibri_imx6.c +++ b/board/toradex/colibri_imx6/colibri_imx6.c @@ -22,6 +22,7 @@ #include <asm/mach-imx/iomux-v3.h> #include <asm/mach-imx/sata.h> #include <asm/mach-imx/video.h> +#include <cpu.h> #include <dm/platform_data/serial_mxc.h> #include <environment.h> #include <fsl_esdhc.h> @@ -688,7 +689,18 @@ int checkboard(void) #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) int ft_board_setup(void *blob, bd_t *bd) { - return ft_common_board_setup(blob, bd); + u32 cma_size; + + ft_common_board_setup(blob, bd); + + cma_size = getenv_ulong("cma-size", 10, 320 * 1024 * 1024); + cma_size = min((u32)(gd->ram_size >> 1), cma_size); + + fdt_setprop_u32(blob, + fdt_path_offset(blob, "/reserved-memory/linux,cma"), + "size", + cma_size); + return 0; } #endif -- 2.39.5