From e42f096f78b85eb7077f6ab5505baaa83b41509c Mon Sep 17 00:00:00 2001
From: "xypron.glpk@gmx.de" <xypron.glpk@gmx.de>
Date: Fri, 9 Jun 2017 22:13:59 +0200
Subject: [PATCH] meson-gx: reserved memory regions
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

The Odroid C2 has two GiB of memory with two reserved regions.
reg = <0x0 0x0 0x0 0x1000000>;
reg = <0x0 0x10000000 0x0 0x200000>;

Patch
bfcef28ae4cf (arm: add initial support for Amlogic Meson and
ODROID-C2) provided function dram_init_banksize to reserve the
first 16 MiB of RAM for firmware in function dram_init_banksize
in arch/arm/mach-meson/board.c and defined
CONFIG_NR_DRAM_BANKS = 1.

With this patch dram_init_banksize is changed to additionally
reserve the 2MiB region for the ARM Trusted Firmware (BL31).
CONFIG_NR_DRAM_BANKS is set to 2.

Cc: Andreas Färber <afaerber@suse.de>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 arch/arm/mach-meson/board.c         | 8 +++++---
 include/configs/meson-gxbb-common.h | 2 +-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-meson/board.c b/arch/arm/mach-meson/board.c
index 273dbeb020..e89c6aace9 100644
--- a/arch/arm/mach-meson/board.c
+++ b/arch/arm/mach-meson/board.c
@@ -37,9 +37,11 @@ int dram_init(void)
 int dram_init_banksize(void)
 {
 	/* Reserve first 16 MiB of RAM for firmware */
-	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE + (16 * 1024 * 1024);
-	gd->bd->bi_dram[0].size = gd->ram_size - (16 * 1024 * 1024);
-
+	gd->bd->bi_dram[0].start = 0x1000000;
+	gd->bd->bi_dram[0].size  = 0xf000000;
+	/* Reserve 2 MiB for ARM Trusted Firmware (BL31) */
+	gd->bd->bi_dram[1].start = 0x10000000;
+	gd->bd->bi_dram[1].size  = gd->ram_size - 0x10200000;
 	return 0;
 }
 
diff --git a/include/configs/meson-gxbb-common.h b/include/configs/meson-gxbb-common.h
index 89e3807a14..ed55f441a4 100644
--- a/include/configs/meson-gxbb-common.h
+++ b/include/configs/meson-gxbb-common.h
@@ -10,7 +10,7 @@
 
 #define CONFIG_CPU_ARMV8
 #define CONFIG_REMAKE_ELF
-#define CONFIG_NR_DRAM_BANKS		1
+#define CONFIG_NR_DRAM_BANKS		2
 #define CONFIG_ENV_IS_NOWHERE		1
 #define CONFIG_ENV_SIZE			0x2000
 #define CONFIG_SYS_MAXARGS		32
-- 
2.39.5