verdin-imx8mm: adjust dram size in case bl32 is used
authorIgor Opaniuk <igor.opaniuk@toradex.com>
Fri, 27 Mar 2020 10:28:18 +0000 (12:28 +0200)
committerStefano Babic <sbabic@denx.de>
Fri, 17 Apr 2020 16:58:58 +0000 (18:58 +0200)
Adjust DRAM size in case BL32 secure payload is loaded (OP-TEE/Trusty),
so during MMU initialization U-Boot won't touch this mem area.

BL32 is loaded to the end of DRAM, bl32 payload size is read from
rom_pointer[1]. This relates to the issue described in
59efa6b52b("imx8m: Fix MMU table issue for OPTEE memory").

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
board/toradex/verdin-imx8mm/verdin-imx8mm.c

index 16b9fa1ec1882834a7d20035b4a8fa8883206a44..cb9b4e3b0a9f95429f690ae0cd419915e979469e 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <common.h>
 #include <asm/arch/clock.h>
+#include <asm/arch/sys_proto.h>
 #include <asm/io.h>
 #include <miiphy.h>
 #include <netdev.h>
@@ -13,7 +14,11 @@ DECLARE_GLOBAL_DATA_PTR;
 
 int dram_init(void)
 {
-       gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
+       /* rom_pointer[1] contains the size of TEE occupies */
+       if (rom_pointer[1])
+               gd->ram_size = PHYS_SDRAM_SIZE - rom_pointer[1];
+       else
+               gd->ram_size = PHYS_SDRAM_SIZE;
 
        return 0;
 }