imx8m: fix cache setup for dynamic sdram size
authorTim Harvey <tharvey@gateworks.com>
Fri, 25 Sep 2020 15:08:35 +0000 (08:08 -0700)
committerStefano Babic <sbabic@denx.de>
Sun, 6 Dec 2020 14:31:37 +0000 (15:31 +0100)
the mem_map structure containing the size of SDRAM is used in various
cache functions in cache_v8.c thus we need to update it with the
sdram size the board is configured with as well. Without this
the cache functions do not get setup properly and can hang
in the case where a board reports more SDRAM than defined in
PHYS_SDRAM_SIZE.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
arch/arm/mach-imx/imx8m/soc.c

index 9bca5bf..5df8e17 100644 (file)
@@ -210,6 +210,9 @@ int dram_init(void)
        else
                gd->ram_size = sdram_size;
 
+       /* also update the SDRAM size in the mem_map used externally */
+       imx8m_mem_map[5].size = sdram_size;
+
 #ifdef PHYS_SDRAM_2_SIZE
        gd->ram_size += PHYS_SDRAM_2_SIZE;
 #endif