public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 0/8] arm: Tidy up early init
@ 2015-08-28 20:50 Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 1/8] Move board_init_f_mem() into a common location Simon Glass
                   ` (8 more replies)
  0 siblings, 9 replies; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

This series collects the previous RFT patches I sent out.

https://patchwork.ozlabs.org/patch/508167/
https://patchwork.ozlabs.org/patch/508168/

It turns out that I originally sent a version of these in April:

https://patchwork.ozlabs.org/patch/461687/
https://patchwork.ozlabs.org/patch/461690/

so this series mirrors that one and includes the Zynq patches from that
series.

I hope these can sneak in to this release so that I don't forget them
again!

I have tested this on a few ARM platforms: Zynq Zybo, Beaglebone Black,
pcduino3 (sunxi), Jetson-TK1 (tegra).

Changes in v2:
- Put this into common/init/ and just Makefiles accordingly
- Add comments as to why this is needed, deal with arch-specific memset()

Simon Glass (8):
  Move board_init_f_mem() into a common location
  board_init_f_mem(): Don't require memset()
  board_init_f_mem(): Don't create an unused early malloc() area
  arm: Switch aarch64 to using generic global_data setup
  arm: Switch 32-bit ARM to using generic global_data setup
  microblaze: Add a TODO to call board_init_f_mem()
  zynq: Move SPL console init out of board_init_f()
  Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"

 arch/arm/lib/crt0.S                | 28 +++---------------
 arch/arm/lib/crt0_64.S             | 15 ++--------
 arch/arm/mach-zynq/spl.c           |  2 +-
 arch/microblaze/cpu/start.S        |  2 ++
 common/Makefile                    |  1 +
 common/board_f.c                   | 29 ------------------
 common/init/Makefile               |  7 +++++
 common/init/board_init.c           | 60 ++++++++++++++++++++++++++++++++++++++
 configs/zynq_microzed_defconfig    |  1 -
 configs/zynq_zc702_defconfig       |  1 -
 configs/zynq_zc706_defconfig       |  1 -
 configs/zynq_zc70x_defconfig       |  1 -
 configs/zynq_zc770_xm010_defconfig |  1 -
 configs/zynq_zc770_xm011_defconfig |  1 -
 configs/zynq_zc770_xm012_defconfig |  1 -
 configs/zynq_zc770_xm013_defconfig |  1 -
 configs/zynq_zed_defconfig         |  1 -
 configs/zynq_zybo_defconfig        |  1 -
 scripts/Makefile.spl               |  1 +
 19 files changed, 79 insertions(+), 76 deletions(-)
 create mode 100644 common/init/Makefile
 create mode 100644 common/init/board_init.c

-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 1/8] Move board_init_f_mem() into a common location
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
@ 2015-08-28 20:50 ` Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 2/8] board_init_f_mem(): Don't require memset() Simon Glass
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

This function will be used by both SPL and U-Boot proper. So move it into
a common place. Also change the #ifdef so that the early malloc() area is
not set up in SPL if CONFIG_SYS_SPL_MALLOC_START is defined. In that case
it would never actually be used, and just chews up stack space.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2:
- Put this into common/init/ and just Makefiles accordingly

 common/Makefile          |  1 +
 common/board_f.c         | 29 -----------------------------
 common/init/Makefile     |  7 +++++++
 common/init/board_init.c | 41 +++++++++++++++++++++++++++++++++++++++++
 scripts/Makefile.spl     |  1 +
 5 files changed, 50 insertions(+), 29 deletions(-)
 create mode 100644 common/init/Makefile
 create mode 100644 common/init/board_init.c

diff --git a/common/Makefile b/common/Makefile
index dc82433..35b47a9 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -7,6 +7,7 @@
 
 # core
 ifndef CONFIG_SPL_BUILD
+obj-y += init/
 obj-y += main.o
 obj-y += exports.o
 obj-y += hash.o
diff --git a/common/board_f.c b/common/board_f.c
index fe75656..85ae7a9 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -1026,32 +1026,3 @@ void board_init_f_r(void)
 	hang();
 }
 #endif /* CONFIG_X86 */
-
-/* Unfortunately x86 can't compile this code as gd cannot be assigned */
-#ifndef CONFIG_X86
-__weak void arch_setup_gd(struct global_data *gd_ptr)
-{
-	gd = gd_ptr;
-}
-#endif /* !CONFIG_X86 */
-
-ulong board_init_f_mem(ulong top)
-{
-	struct global_data *gd_ptr;
-
-	/* Leave space for the stack we are running with now */
-	top -= 0x40;
-
-	top -= sizeof(struct global_data);
-	top = ALIGN(top, 16);
-	gd_ptr = (struct global_data *)top;
-	memset(gd_ptr, '\0', sizeof(*gd));
-	arch_setup_gd(gd_ptr);
-
-#ifdef CONFIG_SYS_MALLOC_F_LEN
-	top -= CONFIG_SYS_MALLOC_F_LEN;
-	gd->malloc_base = top;
-#endif
-
-	return top;
-}
diff --git a/common/init/Makefile b/common/init/Makefile
new file mode 100644
index 0000000..4902635
--- /dev/null
+++ b/common/init/Makefile
@@ -0,0 +1,7 @@
+#
+# Copyright (c) 2015 Google, Inc
+#
+# SPDX-License-Identifier:      GPL-2.0+
+#
+
+obj-y += board_init.o
diff --git a/common/init/board_init.c b/common/init/board_init.c
new file mode 100644
index 0000000..e7ebca7
--- /dev/null
+++ b/common/init/board_init.c
@@ -0,0 +1,41 @@
+/*
+ * Code shared between SPL and U-Boot proper
+ *
+ * Copyright (c) 2015 Google, Inc
+ * Written by Simon Glass <sjg@chromium.org>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* Unfortunately x86 can't compile this code as gd cannot be assigned */
+#ifndef CONFIG_X86
+__weak void arch_setup_gd(struct global_data *gd_ptr)
+{
+	gd = gd_ptr;
+}
+#endif /* !CONFIG_X86 */
+
+ulong board_init_f_mem(ulong top)
+{
+	struct global_data *gd_ptr;
+
+	/* Leave space for the stack we are running with now */
+	top -= 0x40;
+
+	top -= sizeof(struct global_data);
+	top = ALIGN(top, 16);
+	gd_ptr = (struct global_data *)top;
+	memset(gd_ptr, '\0', sizeof(*gd));
+	arch_setup_gd(gd_ptr);
+
+#if defined(CONFIG_SYS_MALLOC_F)
+	top -= CONFIG_SYS_MALLOC_F_LEN;
+	gd->malloc_base = top;
+#endif
+
+	return top;
+}
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index 58442f1..2df93c8 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -52,6 +52,7 @@ libs-y += $(if $(BOARDDIR),board/$(BOARDDIR)/)
 libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
 
 libs-$(CONFIG_SPL_FRAMEWORK) += common/spl/
+libs-y += common/init/
 libs-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/
 libs-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/
 libs-y += drivers/
-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 2/8] board_init_f_mem(): Don't require memset()
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 1/8] Move board_init_f_mem() into a common location Simon Glass
@ 2015-08-28 20:50 ` Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 3/8] board_init_f_mem(): Don't create an unused early malloc() area Simon Glass
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

Unfortunately memset() is not always available, so provide a substitute when
needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2:
- Add comments as to why this is needed, deal with arch-specific memset()

 common/init/board_init.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/common/init/board_init.c b/common/init/board_init.c
index e7ebca7..b6a1a17 100644
--- a/common/init/board_init.c
+++ b/common/init/board_init.c
@@ -11,6 +11,16 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+/*
+ * It isn't trivial to figure out whether memcpy() exists. The arch-specific
+ * memcpy() is not normally available in SPL due to code size.
+ */
+#if !defined(CONFIG_SPL_BUILD) || \
+		(defined(CONFIG_SPL_LIBGENERIC_SUPPORT) && \
+		!defined(CONFIG_USE_ARCH_MEMSET))
+#define USE_MEMCPY
+#endif
+
 /* Unfortunately x86 can't compile this code as gd cannot be assigned */
 #ifndef CONFIG_X86
 __weak void arch_setup_gd(struct global_data *gd_ptr)
@@ -22,6 +32,9 @@ __weak void arch_setup_gd(struct global_data *gd_ptr)
 ulong board_init_f_mem(ulong top)
 {
 	struct global_data *gd_ptr;
+#ifndef USE_MEMCPY
+	int *ptr, *end;
+#endif
 
 	/* Leave space for the stack we are running with now */
 	top -= 0x40;
@@ -29,7 +42,12 @@ ulong board_init_f_mem(ulong top)
 	top -= sizeof(struct global_data);
 	top = ALIGN(top, 16);
 	gd_ptr = (struct global_data *)top;
+#ifdef USE_MEMCPY
 	memset(gd_ptr, '\0', sizeof(*gd));
+#else
+	for (ptr = (int *)gd_ptr, end = (int *)(gd_ptr + 1); ptr < end; )
+		*ptr++ = 0;
+#endif
 	arch_setup_gd(gd_ptr);
 
 #if defined(CONFIG_SYS_MALLOC_F)
-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 3/8] board_init_f_mem(): Don't create an unused early malloc() area
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 1/8] Move board_init_f_mem() into a common location Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 2/8] board_init_f_mem(): Don't require memset() Simon Glass
@ 2015-08-28 20:50 ` Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 4/8] arm: Switch aarch64 to using generic global_data setup Simon Glass
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

Change the #ifdef so that the early malloc() area is not set up in SPL if
CONFIG_SYS_SPL_MALLOC_START is defined. In that case it would never actually
be used, and just chews up stack space.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v2: None

 common/init/board_init.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/common/init/board_init.c b/common/init/board_init.c
index b6a1a17..65391a5 100644
--- a/common/init/board_init.c
+++ b/common/init/board_init.c
@@ -50,7 +50,8 @@ ulong board_init_f_mem(ulong top)
 #endif
 	arch_setup_gd(gd_ptr);
 
-#if defined(CONFIG_SYS_MALLOC_F)
+#if defined(CONFIG_SYS_MALLOC_F) && \
+	(!defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SYS_SPL_MALLOC_START))
 	top -= CONFIG_SYS_MALLOC_F_LEN;
 	gd->malloc_base = top;
 #endif
-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 4/8] arm: Switch aarch64 to using generic global_data setup
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
                   ` (2 preceding siblings ...)
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 3/8] board_init_f_mem(): Don't create an unused early malloc() area Simon Glass
@ 2015-08-28 20:50 ` Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 5/8] arm: Switch 32-bit ARM " Simon Glass
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

There is quite a bit of assembler code that can be removed if we use the
generic global_data setup. Less arch-specific code makes it easier to add
new features and maintain the start-up code.

Drop the unneeded code and adjust the hooks in board_f.c to cope.

Tested on LS2085ARDB and LS2085AQDS (armv8 SoC).
Tested-by: York Sun <yorksun@freescale.com>

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2: None

 arch/arm/lib/crt0_64.S | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/arch/arm/lib/crt0_64.S b/arch/arm/lib/crt0_64.S
index 98a906e..31fc3b4 100644
--- a/arch/arm/lib/crt0_64.S
+++ b/arch/arm/lib/crt0_64.S
@@ -66,19 +66,10 @@ ENTRY(_main)
 #else
 	ldr	x0, =(CONFIG_SYS_INIT_SP_ADDR)
 #endif
-	sub	x18, x0, #GD_SIZE	/* allocate one GD above SP */
-	bic	x18, x18, #0x7		/* 8-byte alignment for GD */
-zero_gd:
-	sub	x0, x0, #0x8
-	str	xzr, [x0]
-	cmp	x0, x18
-	b.gt	zero_gd
-#if defined(CONFIG_SYS_MALLOC_F_LEN)
-	ldr	x0, =CONFIG_SYS_MALLOC_F_LEN
-	sub	x0, x18, x0
-	str	x0, [x18, #GD_MALLOC_BASE]
-#endif
 	bic	sp, x0, #0xf	/* 16-byte alignment for ABI compliance */
+	bl	board_init_f_mem
+	mov	sp, x0
+
 	mov	x0, #0
 	bl	board_init_f
 
-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 5/8] arm: Switch 32-bit ARM to using generic global_data setup
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
                   ` (3 preceding siblings ...)
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 4/8] arm: Switch aarch64 to using generic global_data setup Simon Glass
@ 2015-08-28 20:50 ` Simon Glass
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 6/8] microblaze: Add a TODO to call board_init_f_mem() Simon Glass
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

There is quite a bit of assembler code that can be removed if we use the
generic global_data setup. Less arch-specific code makes it easier to add
new features and maintain the start-up code.

Drop the unneeded code and adjust the hooks in board_f.c to cope.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2: None

 arch/arm/lib/crt0.S | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S
index afd4f10..fc1252d 100644
--- a/arch/arm/lib/crt0.S
+++ b/arch/arm/lib/crt0.S
@@ -76,31 +76,11 @@ ENTRY(_main)
 #else
 	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */
 #endif
-	mov	r2, sp
-	sub	sp, sp, #GD_SIZE	/* allocate one GD above SP */
-#if defined(CONFIG_CPU_V7M)	/* v7M forbids using SP as BIC destination */
-	mov	r3, sp
-	bic	r3, r3, #7
-	mov	sp, r3
-#else
-	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */
-#endif
-	mov	r9, sp		/* GD is above SP */
-	mov	r1, sp
+	mov	r0, sp
+	bl	board_init_f_mem
+	mov	sp, r0
+
 	mov	r0, #0
-clr_gd:
-	cmp	r1, r2			/* while not at end of GD */
-#if defined(CONFIG_CPU_V7M)
-	itt	lo
-#endif
-	strlo	r0, [r1]		/* clear 32-bit GD word */
-	addlo	r1, r1, #4		/* move to next */
-	blo	clr_gd
-#if defined(CONFIG_SYS_MALLOC_F_LEN)
-	sub	sp, sp, #CONFIG_SYS_MALLOC_F_LEN
-	str	sp, [r9, #GD_MALLOC_BASE]
-#endif
-	/* mov r0, #0 not needed due to above code */
 	bl	board_init_f
 
 #if ! defined(CONFIG_SPL_BUILD)
-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 6/8] microblaze: Add a TODO to call board_init_f_mem()
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
                   ` (4 preceding siblings ...)
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 5/8] arm: Switch 32-bit ARM " Simon Glass
@ 2015-08-28 20:50 ` Simon Glass
  2015-09-01  8:45   ` Michal Simek
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 7/8] zynq: Move SPL console init out of board_init_f() Simon Glass
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

This C function should be used to do the early memory layout and init. This
is beyond my powers, so just add a TODO for the maintainer.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2: None

 arch/microblaze/cpu/start.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/microblaze/cpu/start.S b/arch/microblaze/cpu/start.S
index 953d3a1..14f46a8 100644
--- a/arch/microblaze/cpu/start.S
+++ b/arch/microblaze/cpu/start.S
@@ -25,6 +25,7 @@ _start:
 
 	addi	r8, r0, __end
 	mts	rslr, r8
+	/* TODO: Redo this code to call board_init_f_mem() */
 #if defined(CONFIG_SPL_BUILD)
 	addi	r1, r0, CONFIG_SPL_STACK_ADDR
 	mts	rshr, r1
@@ -141,6 +142,7 @@ _start:
 	ori	r12, r12, 0x1a0
 	mts	rmsr, r12
 
+	/* TODO: Redo this code to call board_init_f_mem() */
 clear_bss:
 	/* clear BSS segments */
 	addi	r5, r0, __bss_start
-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 7/8] zynq: Move SPL console init out of board_init_f()
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
                   ` (5 preceding siblings ...)
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 6/8] microblaze: Add a TODO to call board_init_f_mem() Simon Glass
@ 2015-08-28 20:50 ` Simon Glass
  2015-09-01  8:44   ` Michal Simek
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 8/8] Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot" Simon Glass
  2015-09-01  9:10 ` [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Michal Simek
  8 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

We should not init the console this early and there is no need to. If we want
to do early init it can be done in spl_board_init(). Move the
preloader_console_init() call from board_init_f() to board_init_r().

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v2: None

 arch/arm/mach-zynq/spl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-zynq/spl.c b/arch/arm/mach-zynq/spl.c
index e7df6d3..7bdac3b 100644
--- a/arch/arm/mach-zynq/spl.c
+++ b/arch/arm/mach-zynq/spl.c
@@ -20,7 +20,6 @@ void board_init_f(ulong dummy)
 	/* Clear the BSS. */
 	memset(__bss_start, 0, __bss_end - __bss_start);
 
-	preloader_console_init();
 	arch_cpu_init();
 	board_init_r(NULL, 0);
 }
@@ -28,6 +27,7 @@ void board_init_f(ulong dummy)
 #ifdef CONFIG_SPL_BOARD_INIT
 void spl_board_init(void)
 {
+	preloader_console_init();
 	board_init();
 }
 #endif
-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 8/8] Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
                   ` (6 preceding siblings ...)
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 7/8] zynq: Move SPL console init out of board_init_f() Simon Glass
@ 2015-08-28 20:50 ` Simon Glass
  2015-09-01  8:57   ` Michal Simek
  2015-09-01  9:10 ` [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Michal Simek
  8 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2015-08-28 20:50 UTC (permalink / raw)
  To: u-boot

This reverts commit 321f86e18d6aae9f7b7ba3ef1eb0cec769481874.

The original bug has been fixed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-on: Zedboard and ZC706 board
Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v2: None

 configs/zynq_microzed_defconfig    | 1 -
 configs/zynq_zc702_defconfig       | 1 -
 configs/zynq_zc706_defconfig       | 1 -
 configs/zynq_zc70x_defconfig       | 1 -
 configs/zynq_zc770_xm010_defconfig | 1 -
 configs/zynq_zc770_xm011_defconfig | 1 -
 configs/zynq_zc770_xm012_defconfig | 1 -
 configs/zynq_zc770_xm013_defconfig | 1 -
 configs/zynq_zed_defconfig         | 1 -
 configs/zynq_zybo_defconfig        | 1 -
 10 files changed, 10 deletions(-)

diff --git a/configs/zynq_microzed_defconfig b/configs/zynq_microzed_defconfig
index 3e141a8..e9c3209 100644
--- a/configs/zynq_microzed_defconfig
+++ b/configs/zynq_microzed_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_MICROZED=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-microzed"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zc702_defconfig b/configs/zynq_zc702_defconfig
index f94bdde..0abb7a8 100644
--- a/configs/zynq_zc702_defconfig
+++ b/configs/zynq_zc702_defconfig
@@ -1,7 +1,6 @@
 CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zc702"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zc706_defconfig b/configs/zynq_zc706_defconfig
index 49efc6b..d67f507 100644
--- a/configs/zynq_zc706_defconfig
+++ b/configs/zynq_zc706_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_ZC706=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zc706"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zc70x_defconfig b/configs/zynq_zc70x_defconfig
index 633c521..37c249f 100644
--- a/configs/zynq_zc70x_defconfig
+++ b/configs/zynq_zc70x_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_ZC70X=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zc702"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zc770_xm010_defconfig b/configs/zynq_zc770_xm010_defconfig
index c608029..0e826bb 100644
--- a/configs/zynq_zc770_xm010_defconfig
+++ b/configs/zynq_zc770_xm010_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_ZC770=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zc770-xm010"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zc770_xm011_defconfig b/configs/zynq_zc770_xm011_defconfig
index 123e461..46d043b 100644
--- a/configs/zynq_zc770_xm011_defconfig
+++ b/configs/zynq_zc770_xm011_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_ZC770=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zc770-xm011"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zc770_xm012_defconfig b/configs/zynq_zc770_xm012_defconfig
index 3da5168..34d479f 100644
--- a/configs/zynq_zc770_xm012_defconfig
+++ b/configs/zynq_zc770_xm012_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_ZC770=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zc770-xm012"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zc770_xm013_defconfig b/configs/zynq_zc770_xm013_defconfig
index 015ec79..c59599f 100644
--- a/configs/zynq_zc770_xm013_defconfig
+++ b/configs/zynq_zc770_xm013_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_ZC770=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zc770-xm013"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zed_defconfig b/configs/zynq_zed_defconfig
index ce414b7..886b4a5 100644
--- a/configs/zynq_zed_defconfig
+++ b/configs/zynq_zed_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_ZED=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zed"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
diff --git a/configs/zynq_zybo_defconfig b/configs/zynq_zybo_defconfig
index defcac9..77b9409 100644
--- a/configs/zynq_zybo_defconfig
+++ b/configs/zynq_zybo_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_TARGET_ZYNQ_ZYBO=y
 CONFIG_DEFAULT_DEVICE_TREE="zynq-zybo"
-# CONFIG_SYS_MALLOC_F is not set
 CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
-- 
2.5.0.457.gab17608

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

* [U-Boot] [PATCH v2 7/8] zynq: Move SPL console init out of board_init_f()
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 7/8] zynq: Move SPL console init out of board_init_f() Simon Glass
@ 2015-09-01  8:44   ` Michal Simek
  0 siblings, 0 replies; 16+ messages in thread
From: Michal Simek @ 2015-09-01  8:44 UTC (permalink / raw)
  To: u-boot

On 08/28/2015 10:50 PM, Simon Glass wrote:
> We should not init the console this early and there is no need to. If we want
> to do early init it can be done in spl_board_init(). Move the
> preloader_console_init() call from board_init_f() to board_init_r().
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
> Changes in v2: None
> 
>  arch/arm/mach-zynq/spl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-zynq/spl.c b/arch/arm/mach-zynq/spl.c
> index e7df6d3..7bdac3b 100644
> --- a/arch/arm/mach-zynq/spl.c
> +++ b/arch/arm/mach-zynq/spl.c
> @@ -20,7 +20,6 @@ void board_init_f(ulong dummy)
>  	/* Clear the BSS. */
>  	memset(__bss_start, 0, __bss_end - __bss_start);
>  
> -	preloader_console_init();
>  	arch_cpu_init();
>  	board_init_r(NULL, 0);
>  }
> @@ -28,6 +27,7 @@ void board_init_f(ulong dummy)
>  #ifdef CONFIG_SPL_BOARD_INIT
>  void spl_board_init(void)
>  {
> +	preloader_console_init();
>  	board_init();
>  }
>  #endif
> 

Tested-by: Michal Simek <michal.simek@xilinx.com>

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150901/1ec9b138/attachment.sig>

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

* [U-Boot] [PATCH v2 6/8] microblaze: Add a TODO to call board_init_f_mem()
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 6/8] microblaze: Add a TODO to call board_init_f_mem() Simon Glass
@ 2015-09-01  8:45   ` Michal Simek
  0 siblings, 0 replies; 16+ messages in thread
From: Michal Simek @ 2015-09-01  8:45 UTC (permalink / raw)
  To: u-boot

On 08/28/2015 10:50 PM, Simon Glass wrote:
> This C function should be used to do the early memory layout and init. This
> is beyond my powers, so just add a TODO for the maintainer.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
> Changes in v2: None
> 
>  arch/microblaze/cpu/start.S | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/microblaze/cpu/start.S b/arch/microblaze/cpu/start.S
> index 953d3a1..14f46a8 100644
> --- a/arch/microblaze/cpu/start.S
> +++ b/arch/microblaze/cpu/start.S
> @@ -25,6 +25,7 @@ _start:
>  
>  	addi	r8, r0, __end
>  	mts	rslr, r8
> +	/* TODO: Redo this code to call board_init_f_mem() */
>  #if defined(CONFIG_SPL_BUILD)
>  	addi	r1, r0, CONFIG_SPL_STACK_ADDR
>  	mts	rshr, r1
> @@ -141,6 +142,7 @@ _start:
>  	ori	r12, r12, 0x1a0
>  	mts	rmsr, r12
>  
> +	/* TODO: Redo this code to call board_init_f_mem() */
>  clear_bss:
>  	/* clear BSS segments */
>  	addi	r5, r0, __bss_start
> 

Acked-by: Michal Simek <michal.simek@xilinx.com>

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150901/ae689067/attachment.sig>

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

* [U-Boot] [PATCH v2 8/8] Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 8/8] Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot" Simon Glass
@ 2015-09-01  8:57   ` Michal Simek
  0 siblings, 0 replies; 16+ messages in thread
From: Michal Simek @ 2015-09-01  8:57 UTC (permalink / raw)
  To: u-boot

On 08/28/2015 10:50 PM, Simon Glass wrote:
> This reverts commit 321f86e18d6aae9f7b7ba3ef1eb0cec769481874.
> 
> The original bug has been fixed.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Tested-on: Zedboard and ZC706 board
> Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
> Changes in v2: None
> 
>  configs/zynq_microzed_defconfig    | 1 -
>  configs/zynq_zc702_defconfig       | 1 -
>  configs/zynq_zc706_defconfig       | 1 -
>  configs/zynq_zc70x_defconfig       | 1 -
>  configs/zynq_zc770_xm010_defconfig | 1 -
>  configs/zynq_zc770_xm011_defconfig | 1 -
>  configs/zynq_zc770_xm012_defconfig | 1 -
>  configs/zynq_zc770_xm013_defconfig | 1 -
>  configs/zynq_zed_defconfig         | 1 -
>  configs/zynq_zybo_defconfig        | 1 -
>  10 files changed, 10 deletions(-)

Tested-on: zc702
Tested-by: Michal Simek <michal.simek@xilinx.com>

Thanks,
Michal

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150901/6f3c677d/attachment.sig>

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

* [U-Boot] [PATCH v2 0/8] arm: Tidy up early init
  2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
                   ` (7 preceding siblings ...)
  2015-08-28 20:50 ` [U-Boot] [PATCH v2 8/8] Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot" Simon Glass
@ 2015-09-01  9:10 ` Michal Simek
  2015-09-02  2:48   ` Simon Glass
  8 siblings, 1 reply; 16+ messages in thread
From: Michal Simek @ 2015-09-01  9:10 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On 08/28/2015 10:50 PM, Simon Glass wrote:
> This series collects the previous RFT patches I sent out.
> 
> https://patchwork.ozlabs.org/patch/508167/
> https://patchwork.ozlabs.org/patch/508168/
> 
> It turns out that I originally sent a version of these in April:
> 
> https://patchwork.ozlabs.org/patch/461687/
> https://patchwork.ozlabs.org/patch/461690/
> 
> so this series mirrors that one and includes the Zynq patches from that
> series.
> 
> I hope these can sneak in to this release so that I don't forget them
> again!
> 
> I have tested this on a few ARM platforms: Zynq Zybo, Beaglebone Black,
> pcduino3 (sunxi), Jetson-TK1 (tegra).
> 
> Changes in v2:
> - Put this into common/init/ and just Makefiles accordingly
> - Add comments as to why this is needed, deal with arch-specific memset()
> 
> Simon Glass (8):
>   Move board_init_f_mem() into a common location
>   board_init_f_mem(): Don't require memset()
>   board_init_f_mem(): Don't create an unused early malloc() area
>   arm: Switch aarch64 to using generic global_data setup
>   arm: Switch 32-bit ARM to using generic global_data setup
>   microblaze: Add a TODO to call board_init_f_mem()
>   zynq: Move SPL console init out of board_init_f()
>   Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
> 
>  arch/arm/lib/crt0.S                | 28 +++---------------
>  arch/arm/lib/crt0_64.S             | 15 ++--------
>  arch/arm/mach-zynq/spl.c           |  2 +-
>  arch/microblaze/cpu/start.S        |  2 ++
>  common/Makefile                    |  1 +
>  common/board_f.c                   | 29 ------------------
>  common/init/Makefile               |  7 +++++
>  common/init/board_init.c           | 60 ++++++++++++++++++++++++++++++++++++++
>  configs/zynq_microzed_defconfig    |  1 -
>  configs/zynq_zc702_defconfig       |  1 -
>  configs/zynq_zc706_defconfig       |  1 -
>  configs/zynq_zc70x_defconfig       |  1 -
>  configs/zynq_zc770_xm010_defconfig |  1 -
>  configs/zynq_zc770_xm011_defconfig |  1 -
>  configs/zynq_zc770_xm012_defconfig |  1 -
>  configs/zynq_zc770_xm013_defconfig |  1 -
>  configs/zynq_zed_defconfig         |  1 -
>  configs/zynq_zybo_defconfig        |  1 -
>  scripts/Makefile.spl               |  1 +
>  19 files changed, 79 insertions(+), 76 deletions(-)
>  create mode 100644 common/init/Makefile
>  create mode 100644 common/init/board_init.c
> 

I am getting compilation warning about USE_MEMCPY which should be
resolved too.


[u-boot]$ ./tools/buildman/buildman -b xnext/serial2 zynq_zc702 -sSed
boards.cfg is up to date. Nothing to do.
Summary of 9 commits for 1 boards (1 thread, 8 jobs per thread)
01: Merge branch 'master' of http://git.denx.de/u-boot-sunxi
02: Move board_init_f_mem() into a common location
03: board_init_f_mem(): Don't require memset()
       arm:  +   zynq_zc702
+ #define USE_MEMCPY
+ ^
+In file included from ../include/common.h:1064:0,
+                 from ../common/init/board_init.c:10:
+../include/malloc.h:355:0: note: this is the location of the previous
definition
+ #define USE_MEMCPY 1
w+../common/init/board_init.c:21:0: warning: "USE_MEMCPY" redefined
[enabled by default]
04: board_init_f_mem(): Don't create an unused early malloc() area
05: arm: Switch aarch64 to using generic global_data setup
06: arm: Switch 32-bit ARM to using generic global_data setup
       arm: (for 1/1 boards)  all +28.0  spl/u-boot-spl:all +28.0
spl/u-boot-spl:text +28.0  text +28.0
            zynq_zc702     :  all +28  spl/u-boot-spl:all +28
spl/u-boot-spl:text +28  text +28
07: microblaze: Add a TODO to call board_init_f_mem()
08: zynq: Move SPL console init out of board_init_f()
       arm: (for 1/1 boards)  spl/u-boot-spl:all +8.0
spl/u-boot-spl:text +8.0
            zynq_zc702     :  spl/u-boot-spl:all +8  spl/u-boot-spl:text +8
09: Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
       arm: (for 1/1 boards)  all +257.0  rodata +37.0
spl/u-boot-spl:all +180.0  spl/u-boot-spl:text +180.0  text +220.0
            zynq_zc702     :  all +257  rodata +37  spl/u-boot-spl:all
+180  spl/u-boot-spl:text +180  text +220


Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150901/e6613021/attachment.sig>

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

* [U-Boot] [PATCH v2 0/8] arm: Tidy up early init
  2015-09-01  9:10 ` [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Michal Simek
@ 2015-09-02  2:48   ` Simon Glass
  2015-09-03 11:13     ` Michal Simek
  0 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2015-09-02  2:48 UTC (permalink / raw)
  To: u-boot

Hi Mchal,

On 1 September 2015 at 03:10, Michal Simek <monstr@monstr.eu> wrote:
> Hi Simon,
>
> On 08/28/2015 10:50 PM, Simon Glass wrote:
>> This series collects the previous RFT patches I sent out.
>>
>> https://patchwork.ozlabs.org/patch/508167/
>> https://patchwork.ozlabs.org/patch/508168/
>>
>> It turns out that I originally sent a version of these in April:
>>
>> https://patchwork.ozlabs.org/patch/461687/
>> https://patchwork.ozlabs.org/patch/461690/
>>
>> so this series mirrors that one and includes the Zynq patches from that
>> series.
>>
>> I hope these can sneak in to this release so that I don't forget them
>> again!
>>
>> I have tested this on a few ARM platforms: Zynq Zybo, Beaglebone Black,
>> pcduino3 (sunxi), Jetson-TK1 (tegra).
>>
>> Changes in v2:
>> - Put this into common/init/ and just Makefiles accordingly
>> - Add comments as to why this is needed, deal with arch-specific memset()
>>
>> Simon Glass (8):
>>   Move board_init_f_mem() into a common location
>>   board_init_f_mem(): Don't require memset()
>>   board_init_f_mem(): Don't create an unused early malloc() area
>>   arm: Switch aarch64 to using generic global_data setup
>>   arm: Switch 32-bit ARM to using generic global_data setup
>>   microblaze: Add a TODO to call board_init_f_mem()
>>   zynq: Move SPL console init out of board_init_f()
>>   Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
>>
>>  arch/arm/lib/crt0.S                | 28 +++---------------
>>  arch/arm/lib/crt0_64.S             | 15 ++--------
>>  arch/arm/mach-zynq/spl.c           |  2 +-
>>  arch/microblaze/cpu/start.S        |  2 ++
>>  common/Makefile                    |  1 +
>>  common/board_f.c                   | 29 ------------------
>>  common/init/Makefile               |  7 +++++
>>  common/init/board_init.c           | 60 ++++++++++++++++++++++++++++++++++++++
>>  configs/zynq_microzed_defconfig    |  1 -
>>  configs/zynq_zc702_defconfig       |  1 -
>>  configs/zynq_zc706_defconfig       |  1 -
>>  configs/zynq_zc70x_defconfig       |  1 -
>>  configs/zynq_zc770_xm010_defconfig |  1 -
>>  configs/zynq_zc770_xm011_defconfig |  1 -
>>  configs/zynq_zc770_xm012_defconfig |  1 -
>>  configs/zynq_zc770_xm013_defconfig |  1 -
>>  configs/zynq_zed_defconfig         |  1 -
>>  configs/zynq_zybo_defconfig        |  1 -
>>  scripts/Makefile.spl               |  1 +
>>  19 files changed, 79 insertions(+), 76 deletions(-)
>>  create mode 100644 common/init/Makefile
>>  create mode 100644 common/init/board_init.c
>>
>
> I am getting compilation warning about USE_MEMCPY which should be
> resolved too.
>
>
> [u-boot]$ ./tools/buildman/buildman -b xnext/serial2 zynq_zc702 -sSed
> boards.cfg is up to date. Nothing to do.
> Summary of 9 commits for 1 boards (1 thread, 8 jobs per thread)
> 01: Merge branch 'master' of http://git.denx.de/u-boot-sunxi
> 02: Move board_init_f_mem() into a common location
> 03: board_init_f_mem(): Don't require memset()
>        arm:  +   zynq_zc702
> + #define USE_MEMCPY
> + ^
> +In file included from ../include/common.h:1064:0,
> +                 from ../common/init/board_init.c:10:
> +../include/malloc.h:355:0: note: this is the location of the previous
> definition
> + #define USE_MEMCPY 1
> w+../common/init/board_init.c:21:0: warning: "USE_MEMCPY" redefined
> [enabled by default]
> 04: board_init_f_mem(): Don't create an unused early malloc() area
> 05: arm: Switch aarch64 to using generic global_data setup
> 06: arm: Switch 32-bit ARM to using generic global_data setup
>        arm: (for 1/1 boards)  all +28.0  spl/u-boot-spl:all +28.0
> spl/u-boot-spl:text +28.0  text +28.0
>             zynq_zc702     :  all +28  spl/u-boot-spl:all +28
> spl/u-boot-spl:text +28  text +28
> 07: microblaze: Add a TODO to call board_init_f_mem()
> 08: zynq: Move SPL console init out of board_init_f()
>        arm: (for 1/1 boards)  spl/u-boot-spl:all +8.0
> spl/u-boot-spl:text +8.0
>             zynq_zc702     :  spl/u-boot-spl:all +8  spl/u-boot-spl:text +8
> 09: Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
>        arm: (for 1/1 boards)  all +257.0  rodata +37.0
> spl/u-boot-spl:all +180.0  spl/u-boot-spl:text +180.0  text +220.0
>             zynq_zc702     :  all +257  rodata +37  spl/u-boot-spl:all
> +180  spl/u-boot-spl:text +180  text +220

Yes, unfortunately I found that later and also I found a conflict with
the malloc change also:

http://patchwork.ozlabs.org/patch/512147/

Once we figure out zynqmp I can resend it.

Regards,
Simon

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

* [U-Boot] [PATCH v2 0/8] arm: Tidy up early init
  2015-09-02  2:48   ` Simon Glass
@ 2015-09-03 11:13     ` Michal Simek
  2015-09-04 23:42       ` Simon Glass
  0 siblings, 1 reply; 16+ messages in thread
From: Michal Simek @ 2015-09-03 11:13 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On 09/02/2015 04:48 AM, Simon Glass wrote:
> Hi Mchal,
> 
> On 1 September 2015 at 03:10, Michal Simek <monstr@monstr.eu> wrote:
>> Hi Simon,
>>
>> On 08/28/2015 10:50 PM, Simon Glass wrote:
>>> This series collects the previous RFT patches I sent out.
>>>
>>> https://patchwork.ozlabs.org/patch/508167/
>>> https://patchwork.ozlabs.org/patch/508168/
>>>
>>> It turns out that I originally sent a version of these in April:
>>>
>>> https://patchwork.ozlabs.org/patch/461687/
>>> https://patchwork.ozlabs.org/patch/461690/
>>>
>>> so this series mirrors that one and includes the Zynq patches from that
>>> series.
>>>
>>> I hope these can sneak in to this release so that I don't forget them
>>> again!
>>>
>>> I have tested this on a few ARM platforms: Zynq Zybo, Beaglebone Black,
>>> pcduino3 (sunxi), Jetson-TK1 (tegra).
>>>
>>> Changes in v2:
>>> - Put this into common/init/ and just Makefiles accordingly
>>> - Add comments as to why this is needed, deal with arch-specific memset()
>>>
>>> Simon Glass (8):
>>>   Move board_init_f_mem() into a common location
>>>   board_init_f_mem(): Don't require memset()
>>>   board_init_f_mem(): Don't create an unused early malloc() area
>>>   arm: Switch aarch64 to using generic global_data setup
>>>   arm: Switch 32-bit ARM to using generic global_data setup
>>>   microblaze: Add a TODO to call board_init_f_mem()
>>>   zynq: Move SPL console init out of board_init_f()
>>>   Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
>>>
>>>  arch/arm/lib/crt0.S                | 28 +++---------------
>>>  arch/arm/lib/crt0_64.S             | 15 ++--------
>>>  arch/arm/mach-zynq/spl.c           |  2 +-
>>>  arch/microblaze/cpu/start.S        |  2 ++
>>>  common/Makefile                    |  1 +
>>>  common/board_f.c                   | 29 ------------------
>>>  common/init/Makefile               |  7 +++++
>>>  common/init/board_init.c           | 60 ++++++++++++++++++++++++++++++++++++++
>>>  configs/zynq_microzed_defconfig    |  1 -
>>>  configs/zynq_zc702_defconfig       |  1 -
>>>  configs/zynq_zc706_defconfig       |  1 -
>>>  configs/zynq_zc70x_defconfig       |  1 -
>>>  configs/zynq_zc770_xm010_defconfig |  1 -
>>>  configs/zynq_zc770_xm011_defconfig |  1 -
>>>  configs/zynq_zc770_xm012_defconfig |  1 -
>>>  configs/zynq_zc770_xm013_defconfig |  1 -
>>>  configs/zynq_zed_defconfig         |  1 -
>>>  configs/zynq_zybo_defconfig        |  1 -
>>>  scripts/Makefile.spl               |  1 +
>>>  19 files changed, 79 insertions(+), 76 deletions(-)
>>>  create mode 100644 common/init/Makefile
>>>  create mode 100644 common/init/board_init.c
>>>
>>
>> I am getting compilation warning about USE_MEMCPY which should be
>> resolved too.
>>
>>
>> [u-boot]$ ./tools/buildman/buildman -b xnext/serial2 zynq_zc702 -sSed
>> boards.cfg is up to date. Nothing to do.
>> Summary of 9 commits for 1 boards (1 thread, 8 jobs per thread)
>> 01: Merge branch 'master' of http://git.denx.de/u-boot-sunxi
>> 02: Move board_init_f_mem() into a common location
>> 03: board_init_f_mem(): Don't require memset()
>>        arm:  +   zynq_zc702
>> + #define USE_MEMCPY
>> + ^
>> +In file included from ../include/common.h:1064:0,
>> +                 from ../common/init/board_init.c:10:
>> +../include/malloc.h:355:0: note: this is the location of the previous
>> definition
>> + #define USE_MEMCPY 1
>> w+../common/init/board_init.c:21:0: warning: "USE_MEMCPY" redefined
>> [enabled by default]
>> 04: board_init_f_mem(): Don't create an unused early malloc() area
>> 05: arm: Switch aarch64 to using generic global_data setup
>> 06: arm: Switch 32-bit ARM to using generic global_data setup
>>        arm: (for 1/1 boards)  all +28.0  spl/u-boot-spl:all +28.0
>> spl/u-boot-spl:text +28.0  text +28.0
>>             zynq_zc702     :  all +28  spl/u-boot-spl:all +28
>> spl/u-boot-spl:text +28  text +28
>> 07: microblaze: Add a TODO to call board_init_f_mem()
>> 08: zynq: Move SPL console init out of board_init_f()
>>        arm: (for 1/1 boards)  spl/u-boot-spl:all +8.0
>> spl/u-boot-spl:text +8.0
>>             zynq_zc702     :  spl/u-boot-spl:all +8  spl/u-boot-spl:text +8
>> 09: Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
>>        arm: (for 1/1 boards)  all +257.0  rodata +37.0
>> spl/u-boot-spl:all +180.0  spl/u-boot-spl:text +180.0  text +220.0
>>             zynq_zc702     :  all +257  rodata +37  spl/u-boot-spl:all
>> +180  spl/u-boot-spl:text +180  text +220
> 
> Yes, unfortunately I found that later and also I found a conflict with
> the malloc change also:
> 
> http://patchwork.ozlabs.org/patch/512147/
> 
> Once we figure out zynqmp I can resend it.

Here is the branch with ZynqMP changes for DM.

http://git.denx.de/?p=u-boot/u-boot-microblaze.git;a=shortlog;h=refs/heads/serial-dm

I have added comments to commits.
The most problematic part for ZynqMP is that you have reverted
"fdt: Fix fdtdec_get_addr_size() for 64-bit"
(sha1: 5b34436035fc862b5e8d0d2c3eab74ba36f1a7f4) which is able to handle
address-cells = 2, size-cells = 1 case which ZynqMP is using.

Anyway you should be able to run u-boot on qemu.
Here is the log I am getting.

[qemu]$ ./aarch64-softmmu/qemu-system-aarch64 -M xlnx-ep108 -display
none -kernel /mnt/disk/u-boot/u-boot.elf -m 8000000 -nographic -serial
mon:stdio
qemu-system-aarch64: WARNING: RAM size 7a120000000 above max supported,
reduced to 80000000


U-Boot 2015.10-rc2-00326-g13bbf74f7d63 (Sep 03 2015 - 13:11:47 +0200)
Xilinx ZynqMP

I2C:   ready
DRAM:  1 GiB
Enabling Caches...
EL Level:	EL1
MMC:   zynq_sdhci: 0
Using default environment

In:    serial at ff000000
Out:   serial at ff000000
Err:   serial at ff000000
Invalid Boot Mode:0x0
SCSI:  AHCI 0000.0000 1 slots 1 ports ? Gbps 0x0 impl SATA mode
flags:
scanning bus for devices...
Found 0 device(s).
Net:   Gem.ff0b0000
Warning: Gem.ff0b0000 (eth0) using random MAC address - 8e:46:f3:b5:70:eb

Hit any key to stop autoboot:  0
ZynqMP> QEMU: Terminated
[qemu]$


Please let me know if you need any input on this.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150903/520caf24/attachment.sig>

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

* [U-Boot] [PATCH v2 0/8] arm: Tidy up early init
  2015-09-03 11:13     ` Michal Simek
@ 2015-09-04 23:42       ` Simon Glass
  0 siblings, 0 replies; 16+ messages in thread
From: Simon Glass @ 2015-09-04 23:42 UTC (permalink / raw)
  To: u-boot

Hi Michal,

On 3 September 2015 at 05:13, Michal Simek <monstr@monstr.eu> wrote:
> Hi Simon,
>
> On 09/02/2015 04:48 AM, Simon Glass wrote:
>> Hi Mchal,
>>
>> On 1 September 2015 at 03:10, Michal Simek <monstr@monstr.eu> wrote:
>>> Hi Simon,
>>>
>>> On 08/28/2015 10:50 PM, Simon Glass wrote:
>>>> This series collects the previous RFT patches I sent out.
>>>>
>>>> https://patchwork.ozlabs.org/patch/508167/
>>>> https://patchwork.ozlabs.org/patch/508168/
>>>>
>>>> It turns out that I originally sent a version of these in April:
>>>>
>>>> https://patchwork.ozlabs.org/patch/461687/
>>>> https://patchwork.ozlabs.org/patch/461690/
>>>>
>>>> so this series mirrors that one and includes the Zynq patches from that
>>>> series.
>>>>
>>>> I hope these can sneak in to this release so that I don't forget them
>>>> again!
>>>>
>>>> I have tested this on a few ARM platforms: Zynq Zybo, Beaglebone Black,
>>>> pcduino3 (sunxi), Jetson-TK1 (tegra).
>>>>
>>>> Changes in v2:
>>>> - Put this into common/init/ and just Makefiles accordingly
>>>> - Add comments as to why this is needed, deal with arch-specific memset()
>>>>
>>>> Simon Glass (8):
>>>>   Move board_init_f_mem() into a common location
>>>>   board_init_f_mem(): Don't require memset()
>>>>   board_init_f_mem(): Don't create an unused early malloc() area
>>>>   arm: Switch aarch64 to using generic global_data setup
>>>>   arm: Switch 32-bit ARM to using generic global_data setup
>>>>   microblaze: Add a TODO to call board_init_f_mem()
>>>>   zynq: Move SPL console init out of board_init_f()
>>>>   Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
>>>>
>>>>  arch/arm/lib/crt0.S                | 28 +++---------------
>>>>  arch/arm/lib/crt0_64.S             | 15 ++--------
>>>>  arch/arm/mach-zynq/spl.c           |  2 +-
>>>>  arch/microblaze/cpu/start.S        |  2 ++
>>>>  common/Makefile                    |  1 +
>>>>  common/board_f.c                   | 29 ------------------
>>>>  common/init/Makefile               |  7 +++++
>>>>  common/init/board_init.c           | 60 ++++++++++++++++++++++++++++++++++++++
>>>>  configs/zynq_microzed_defconfig    |  1 -
>>>>  configs/zynq_zc702_defconfig       |  1 -
>>>>  configs/zynq_zc706_defconfig       |  1 -
>>>>  configs/zynq_zc70x_defconfig       |  1 -
>>>>  configs/zynq_zc770_xm010_defconfig |  1 -
>>>>  configs/zynq_zc770_xm011_defconfig |  1 -
>>>>  configs/zynq_zc770_xm012_defconfig |  1 -
>>>>  configs/zynq_zc770_xm013_defconfig |  1 -
>>>>  configs/zynq_zed_defconfig         |  1 -
>>>>  configs/zynq_zybo_defconfig        |  1 -
>>>>  scripts/Makefile.spl               |  1 +
>>>>  19 files changed, 79 insertions(+), 76 deletions(-)
>>>>  create mode 100644 common/init/Makefile
>>>>  create mode 100644 common/init/board_init.c
>>>>
>>>
>>> I am getting compilation warning about USE_MEMCPY which should be
>>> resolved too.
>>>
>>>
>>> [u-boot]$ ./tools/buildman/buildman -b xnext/serial2 zynq_zc702 -sSed
>>> boards.cfg is up to date. Nothing to do.
>>> Summary of 9 commits for 1 boards (1 thread, 8 jobs per thread)
>>> 01: Merge branch 'master' of http://git.denx.de/u-boot-sunxi
>>> 02: Move board_init_f_mem() into a common location
>>> 03: board_init_f_mem(): Don't require memset()
>>>        arm:  +   zynq_zc702
>>> + #define USE_MEMCPY
>>> + ^
>>> +In file included from ../include/common.h:1064:0,
>>> +                 from ../common/init/board_init.c:10:
>>> +../include/malloc.h:355:0: note: this is the location of the previous
>>> definition
>>> + #define USE_MEMCPY 1
>>> w+../common/init/board_init.c:21:0: warning: "USE_MEMCPY" redefined
>>> [enabled by default]
>>> 04: board_init_f_mem(): Don't create an unused early malloc() area
>>> 05: arm: Switch aarch64 to using generic global_data setup
>>> 06: arm: Switch 32-bit ARM to using generic global_data setup
>>>        arm: (for 1/1 boards)  all +28.0  spl/u-boot-spl:all +28.0
>>> spl/u-boot-spl:text +28.0  text +28.0
>>>             zynq_zc702     :  all +28  spl/u-boot-spl:all +28
>>> spl/u-boot-spl:text +28  text +28
>>> 07: microblaze: Add a TODO to call board_init_f_mem()
>>> 08: zynq: Move SPL console init out of board_init_f()
>>>        arm: (for 1/1 boards)  spl/u-boot-spl:all +8.0
>>> spl/u-boot-spl:text +8.0
>>>             zynq_zc702     :  spl/u-boot-spl:all +8  spl/u-boot-spl:text +8
>>> 09: Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
>>>        arm: (for 1/1 boards)  all +257.0  rodata +37.0
>>> spl/u-boot-spl:all +180.0  spl/u-boot-spl:text +180.0  text +220.0
>>>             zynq_zc702     :  all +257  rodata +37  spl/u-boot-spl:all
>>> +180  spl/u-boot-spl:text +180  text +220
>>
>> Yes, unfortunately I found that later and also I found a conflict with
>> the malloc change also:
>>
>> http://patchwork.ozlabs.org/patch/512147/
>>
>> Once we figure out zynqmp I can resend it.
>
> Here is the branch with ZynqMP changes for DM.
>
> http://git.denx.de/?p=u-boot/u-boot-microblaze.git;a=shortlog;h=refs/heads/serial-dm
>
> I have added comments to commits.
> The most problematic part for ZynqMP is that you have reverted
> "fdt: Fix fdtdec_get_addr_size() for 64-bit"
> (sha1: 5b34436035fc862b5e8d0d2c3eab74ba36f1a7f4) which is able to handle
> address-cells = 2, size-cells = 1 case which ZynqMP is using.
>
> Anyway you should be able to run u-boot on qemu.
> Here is the log I am getting.
>
> [qemu]$ ./aarch64-softmmu/qemu-system-aarch64 -M xlnx-ep108 -display
> none -kernel /mnt/disk/u-boot/u-boot.elf -m 8000000 -nographic -serial
> mon:stdio
> qemu-system-aarch64: WARNING: RAM size 7a120000000 above max supported,
> reduced to 80000000
>
>
> U-Boot 2015.10-rc2-00326-g13bbf74f7d63 (Sep 03 2015 - 13:11:47 +0200)
> Xilinx ZynqMP
>
> I2C:   ready
> DRAM:  1 GiB
> Enabling Caches...
> EL Level:       EL1
> MMC:   zynq_sdhci: 0
> Using default environment
>
> In:    serial at ff000000
> Out:   serial at ff000000
> Err:   serial at ff000000
> Invalid Boot Mode:0x0
> SCSI:  AHCI 0000.0000 1 slots 1 ports ? Gbps 0x0 impl SATA mode
> flags:
> scanning bus for devices...
> Found 0 device(s).
> Net:   Gem.ff0b0000
> Warning: Gem.ff0b0000 (eth0) using random MAC address - 8e:46:f3:b5:70:eb
>
> Hit any key to stop autoboot:  0
> ZynqMP> QEMU: Terminated
> [qemu]$
>
>
> Please let me know if you need any input on this.

I followed up on the other thread.

But for the memalign issue I've come up with two new patches:

http://patchwork.ozlabs.org/patch/513690/
http://patchwork.ozlabs.org/patch/513779/

Regards,
Simon

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

end of thread, other threads:[~2015-09-04 23:42 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-28 20:50 [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Simon Glass
2015-08-28 20:50 ` [U-Boot] [PATCH v2 1/8] Move board_init_f_mem() into a common location Simon Glass
2015-08-28 20:50 ` [U-Boot] [PATCH v2 2/8] board_init_f_mem(): Don't require memset() Simon Glass
2015-08-28 20:50 ` [U-Boot] [PATCH v2 3/8] board_init_f_mem(): Don't create an unused early malloc() area Simon Glass
2015-08-28 20:50 ` [U-Boot] [PATCH v2 4/8] arm: Switch aarch64 to using generic global_data setup Simon Glass
2015-08-28 20:50 ` [U-Boot] [PATCH v2 5/8] arm: Switch 32-bit ARM " Simon Glass
2015-08-28 20:50 ` [U-Boot] [PATCH v2 6/8] microblaze: Add a TODO to call board_init_f_mem() Simon Glass
2015-09-01  8:45   ` Michal Simek
2015-08-28 20:50 ` [U-Boot] [PATCH v2 7/8] zynq: Move SPL console init out of board_init_f() Simon Glass
2015-09-01  8:44   ` Michal Simek
2015-08-28 20:50 ` [U-Boot] [PATCH v2 8/8] Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot" Simon Glass
2015-09-01  8:57   ` Michal Simek
2015-09-01  9:10 ` [U-Boot] [PATCH v2 0/8] arm: Tidy up early init Michal Simek
2015-09-02  2:48   ` Simon Glass
2015-09-03 11:13     ` Michal Simek
2015-09-04 23:42       ` Simon Glass

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