All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/4] arm: mx5: Avoid hardcoding memory sizes on M53EVK
Date: Fri, 28 Mar 2014 05:32:45 +0100	[thread overview]
Message-ID: <1395981165-4652-4-git-send-email-marex@denx.de> (raw)
In-Reply-To: <1395981165-4652-1-git-send-email-marex@denx.de>

The DRAM size can be easily detected at runtime on i.MX53. Implement
such detection on M53EVK and adjust the rest of the macros accordingly
to use the detected values.

An important thing to note here is that we had to override the function
for trimming the effective DRAM address, get_effective_memsize(). That
is because the function uses CONFIG_MAX_MEM_MAPPED as the upper bound of
the available DRAM and we don't have gd->bd->bi_dram[0].size set up at
the time the function is called, thus we cannot put this into the macro
CONFIG_MAX_MEM_MAPPED . Instead, we use custom override where we use the
size of the first DRAM block which we just detected.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
---
 board/denx/m53evk/m53evk.c | 21 ++++++++++++++-------
 include/configs/m53evk.h   |  6 +++---
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/board/denx/m53evk/m53evk.c b/board/denx/m53evk/m53evk.c
index 0f71a16..de0bdb6 100644
--- a/board/denx/m53evk/m53evk.c
+++ b/board/denx/m53evk/m53evk.c
@@ -16,6 +16,7 @@
 #include <asm/imx-common/mx5_video.h>
 #include <asm/arch/spl.h>
 #include <asm/errno.h>
+#include <asm/sizes.h>
 #include <netdev.h>
 #include <i2c.h>
 #include <mmc.h>
@@ -31,24 +32,30 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int dram_init(void)
+static uint32_t mx53_dram_size[2];
+
+phys_size_t get_effective_memsize(void)
 {
-	u32 size1, size2;
+	return mx53_dram_size[0];
+}
 
-	size1 = get_ram_size((void *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE);
-	size2 = get_ram_size((void *)PHYS_SDRAM_2, PHYS_SDRAM_2_SIZE);
+int dram_init(void)
+{
+	mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, SZ_1G);
+	mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, SZ_1G);
 
-	gd->ram_size = size1 + size2;
+	gd->ram_size = mx53_dram_size[0] + mx53_dram_size[1];
 
 	return 0;
 }
+
 void dram_init_banksize(void)
 {
 	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
+	gd->bd->bi_dram[0].size = mx53_dram_size[0];
 
 	gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
-	gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
+	gd->bd->bi_dram[1].size = mx53_dram_size[1];
 }
 
 static void setup_iomux_uart(void)
diff --git a/include/configs/m53evk.h b/include/configs/m53evk.h
index 6f8872e..d4d0567 100644
--- a/include/configs/m53evk.h
+++ b/include/configs/m53evk.h
@@ -46,10 +46,10 @@
  */
 #define CONFIG_NR_DRAM_BANKS		2
 #define PHYS_SDRAM_1			CSD0_BASE_ADDR
-#define PHYS_SDRAM_1_SIZE		(512 * 1024 * 1024)
+#define PHYS_SDRAM_1_SIZE		(gd->bd->bi_dram[0].size)
 #define PHYS_SDRAM_2			CSD1_BASE_ADDR
-#define PHYS_SDRAM_2_SIZE		(512 * 1024 * 1024)
-#define PHYS_SDRAM_SIZE			(PHYS_SDRAM_1_SIZE + PHYS_SDRAM_2_SIZE)
+#define PHYS_SDRAM_2_SIZE		(gd->bd->bi_dram[1].size)
+#define PHYS_SDRAM_SIZE			(gd->ram_size)
 #define CONFIG_SYS_MALLOC_LEN		(10 * 1024 * 1024)
 #define CONFIG_SYS_MEMTEST_START	0x70000000
 #define CONFIG_SYS_MEMTEST_END		0x8ff00000
-- 
1.9.0

  parent reply	other threads:[~2014-03-28  4:32 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-28  4:32 [U-Boot] [PATCH 1/4] arm: mx5: Fix memory slowness on MX53QSB Marek Vasut
2014-03-28  4:32 ` [U-Boot] [PATCH 2/4] arm: mx5: Avoid hardcoding memory sizes " Marek Vasut
2014-03-28  5:21   ` [U-Boot] [PATCH V2 " Marek Vasut
2014-03-28  4:32 ` [U-Boot] [PATCH 3/4] arm: mx5: Fix memory slowness on M53EVK Marek Vasut
2014-03-28  4:32 ` Marek Vasut [this message]
2014-03-28  5:21   ` [U-Boot] [PATCH V2 4/4] arm: mx5: Avoid hardcoding memory sizes " Marek Vasut
2014-03-28  4:34 ` [U-Boot] [PATCH 1/4] arm: mx5: Fix memory slowness on MX53QSB Marek Vasut
2014-03-28  4:45 ` Fabio Estevam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1395981165-4652-4-git-send-email-marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.