public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 0/4] arm: imx53: remove usage of mx53_dram_size
@ 2017-12-18  9:02 linux-kernel-dev at beckhoff.com
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 1/4] arm: imx: cx9020: " linux-kernel-dev at beckhoff.com
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2017-12-18  9:02 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>

Global variables are not available during board_init_f().
The i.MX53 boards m53evk, mx53cx9020 and mx53loco are using the exact
same dram initialization code, which uses
'static uint32_t mx53_dram_size[2];' in dram_init(),
dram_init_banksize() and get_effective_memsize() to avoid multiple
calls to get_ram_size().

This series replaces the static variable with multiple calls to
get_ram_size() and moves the shared code into arch/arm/mach-imx/mx5/.

The first patch fixes cx9020. The next patch moves that code to a common
place to be reused by m53evk and mx53loco with the next patches.

Changes in v2:
- move dram initialization into common location
- reuse fixed dram initialization for m53evk and mx53loco

Patrick Bruenn (4):
  arm: imx: cx9020: remove usage of mx53_dram_size
  arm: imx: cx9020: move dram init into common place
  arm: imx: m53evk: remove usage of mx53_dram_size
  arm: imx: mx53loco: remove usage of mx53_dram_size

 arch/arm/mach-imx/mx5/Makefile         |  5 ++++
 arch/arm/mach-imx/mx5/mx53_dram.c      | 45 ++++++++++++++++++++++++++++++++++
 board/aries/m53evk/m53evk.c            | 39 -----------------------------
 board/beckhoff/mx53cx9020/mx53cx9020.c | 39 -----------------------------
 board/freescale/mx53loco/mx53loco.c    | 39 -----------------------------
 5 files changed, 50 insertions(+), 117 deletions(-)
 create mode 100644 arch/arm/mach-imx/mx5/mx53_dram.c

-- 
2.11.0

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 1/4] arm: imx: cx9020: remove usage of mx53_dram_size
  2017-12-18  9:02 [U-Boot] [PATCH v2 0/4] arm: imx53: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
@ 2017-12-18  9:02 ` linux-kernel-dev at beckhoff.com
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 2/4] arm: imx: cx9020: move dram init into common place linux-kernel-dev at beckhoff.com
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 16+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2017-12-18  9:02 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>

Static variables are not available during board_init_f().
'static uint32_t mx53_dram_size[2];' was used in board specific
dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
multiple calls to get_ram_size().

However multiple calls are better than undefined behavior...
This fixes:
https://lists.denx.de/pipermail/u-boot/2017-November/313214.html
https://lists.denx.de/pipermail/u-boot/2017-December/314480.html

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>

---

Changes in v2:
- move dram initialization into common location
- reuse fixed dram initialization for m53evk and mx53loco

 board/beckhoff/mx53cx9020/mx53cx9020.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/board/beckhoff/mx53cx9020/mx53cx9020.c b/board/beckhoff/mx53cx9020/mx53cx9020.c
index 021bd967c4..d8bdfc27bb 100644
--- a/board/beckhoff/mx53cx9020/mx53cx9020.c
+++ b/board/beckhoff/mx53cx9020/mx53cx9020.c
@@ -59,8 +59,6 @@ static const u32 CCAT_MODE_RUN = 0x0033DC8F;
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static uint32_t mx53_dram_size[2];
-
 phys_size_t get_effective_memsize(void)
 {
 	/*
@@ -74,15 +72,13 @@ phys_size_t get_effective_memsize(void)
 	 * U-Boot into invalid memory area close to the end of the first
 	 * DRAM bank.
 	 */
-	return mx53_dram_size[0];
+	return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
 }
 
 int dram_init(void)
 {
-	mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
-	mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
-
-	gd->ram_size = mx53_dram_size[0] + mx53_dram_size[1];
+	gd->ram_size = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
+	gd->ram_size += get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
 
 	return 0;
 }
@@ -90,10 +86,10 @@ int dram_init(void)
 int dram_init_banksize(void)
 {
 	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-	gd->bd->bi_dram[0].size = mx53_dram_size[0];
+	gd->bd->bi_dram[0].size = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
 
 	gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
-	gd->bd->bi_dram[1].size = mx53_dram_size[1];
+	gd->bd->bi_dram[1].size = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
 
 	return 0;
 }
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 2/4] arm: imx: cx9020: move dram init into common place
  2017-12-18  9:02 [U-Boot] [PATCH v2 0/4] arm: imx53: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 1/4] arm: imx: cx9020: " linux-kernel-dev at beckhoff.com
@ 2017-12-18  9:02 ` linux-kernel-dev at beckhoff.com
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 4/4] arm: imx: mx53loco: " linux-kernel-dev at beckhoff.com
  3 siblings, 0 replies; 16+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2017-12-18  9:02 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>

Move dram_init(), dram_init_banksize() and get_effective_memsize() to
arch/arm/mach-imx/mx5/mx53_dram.c, where it can be reused by m53evk and
mx53loco.

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>

---

Changes in v2: None

Patch-Cc:  Fabio Estevam <fabio.estevam@nxp.com>
Patch-Cc:  Christian Gmeiner <christian.gmeiner@gmail.com>
Patch-Cc:  Jason Liu <r64343@freescale.com>
Patch-Cc:  Patrick Bruenn <p.bruenn@beckhoff.com>
Patch-Cc:  Stefano Babic <sbabic@denx.de>
Patch-Cc:  u-boot at lists.denx.de
Patch-Cc:  Marek Vasut <marex@denx.de>
Patch-Cc:  Albert Aribaud <albert.u.boot@aribaud.net>

---
 arch/arm/mach-imx/mx5/Makefile         |  3 +++
 arch/arm/mach-imx/mx5/mx53_dram.c      | 45 ++++++++++++++++++++++++++++++++++
 board/beckhoff/mx53cx9020/mx53cx9020.c | 35 --------------------------
 3 files changed, 48 insertions(+), 35 deletions(-)
 create mode 100644 arch/arm/mach-imx/mx5/mx53_dram.c

diff --git a/arch/arm/mach-imx/mx5/Makefile b/arch/arm/mach-imx/mx5/Makefile
index d021842f68..368cfde98b 100644
--- a/arch/arm/mach-imx/mx5/Makefile
+++ b/arch/arm/mach-imx/mx5/Makefile
@@ -9,3 +9,6 @@
 
 obj-y := soc.o clock.o
 obj-y += lowlevel_init.o
+
+# common files for mx53 dram initialization
+obj-$(CONFIG_TARGET_MX53CX9020) += mx53_dram.o
diff --git a/arch/arm/mach-imx/mx5/mx53_dram.c b/arch/arm/mach-imx/mx5/mx53_dram.c
new file mode 100644
index 0000000000..7e5fc42d1f
--- /dev/null
+++ b/arch/arm/mach-imx/mx5/mx53_dram.c
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2017  Beckhoff Automation GmbH & Co. KG
+ * Patrick Bruenn <p.bruenn@beckhoff.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+phys_size_t get_effective_memsize(void)
+{
+	/*
+	 * WARNING: We must override get_effective_memsize() function here
+	 * to report only the size of the first DRAM bank. This is to make
+	 * U-Boot relocator place U-Boot into valid memory, that is, at the
+	 * end of the first DRAM bank. If we did not override this function
+	 * like so, U-Boot would be placed at the address of the first DRAM
+	 * bank + total DRAM size - sizeof(uboot), which in the setup where
+	 * each DRAM bank contains 512MiB of DRAM would result in placing
+	 * U-Boot into invalid memory area close to the end of the first
+	 * DRAM bank.
+	 */
+	return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
+}
+
+int dram_init(void)
+{
+	gd->ram_size = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
+	gd->ram_size += get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
+
+	return 0;
+}
+
+int dram_init_banksize(void)
+{
+	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+	gd->bd->bi_dram[0].size = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
+
+	gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
+	gd->bd->bi_dram[1].size = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
+
+	return 0;
+}
diff --git a/board/beckhoff/mx53cx9020/mx53cx9020.c b/board/beckhoff/mx53cx9020/mx53cx9020.c
index d8bdfc27bb..f9df3604cd 100644
--- a/board/beckhoff/mx53cx9020/mx53cx9020.c
+++ b/board/beckhoff/mx53cx9020/mx53cx9020.c
@@ -59,41 +59,6 @@ static const u32 CCAT_MODE_RUN = 0x0033DC8F;
 
 DECLARE_GLOBAL_DATA_PTR;
 
-phys_size_t get_effective_memsize(void)
-{
-	/*
-	 * WARNING: We must override get_effective_memsize() function here
-	 * to report only the size of the first DRAM bank. This is to make
-	 * U-Boot relocator place U-Boot into valid memory, that is, at the
-	 * end of the first DRAM bank. If we did not override this function
-	 * like so, U-Boot would be placed@the address of the first DRAM
-	 * bank + total DRAM size - sizeof(uboot), which in the setup where
-	 * each DRAM bank contains 512MiB of DRAM would result in placing
-	 * U-Boot into invalid memory area close to the end of the first
-	 * DRAM bank.
-	 */
-	return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
-}
-
-int dram_init(void)
-{
-	gd->ram_size = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
-	gd->ram_size += get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
-
-	return 0;
-}
-
-int dram_init_banksize(void)
-{
-	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-	gd->bd->bi_dram[0].size = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
-
-	gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
-	gd->bd->bi_dram[1].size = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
-
-	return 0;
-}
-
 u32 get_board_rev(void)
 {
 	struct iim_regs *iim = (struct iim_regs *)IMX_IIM_BASE;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18  9:02 [U-Boot] [PATCH v2 0/4] arm: imx53: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 1/4] arm: imx: cx9020: " linux-kernel-dev at beckhoff.com
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 2/4] arm: imx: cx9020: move dram init into common place linux-kernel-dev at beckhoff.com
@ 2017-12-18  9:02 ` linux-kernel-dev at beckhoff.com
  2017-12-18  9:17   ` Marek Vasut
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 4/4] arm: imx: mx53loco: " linux-kernel-dev at beckhoff.com
  3 siblings, 1 reply; 16+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2017-12-18  9:02 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>

Static variables are not available during board_init_f().
'static uint32_t mx53_dram_size[2];' was used in board specific
dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
multiple calls to get_ram_size().

Reused dram initialization functions from arch/arm/mach-imx/mx5/mx53_dram.c

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>

---

Changes in v2: None


Only compile tested with make m53evk_defconfig

---
 arch/arm/mach-imx/mx5/Makefile |  1 +
 board/aries/m53evk/m53evk.c    | 39 ---------------------------------------
 2 files changed, 1 insertion(+), 39 deletions(-)

diff --git a/arch/arm/mach-imx/mx5/Makefile b/arch/arm/mach-imx/mx5/Makefile
index 368cfde98b..2cc2cbc07a 100644
--- a/arch/arm/mach-imx/mx5/Makefile
+++ b/arch/arm/mach-imx/mx5/Makefile
@@ -11,4 +11,5 @@ obj-y := soc.o clock.o
 obj-y += lowlevel_init.o
 
 # common files for mx53 dram initialization
+obj-$(CONFIG_TARGET_M53EVK)     += mx53_dram.o
 obj-$(CONFIG_TARGET_MX53CX9020) += mx53_dram.o
diff --git a/board/aries/m53evk/m53evk.c b/board/aries/m53evk/m53evk.c
index ece8957aaf..a798d83376 100644
--- a/board/aries/m53evk/m53evk.c
+++ b/board/aries/m53evk/m53evk.c
@@ -31,45 +31,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static uint32_t mx53_dram_size[2];
-
-phys_size_t get_effective_memsize(void)
-{
-	/*
-	 * WARNING: We must override get_effective_memsize() function here
-	 * to report only the size of the first DRAM bank. This is to make
-	 * U-Boot relocator place U-Boot into valid memory, that is, at the
-	 * end of the first DRAM bank. If we did not override this function
-	 * like so, U-Boot would be placed at the address of the first DRAM
-	 * bank + total DRAM size - sizeof(uboot), which in the setup where
-	 * each DRAM bank contains 512MiB of DRAM would result in placing
-	 * U-Boot into invalid memory area close to the end of the first
-	 * DRAM bank.
-	 */
-	return mx53_dram_size[0];
-}
-
-int dram_init(void)
-{
-	mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
-	mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
-
-	gd->ram_size = mx53_dram_size[0] + mx53_dram_size[1];
-
-	return 0;
-}
-
-int dram_init_banksize(void)
-{
-	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-	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 = mx53_dram_size[1];
-
-	return 0;
-}
-
 static void setup_iomux_uart(void)
 {
 	static const iomux_v3_cfg_t uart_pads[] = {
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 4/4] arm: imx: mx53loco: remove usage of mx53_dram_size
  2017-12-18  9:02 [U-Boot] [PATCH v2 0/4] arm: imx53: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
                   ` (2 preceding siblings ...)
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
@ 2017-12-18  9:02 ` linux-kernel-dev at beckhoff.com
  3 siblings, 0 replies; 16+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2017-12-18  9:02 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>

Static variables are not available during board_init_f().
'static uint32_t mx53_dram_size[2];' was used in board specific
dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
multiple calls to get_ram_size().

Reused dram initialization functions from arch/arm/mach-imx/mx5/mx53_dram.c

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>

---

Changes in v2: None


Only compile tested with make mx53loco_defconfig

---
 arch/arm/mach-imx/mx5/Makefile      |  1 +
 board/freescale/mx53loco/mx53loco.c | 39 -------------------------------------
 2 files changed, 1 insertion(+), 39 deletions(-)

diff --git a/arch/arm/mach-imx/mx5/Makefile b/arch/arm/mach-imx/mx5/Makefile
index 2cc2cbc07a..4e305e92cf 100644
--- a/arch/arm/mach-imx/mx5/Makefile
+++ b/arch/arm/mach-imx/mx5/Makefile
@@ -13,3 +13,4 @@ obj-y += lowlevel_init.o
 # common files for mx53 dram initialization
 obj-$(CONFIG_TARGET_M53EVK)     += mx53_dram.o
 obj-$(CONFIG_TARGET_MX53CX9020) += mx53_dram.o
+obj-$(CONFIG_TARGET_MX53LOCO)   += mx53_dram.o
diff --git a/board/freescale/mx53loco/mx53loco.c b/board/freescale/mx53loco/mx53loco.c
index db0e2fbdd6..0beecf3459 100644
--- a/board/freescale/mx53loco/mx53loco.c
+++ b/board/freescale/mx53loco/mx53loco.c
@@ -31,45 +31,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static uint32_t mx53_dram_size[2];
-
-phys_size_t get_effective_memsize(void)
-{
-	/*
-	 * WARNING: We must override get_effective_memsize() function here
-	 * to report only the size of the first DRAM bank. This is to make
-	 * U-Boot relocator place U-Boot into valid memory, that is, at the
-	 * end of the first DRAM bank. If we did not override this function
-	 * like so, U-Boot would be placed at the address of the first DRAM
-	 * bank + total DRAM size - sizeof(uboot), which in the setup where
-	 * each DRAM bank contains 512MiB of DRAM would result in placing
-	 * U-Boot into invalid memory area close to the end of the first
-	 * DRAM bank.
-	 */
-	return mx53_dram_size[0];
-}
-
-int dram_init(void)
-{
-	mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
-	mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
-
-	gd->ram_size = mx53_dram_size[0] + mx53_dram_size[1];
-
-	return 0;
-}
-
-int dram_init_banksize(void)
-{
-	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-	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 = mx53_dram_size[1];
-
-	return 0;
-}
-
 u32 get_board_rev(void)
 {
 	struct iim_regs *iim = (struct iim_regs *)IMX_IIM_BASE;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18  9:02 ` [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
@ 2017-12-18  9:17   ` Marek Vasut
  2017-12-18 10:47     ` Patrick Brünn
  2017-12-19  9:59     ` Lothar Waßmann
  0 siblings, 2 replies; 16+ messages in thread
From: Marek Vasut @ 2017-12-18  9:17 UTC (permalink / raw)
  To: u-boot

On 12/18/2017 10:02 AM, linux-kernel-dev at beckhoff.com wrote:
> From: Patrick Bruenn <p.bruenn@beckhoff.com>
> 
> Static variables are not available during board_init_f().

They are, since the board runs from RAM at that point already.

> 'static uint32_t mx53_dram_size[2];' was used in board specific
> dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
> multiple calls to get_ram_size().
> 
> Reused dram initialization functions from arch/arm/mach-imx/mx5/mx53_dram.c
> 
> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
> 
> ---
> 
> Changes in v2: None
> 
> 
> Only compile tested with make m53evk_defconfig

Are you sure this patch retains the original functionality ? Note the
warning ...

> ---
>  arch/arm/mach-imx/mx5/Makefile |  1 +
>  board/aries/m53evk/m53evk.c    | 39 ---------------------------------------
>  2 files changed, 1 insertion(+), 39 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/mx5/Makefile b/arch/arm/mach-imx/mx5/Makefile
> index 368cfde98b..2cc2cbc07a 100644
> --- a/arch/arm/mach-imx/mx5/Makefile
> +++ b/arch/arm/mach-imx/mx5/Makefile
> @@ -11,4 +11,5 @@ obj-y := soc.o clock.o
>  obj-y += lowlevel_init.o
>  
>  # common files for mx53 dram initialization
> +obj-$(CONFIG_TARGET_M53EVK)     += mx53_dram.o
>  obj-$(CONFIG_TARGET_MX53CX9020) += mx53_dram.o
> diff --git a/board/aries/m53evk/m53evk.c b/board/aries/m53evk/m53evk.c
> index ece8957aaf..a798d83376 100644
> --- a/board/aries/m53evk/m53evk.c
> +++ b/board/aries/m53evk/m53evk.c
> @@ -31,45 +31,6 @@
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> -static uint32_t mx53_dram_size[2];
> -
> -phys_size_t get_effective_memsize(void)
> -{
> -	/*
> -	 * WARNING: We must override get_effective_memsize() function here
> -	 * to report only the size of the first DRAM bank. This is to make
> -	 * U-Boot relocator place U-Boot into valid memory, that is, at the
> -	 * end of the first DRAM bank. If we did not override this function
> -	 * like so, U-Boot would be placed at the address of the first DRAM
> -	 * bank + total DRAM size - sizeof(uboot), which in the setup where
> -	 * each DRAM bank contains 512MiB of DRAM would result in placing
> -	 * U-Boot into invalid memory area close to the end of the first
> -	 * DRAM bank.
> -	 */
> -	return mx53_dram_size[0];
> -}
> -
> -int dram_init(void)
> -{
> -	mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
> -	mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
> -
> -	gd->ram_size = mx53_dram_size[0] + mx53_dram_size[1];
> -
> -	return 0;
> -}
> -
> -int dram_init_banksize(void)
> -{
> -	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
> -	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 = mx53_dram_size[1];
> -
> -	return 0;
> -}
> -
>  static void setup_iomux_uart(void)
>  {
>  	static const iomux_v3_cfg_t uart_pads[] = {
> 


-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18  9:17   ` Marek Vasut
@ 2017-12-18 10:47     ` Patrick Brünn
  2017-12-18 10:57       ` Marek Vasut
  2017-12-19  9:59     ` Lothar Waßmann
  1 sibling, 1 reply; 16+ messages in thread
From: Patrick Brünn @ 2017-12-18 10:47 UTC (permalink / raw)
  To: u-boot

>From: Marek Vasut [mailto:marex at denx.de]
>Sent: Montag, 18. Dezember 2017 10:17
>On 12/18/2017 10:02 AM, linux-kernel-dev at beckhoff.com wrote:
>> From: Patrick Bruenn <p.bruenn@beckhoff.com>
>>
>> Static variables are not available during board_init_f().
>
>They are, since the board runs from RAM at that point already.
>
From reading the README and common/board_f.c I got the impression,
that dram_init() is called before it's save to access mx53_dram_size.
And as that change seemed to cure the strange behavior I described
in [1] and [2], I prepared a patch for my board, which ended up to be
requested for m53evk and mx53loco, too.

>> 'static uint32_t mx53_dram_size[2];' was used in board specific
>> dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
>> multiple calls to get_ram_size().
>>
>> Reused dram initialization functions from arch/arm/mach-
>imx/mx5/mx53_dram.c
>>
>> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
>>
>> ---
>>
>> Changes in v2: None
>>
>>
>> Only compile tested with make m53evk_defconfig
>
>Are you sure this patch retains the original functionality ? Note the
>warning ...

Effectively it changes:
 -      return mx53_dram_size[0];
+       return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);

So, yes I am convinced that get_effective_memsize() still returns only the size
of the first dram bank.
However, I would be fine with just keeping the changes to my board (cx9020).
And if anyone has a better idea of what might be the root cause of [1] and [2],
I would absolute appreciate any input to that.

Best regards and thanks in advance for any feedback,
Patrick

[1] https://lists.denx.de/pipermail/u-boot/2017-November/313214.html
[2] https://lists.denx.de/pipermail/u-boot/2017-December/314480.html

---
Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
Registered office: Verl, Germany | Register court: Guetersloh HRA 7075

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18 10:47     ` Patrick Brünn
@ 2017-12-18 10:57       ` Marek Vasut
  2017-12-18 11:40         ` Patrick Brünn
  0 siblings, 1 reply; 16+ messages in thread
From: Marek Vasut @ 2017-12-18 10:57 UTC (permalink / raw)
  To: u-boot

On 12/18/2017 11:47 AM, Patrick Brünn wrote:
>> From: Marek Vasut [mailto:marex at denx.de]
>> Sent: Montag, 18. Dezember 2017 10:17
>> On 12/18/2017 10:02 AM, linux-kernel-dev at beckhoff.com wrote:
>>> From: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>
>>> Static variables are not available during board_init_f().
>>
>> They are, since the board runs from RAM at that point already.
>>
> From reading the README and common/board_f.c I got the impression,
> that dram_init() is called before it's save to access mx53_dram_size.
> And as that change seemed to cure the strange behavior I described
> in [1] and [2], I prepared a patch for my board, which ended up to be
> requested for m53evk and mx53loco, too.

Technically yes, board_init_f means it runs from FLASH and has no or
minimal storage available. On the MX53 with SPL, it's running from RAM
so it's safe to use static variables too.

>>> 'static uint32_t mx53_dram_size[2];' was used in board specific
>>> dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
>>> multiple calls to get_ram_size().
>>>
>>> Reused dram initialization functions from arch/arm/mach-
>> imx/mx5/mx53_dram.c
>>>
>>> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>
>>> ---
>>>
>>> Changes in v2: None
>>>
>>>
>>> Only compile tested with make m53evk_defconfig
>>
>> Are you sure this patch retains the original functionality ? Note the
>> warning ...
> 
> Effectively it changes:
>  -      return mx53_dram_size[0];
> +       return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
> 
> So, yes I am convinced that get_effective_memsize() still returns only the size
> of the first dram bank.

I suspect that will fails on M53 due to it's split-bank configuration.
The board has two DRAM banks with a hole between them.

> However, I would be fine with just keeping the changes to my board (cx9020).
> And if anyone has a better idea of what might be the root cause of [1] and [2],
> I would absolute appreciate any input to that.

If your board also has two DRAM banks with a hole between them and you
can test if this works fine, then I'm OK with this change.

> Best regards and thanks in advance for any feedback,
> Patrick
> 
> [1] https://lists.denx.de/pipermail/u-boot/2017-November/313214.html
> [2] https://lists.denx.de/pipermail/u-boot/2017-December/314480.html
> 
> ---
> Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
> Registered office: Verl, Germany | Register court: Guetersloh HRA 7075
> 
> 


-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18 10:57       ` Marek Vasut
@ 2017-12-18 11:40         ` Patrick Brünn
  2017-12-18 11:52           ` Marek Vasut
  0 siblings, 1 reply; 16+ messages in thread
From: Patrick Brünn @ 2017-12-18 11:40 UTC (permalink / raw)
  To: u-boot

>From: Marek Vasut [mailto:marex at denx.de]
>Sent: Montag, 18. Dezember 2017 11:57
>On 12/18/2017 11:47 AM, Patrick Brünn wrote:
>>> From: Marek Vasut [mailto:marex at denx.de]
>>> Sent: Montag, 18. Dezember 2017 10:17
>>> On 12/18/2017 10:02 AM, linux-kernel-dev at beckhoff.com wrote:
>>>> From: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>>
>>>> Static variables are not available during board_init_f().
>>>
>>> They are, since the board runs from RAM at that point already.
>>>
>> From reading the README and common/board_f.c I got the impression,
>> that dram_init() is called before it's save to access mx53_dram_size.
>> And as that change seemed to cure the strange behavior I described
>> in [1] and [2], I prepared a patch for my board, which ended up to be
>> requested for m53evk and mx53loco, too.
>
>Technically yes, board_init_f means it runs from FLASH and has no or
>minimal storage available. On the MX53 with SPL, it's running from RAM
>so it's safe to use static variables too.
>
Thank's for your explanation.

>>>> 'static uint32_t mx53_dram_size[2];' was used in board specific
>>>> dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
>>>> multiple calls to get_ram_size().
>>>>
>>>> Reused dram initialization functions from arch/arm/mach-
>>> imx/mx5/mx53_dram.c
>>>>
>>>> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>>
>>>> ---
>>>>
>>>> Changes in v2: None
>>>>
>>>>
>>>> Only compile tested with make m53evk_defconfig
>>>
>>> Are you sure this patch retains the original functionality ? Note the
>>> warning ...
>>
>> Effectively it changes:
>>  -      return mx53_dram_size[0];
>> +       return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
>>
>> So, yes I am convinced that get_effective_memsize() still returns only the
>size
>> of the first dram bank.
>
>I suspect that will fails on M53 due to it's split-bank configuration.
>The board has two DRAM banks with a hole between them.
>
This is how mx53_dram_size was initialized on m53 before that patch:
-       mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
-       mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);

So to me that's, absolutely the same. With the only difference, that get_ram_size(bank0)
is called multiple times, now.
>> However, I would be fine with just keeping the changes to my board
>(cx9020).
>> And if anyone has a better idea of what might be the root cause of [1] and
>[2],
>> I would absolute appreciate any input to that.
>
>If your board also has two DRAM banks with a hole between them and you
>can test if this works fine, then I'm OK with this change.
>
Yes, cx9020 uses two 512MB banks with 1GB between PHYS_SDRAM_1/2, too.

>> Best regards and thanks in advance for any feedback,
>> Patrick
>>
>> [1] https://lists.denx.de/pipermail/u-boot/2017-November/313214.html
>> [2] https://lists.denx.de/pipermail/u-boot/2017-December/314480.html
>>
>> ---
>> Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans
>Beckhoff
>> Registered office: Verl, Germany | Register court: Guetersloh HRA 7075
>>
>>
>
>
>--
>Best regards,
>Marek Vasut
Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
Registered office: Verl, Germany | Register court: Guetersloh HRA 7075

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18 11:40         ` Patrick Brünn
@ 2017-12-18 11:52           ` Marek Vasut
  2017-12-18 12:16             ` Patrick Brünn
  0 siblings, 1 reply; 16+ messages in thread
From: Marek Vasut @ 2017-12-18 11:52 UTC (permalink / raw)
  To: u-boot

On 12/18/2017 12:40 PM, Patrick Brünn wrote:
>> From: Marek Vasut [mailto:marex at denx.de]
>> Sent: Montag, 18. Dezember 2017 11:57
>> On 12/18/2017 11:47 AM, Patrick Brünn wrote:
>>>> From: Marek Vasut [mailto:marex at denx.de]
>>>> Sent: Montag, 18. Dezember 2017 10:17
>>>> On 12/18/2017 10:02 AM, linux-kernel-dev at beckhoff.com wrote:
>>>>> From: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>>>
>>>>> Static variables are not available during board_init_f().
>>>>
>>>> They are, since the board runs from RAM at that point already.
>>>>
>>> From reading the README and common/board_f.c I got the impression,
>>> that dram_init() is called before it's save to access mx53_dram_size.
>>> And as that change seemed to cure the strange behavior I described
>>> in [1] and [2], I prepared a patch for my board, which ended up to be
>>> requested for m53evk and mx53loco, too.
>>
>> Technically yes, board_init_f means it runs from FLASH and has no or
>> minimal storage available. On the MX53 with SPL, it's running from RAM
>> so it's safe to use static variables too.
>>
> Thank's for your explanation.

No problem, it's a bit weird.

>>>>> 'static uint32_t mx53_dram_size[2];' was used in board specific
>>>>> dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
>>>>> multiple calls to get_ram_size().
>>>>>
>>>>> Reused dram initialization functions from arch/arm/mach-
>>>> imx/mx5/mx53_dram.c
>>>>>
>>>>> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>>>
>>>>> ---
>>>>>
>>>>> Changes in v2: None
>>>>>
>>>>>
>>>>> Only compile tested with make m53evk_defconfig
>>>>
>>>> Are you sure this patch retains the original functionality ? Note the
>>>> warning ...
>>>
>>> Effectively it changes:
>>>  -      return mx53_dram_size[0];
>>> +       return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
>>>
>>> So, yes I am convinced that get_effective_memsize() still returns only the
>> size
>>> of the first dram bank.
>>
>> I suspect that will fails on M53 due to it's split-bank configuration.
>> The board has two DRAM banks with a hole between them.
>>
> This is how mx53_dram_size was initialized on m53 before that patch:
> -       mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
> -       mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
> 
> So to me that's, absolutely the same. With the only difference, that get_ram_size(bank0)
> is called multiple times, now.

The get_ram_size() above is called for two different bank (addresses),
not for bank0 twice. Maybe I'm missing something.

btw where's the patch adding mx53_dram.c ? I don't see it in mainline yet.

>>> However, I would be fine with just keeping the changes to my board
>> (cx9020).
>>> And if anyone has a better idea of what might be the root cause of [1] and
>> [2],
>>> I would absolute appreciate any input to that.
>>
>> If your board also has two DRAM banks with a hole between them and you
>> can test if this works fine, then I'm OK with this change.
>>
> Yes, cx9020 uses two 512MB banks with 1GB between PHYS_SDRAM_1/2, too.

Then that should be the same situation. Can you share "bdinfo" from that
board of yours?

btw do you use SPL ? If not, you should ...

[...]

-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18 11:52           ` Marek Vasut
@ 2017-12-18 12:16             ` Patrick Brünn
  2017-12-18 12:29               ` Marek Vasut
  0 siblings, 1 reply; 16+ messages in thread
From: Patrick Brünn @ 2017-12-18 12:16 UTC (permalink / raw)
  To: u-boot

>From: Marek Vasut [mailto:marex at denx.de]
>Sent: Montag, 18. Dezember 2017 12:52
>On 12/18/2017 12:40 PM, Patrick Brünn wrote:
>>> From: Marek Vasut [mailto:marex at denx.de]
>>> Sent: Montag, 18. Dezember 2017 11:57
>>> On 12/18/2017 11:47 AM, Patrick Brünn wrote:
>>>>> From: Marek Vasut [mailto:marex at denx.de]
>>>>> Sent: Montag, 18. Dezember 2017 10:17
>>>>> On 12/18/2017 10:02 AM, linux-kernel-dev at beckhoff.com wrote:
>>>>>> From: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>>>>
>>>>>> 'static uint32_t mx53_dram_size[2];' was used in board specific
>>>>>> dram_init(), dram_init_banksize() and get_effective_memsize() to
>avoid
>>>>>> multiple calls to get_ram_size().
>>>>>>
>>>>>> Reused dram initialization functions from arch/arm/mach-
>>>>> imx/mx5/mx53_dram.c
>>>>>>
>>>>>> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> Changes in v2: None
>>>>>>
>>>>>>
>>>>>> Only compile tested with make m53evk_defconfig
>>>>>
>>>>> Are you sure this patch retains the original functionality ? Note the
>>>>> warning ...
>>>>
>>>> Effectively it changes:
>>>>  -      return mx53_dram_size[0];
>>>> +       return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
>>>>
>>>> So, yes I am convinced that get_effective_memsize() still returns only the
>>> size
>>>> of the first dram bank.
>>>
>>> I suspect that will fails on M53 due to it's split-bank configuration.
>>> The board has two DRAM banks with a hole between them.
>>>
>> This is how mx53_dram_size was initialized on m53 before that patch:
>> -       mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
>> -       mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
>>
>> So to me that's, absolutely the same. With the only difference, that
>get_ram_size(bank0)
>> is called multiple times, now.
>
>The get_ram_size() above is called for two different bank (addresses),
>not for bank0 twice. Maybe I'm missing something.
>
>btw where's the patch adding mx53_dram.c ? I don't see it in mainline yet.
>
It's #2 of this series:
https://lists.denx.de/pipermail/u-boot/2017-December/314742.html

>>>> However, I would be fine with just keeping the changes to my board
>>> (cx9020).
>>>> And if anyone has a better idea of what might be the root cause of [1]
>and
>>> [2],
>>>> I would absolute appreciate any input to that.
>>>
>>> If your board also has two DRAM banks with a hole between them and you
>>> can test if this works fine, then I'm OK with this change.
>>>
>> Yes, cx9020 uses two 512MB banks with 1GB between PHYS_SDRAM_1/2,
>too.
>
>Then that should be the same situation. Can you share "bdinfo" from that
>board of yours?
>
=> bdinfo
arch_number = 0x00000000
boot_params = 0x70000100
DRAM bank   = 0x00000000
-> start    = 0x70000000
-> size     = 0x20000000
DRAM bank   = 0x00000001
-> start    = 0xB0000000
-> size     = 0x20000000
eth0name    = FEC
ethaddr     = 00:01:05:23:87:85
current eth = FEC
ip_addr     = <NULL>
baudrate    = 115200 bps
TLB addr    = 0x8FFF0000
relocaddr   = 0x8FF8B000
reloc off   = 0x1878B000
irq_sp      = 0x8F586960
sp start    = 0x8F586950
FB base     = 0x8F58C7C0
Early malloc usage: 134 / 400
fdt_blob = 8f586978

>btw do you use SPL ? If not, you should ...
I will read more about SPL. Until now, I thought I will only benefit,
if my initial boot media is limited in size. As we boot from sdcard,
that wasn't a problem to store 360k u-boot.

Regards,
Patrick
---
Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
Registered office: Verl, Germany | Register court: Guetersloh HRA 7075

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18 12:16             ` Patrick Brünn
@ 2017-12-18 12:29               ` Marek Vasut
  2017-12-19  4:28                 ` Patrick Brünn
  2017-12-19  7:48                 ` Patrick Brünn
  0 siblings, 2 replies; 16+ messages in thread
From: Marek Vasut @ 2017-12-18 12:29 UTC (permalink / raw)
  To: u-boot

On 12/18/2017 01:16 PM, Patrick Brünn wrote:
>> From: Marek Vasut [mailto:marex at denx.de]
>> Sent: Montag, 18. Dezember 2017 12:52
>> On 12/18/2017 12:40 PM, Patrick Brünn wrote:
>>>> From: Marek Vasut [mailto:marex at denx.de]
>>>> Sent: Montag, 18. Dezember 2017 11:57
>>>> On 12/18/2017 11:47 AM, Patrick Brünn wrote:
>>>>>> From: Marek Vasut [mailto:marex at denx.de]
>>>>>> Sent: Montag, 18. Dezember 2017 10:17
>>>>>> On 12/18/2017 10:02 AM, linux-kernel-dev at beckhoff.com wrote:
>>>>>>> From: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>>>>>
>>>>>>> 'static uint32_t mx53_dram_size[2];' was used in board specific
>>>>>>> dram_init(), dram_init_banksize() and get_effective_memsize() to
>> avoid
>>>>>>> multiple calls to get_ram_size().
>>>>>>>
>>>>>>> Reused dram initialization functions from arch/arm/mach-
>>>>>> imx/mx5/mx53_dram.c
>>>>>>>
>>>>>>> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
>>>>>>>
>>>>>>> ---
>>>>>>>
>>>>>>> Changes in v2: None
>>>>>>>
>>>>>>>
>>>>>>> Only compile tested with make m53evk_defconfig
>>>>>>
>>>>>> Are you sure this patch retains the original functionality ? Note the
>>>>>> warning ...
>>>>>
>>>>> Effectively it changes:
>>>>>  -      return mx53_dram_size[0];
>>>>> +       return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
>>>>>
>>>>> So, yes I am convinced that get_effective_memsize() still returns only the
>>>> size
>>>>> of the first dram bank.
>>>>
>>>> I suspect that will fails on M53 due to it's split-bank configuration.
>>>> The board has two DRAM banks with a hole between them.
>>>>
>>> This is how mx53_dram_size was initialized on m53 before that patch:
>>> -       mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
>>> -       mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
>>>
>>> So to me that's, absolutely the same. With the only difference, that
>> get_ram_size(bank0)
>>> is called multiple times, now.
>>
>> The get_ram_size() above is called for two different bank (addresses),
>> not for bank0 twice. Maybe I'm missing something.
>>
>> btw where's the patch adding mx53_dram.c ? I don't see it in mainline yet.
>>
> It's #2 of this series:
> https://lists.denx.de/pipermail/u-boot/2017-December/314742.html

Ah, sorry, I missed that.

>>>>> However, I would be fine with just keeping the changes to my board
>>>> (cx9020).
>>>>> And if anyone has a better idea of what might be the root cause of [1]
>> and
>>>> [2],
>>>>> I would absolute appreciate any input to that.
>>>>
>>>> If your board also has two DRAM banks with a hole between them and you
>>>> can test if this works fine, then I'm OK with this change.
>>>>
>>> Yes, cx9020 uses two 512MB banks with 1GB between PHYS_SDRAM_1/2,
>> too.
>>
>> Then that should be the same situation. Can you share "bdinfo" from that
>> board of yours?
>>
> => bdinfo
> arch_number = 0x00000000
> boot_params = 0x70000100
> DRAM bank   = 0x00000000
> -> start    = 0x70000000
> -> size     = 0x20000000
> DRAM bank   = 0x00000001
> -> start    = 0xB0000000
> -> size     = 0x20000000
> eth0name    = FEC
> ethaddr     = 00:01:05:23:87:85
> current eth = FEC
> ip_addr     = <NULL>
> baudrate    = 115200 bps
> TLB addr    = 0x8FFF0000
> relocaddr   = 0x8FF8B000
> reloc off   = 0x1878B000
> irq_sp      = 0x8F586960
> sp start    = 0x8F586950
> FB base     = 0x8F58C7C0
> Early malloc usage: 134 / 400
> fdt_blob = 8f586978

Looks fine then.

>> btw do you use SPL ? If not, you should ...
> I will read more about SPL. Until now, I thought I will only benefit,
> if my initial boot media is limited in size. As we boot from sdcard,
> that wasn't a problem to store 360k u-boot.

The other is that you can ie. skip the whole u-boot altogether and boot
linux directly.

I wonder if it would be better to keep the static variable and avoid
calling the get_ram_size() twice, it can save some CPU cycles. Besides
that, thanks for the explanation/discussion !1

-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18 12:29               ` Marek Vasut
@ 2017-12-19  4:28                 ` Patrick Brünn
  2017-12-19 11:18                   ` Marek Vasut
  2017-12-19  7:48                 ` Patrick Brünn
  1 sibling, 1 reply; 16+ messages in thread
From: Patrick Brünn @ 2017-12-19  4:28 UTC (permalink / raw)
  To: u-boot

>From: Marek Vasut [mailto:marex at denx.de]
>Sent: Montag, 18. Dezember 2017 13:30
>On 12/18/2017 01:16 PM, Patrick Brünn wrote:
>>> From: Marek Vasut [mailto:marex at denx.de]
>>> Sent: Montag, 18. Dezember 2017 12:52
>>> On 12/18/2017 12:40 PM, Patrick Brünn wrote:
[...]
>>> btw do you use SPL ? If not, you should ...
>> I will read more about SPL. Until now, I thought I will only benefit,
>> if my initial boot media is limited in size. As we boot from sdcard,
>> that wasn't a problem to store 360k u-boot.
>
>The other is that you can ie. skip the whole u-boot altogether and boot
>linux directly.
>
Okay, I will try that.
>I wonder if it would be better to keep the static variable and avoid
>calling the get_ram_size() twice, it can save some CPU cycles. Besides
>that, thanks for the explanation/discussion !1
>
The pleasure was all mine. I will test SPL on my board and in case that's working I think it still makes sense to move our common code into one file. Is arch/arm/mach-imx/mx53_dram.c the best location for it?
At first I tried board/freescale/common/ but in that case I needed to use ugly relative pathes in the Makefiles "../../"

Regards, Patrick

---
Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
Registered office: Verl, Germany | Register court: Guetersloh HRA 7075

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18 12:29               ` Marek Vasut
  2017-12-19  4:28                 ` Patrick Brünn
@ 2017-12-19  7:48                 ` Patrick Brünn
  1 sibling, 0 replies; 16+ messages in thread
From: Patrick Brünn @ 2017-12-19  7:48 UTC (permalink / raw)
  To: u-boot

>From: Patrick Brünn
>Sent: Dienstag, 19. Dezember 2017 05:29
>>From: Marek Vasut [mailto:marex at denx.de]
>>Sent: Montag, 18. Dezember 2017 13:30
>>On 12/18/2017 01:16 PM, Patrick Brünn wrote:
>>>> From: Marek Vasut [mailto:marex at denx.de]
>>>> Sent: Montag, 18. Dezember 2017 12:52
>>>> On 12/18/2017 12:40 PM, Patrick Brünn wrote:
>[...]
>>>> btw do you use SPL ? If not, you should ...
>>> I will read more about SPL. Until now, I thought I will only benefit,
>>> if my initial boot media is limited in size. As we boot from sdcard,
>>> that wasn't a problem to store 360k u-boot.
>>
>>The other is that you can ie. skip the whole u-boot altogether and boot
>>linux directly.
>>
>Okay, I will try that.
>>I wonder if it would be better to keep the static variable and avoid
>>calling the get_ram_size() twice, it can save some CPU cycles. Besides
>>that, thanks for the explanation/discussion !1
>>
>The pleasure was all mine. I will test SPL on my board and in case that's
>working I think it still makes sense to move our common code into one file. Is
>arch/arm/mach-imx/mx53_dram.c the best location for it?
>At first I tried board/freescale/common/ but in that case I needed to use ugly
>relative pathes in the Makefiles "../../"
I spend a few hours this morning to experiment with SPL. From what I saw it
would require some additional patches to enable SPL_MMC for imx53 and
a few more changes to our sdcard layout (FAT vs. EXT4). Seeing all these
additional #ifdefs to consider I just don't have a good feeling to port that adhoc
for our board.
Directly booting Linux still sounds tempting, but for the moment I cannot spend
more effort into SPL for mx53cx9020. I will put that on my todo list. But for now
I would like to concentrate to get mainline boot on mx53cx9020, again.

I would suggest:
1. I keep m53evk.c untouched for now.
2a. Either patch both mx53cx9020 and mx53loco to avoid static mx53_dram_size,
   and have the shared code in arch/arm/mach-imx/mx53_dram.c
2b. Or patch only board/beckhoff/mx53cx9020/mx53cx9020.c

Fabio, what do you prefer?

Regards, Patrick

---
Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
Registered office: Verl, Germany | Register court: Guetersloh HRA 7075

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-18  9:17   ` Marek Vasut
  2017-12-18 10:47     ` Patrick Brünn
@ 2017-12-19  9:59     ` Lothar Waßmann
  1 sibling, 0 replies; 16+ messages in thread
From: Lothar Waßmann @ 2017-12-19  9:59 UTC (permalink / raw)
  To: u-boot

Hi,

On Mon, 18 Dec 2017 10:17:03 +0100 Marek Vasut wrote:
> On 12/18/2017 10:02 AM, linux-kernel-dev at beckhoff.com wrote:
> > From: Patrick Bruenn <p.bruenn@beckhoff.com>
> > 
> > Static variables are not available during board_init_f().
> 
> They are, since the board runs from RAM at that point already.
> 
That's not the point. Zero-initialized variables (static or not) are
located in the .bss section, which is overlayed by the .rel.dyn
section. Thus writing to such a variable before relocation will trash
the relocation data.


Lothar Waßmann

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size
  2017-12-19  4:28                 ` Patrick Brünn
@ 2017-12-19 11:18                   ` Marek Vasut
  0 siblings, 0 replies; 16+ messages in thread
From: Marek Vasut @ 2017-12-19 11:18 UTC (permalink / raw)
  To: u-boot

On 12/19/2017 05:28 AM, Patrick Brünn wrote:
>> From: Marek Vasut [mailto:marex at denx.de]
>> Sent: Montag, 18. Dezember 2017 13:30
>> On 12/18/2017 01:16 PM, Patrick Brünn wrote:
>>>> From: Marek Vasut [mailto:marex at denx.de]
>>>> Sent: Montag, 18. Dezember 2017 12:52
>>>> On 12/18/2017 12:40 PM, Patrick Brünn wrote:
> [...]
>>>> btw do you use SPL ? If not, you should ...
>>> I will read more about SPL. Until now, I thought I will only benefit,
>>> if my initial boot media is limited in size. As we boot from sdcard,
>>> that wasn't a problem to store 360k u-boot.
>>
>> The other is that you can ie. skip the whole u-boot altogether and boot
>> linux directly.
>>
> Okay, I will try that.
>> I wonder if it would be better to keep the static variable and avoid
>> calling the get_ram_size() twice, it can save some CPU cycles. Besides
>> that, thanks for the explanation/discussion !1
>>
> The pleasure was all mine. I will test SPL on my board and in case that's working I think it still makes sense to move our common code into one file. Is arch/arm/mach-imx/mx53_dram.c the best location for it?
> At first I tried board/freescale/common/ but in that case I needed to use ugly relative pathes in the Makefiles "../../"

I think arch/arm/mach-imx/ is good , yes . We already have some imx6 ddr
there too, maybe you can follow that scheme.

> Regards, Patrick
> 
> ---
> Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
> Registered office: Verl, Germany | Register court: Guetersloh HRA 7075
> 
> 


-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2017-12-19 11:18 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-18  9:02 [U-Boot] [PATCH v2 0/4] arm: imx53: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
2017-12-18  9:02 ` [U-Boot] [PATCH v2 1/4] arm: imx: cx9020: " linux-kernel-dev at beckhoff.com
2017-12-18  9:02 ` [U-Boot] [PATCH v2 2/4] arm: imx: cx9020: move dram init into common place linux-kernel-dev at beckhoff.com
2017-12-18  9:02 ` [U-Boot] [PATCH v2 3/4] arm: imx: m53evk: remove usage of mx53_dram_size linux-kernel-dev at beckhoff.com
2017-12-18  9:17   ` Marek Vasut
2017-12-18 10:47     ` Patrick Brünn
2017-12-18 10:57       ` Marek Vasut
2017-12-18 11:40         ` Patrick Brünn
2017-12-18 11:52           ` Marek Vasut
2017-12-18 12:16             ` Patrick Brünn
2017-12-18 12:29               ` Marek Vasut
2017-12-19  4:28                 ` Patrick Brünn
2017-12-19 11:18                   ` Marek Vasut
2017-12-19  7:48                 ` Patrick Brünn
2017-12-19  9:59     ` Lothar Waßmann
2017-12-18  9:02 ` [U-Boot] [PATCH v2 4/4] arm: imx: mx53loco: " linux-kernel-dev at beckhoff.com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox