All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board
@ 2014-05-03  0:28 York Sun
  2014-05-03  0:28 ` [U-Boot] [Patch v5 2/2] common/board_f: Fix size variable York Sun
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: York Sun @ 2014-05-03  0:28 UTC (permalink / raw)
  To: u-boot

Some platforms (tested on mpc85xx, mpc86xx) use global data before calling
function baord_inti_f(). The data should not be cleared later. Any arch
which uses global data in generic board board_init_f() should define
CONFIG_SYS_GENERIC_GLOBAL_DATA.

Signed-off-by: York Sun <yorksun@freescale.com>
CC: Scott Wood <scottwood@freescale.com>
CC: Simon Glass <sjg@chromium.org>
CC: Albert ARIBAUD <albert.u.boot@aribaud.net>
---
Change log

 v5: Add sandbox to the list
 v4: Replace with CONFIG_SYS_GENERIC_GLOBAL_DATA, a positive logic
 v3: Introduce CONFIG_SYS_EARLY_GD instead of using a list
 v2: Instead of adding back gd init for all PPC, preserve gd for mpc85xx and mpc86xx.

 README                            |    6 ++++++
 arch/arc/include/asm/config.h     |    2 ++
 arch/arm/include/asm/config.h     |    2 ++
 arch/mips/include/asm/config.h    |    2 ++
 arch/sandbox/include/asm/config.h |    1 +
 common/board_f.c                  |   12 +++++++-----
 6 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/README b/README
index 12758dc..c66f988 100644
--- a/README
+++ b/README
@@ -440,6 +440,12 @@ The following options need to be configured:
 		supported, core will start to execute uboot when wakes up.
 
 - Generic CPU options:
+		CONFIG_SYS_GENERIC_GLOBAL_DATA
+		Defines global data is initialized in generic board board_init_f().
+		If this macro is defined, global data is created and cleared in
+		generic board board_init_f(). Without this macro, architecture/board
+		should initialize global data before calling board_init_f().
+
 		CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
 
 		Defines the endianess of the CPU. Implementation of those
diff --git a/arch/arc/include/asm/config.h b/arch/arc/include/asm/config.h
index 5761def..3d331cc 100644
--- a/arch/arc/include/asm/config.h
+++ b/arch/arc/include/asm/config.h
@@ -7,6 +7,8 @@
 #ifndef __ASM_ARC_CONFIG_H_
 #define __ASM_ARC_CONFIG_H_
 
+#define CONFIG_SYS_GENERIC_GLOBAL_DATA
+
 #define CONFIG_LMB
 
 #endif /*__ASM_ARC_CONFIG_H_ */
diff --git a/arch/arm/include/asm/config.h b/arch/arm/include/asm/config.h
index abf79e5..2a20a77 100644
--- a/arch/arm/include/asm/config.h
+++ b/arch/arm/include/asm/config.h
@@ -7,6 +7,8 @@
 #ifndef _ASM_CONFIG_H_
 #define _ASM_CONFIG_H_
 
+#define CONFIG_SYS_GENERIC_GLOBAL_DATA
+
 #define CONFIG_LMB
 #define CONFIG_SYS_BOOT_RAMDISK_HIGH
 
diff --git a/arch/mips/include/asm/config.h b/arch/mips/include/asm/config.h
index 3a891ba..1c8a42b 100644
--- a/arch/mips/include/asm/config.h
+++ b/arch/mips/include/asm/config.h
@@ -7,6 +7,8 @@
 #ifndef _ASM_CONFIG_H_
 #define _ASM_CONFIG_H_
 
+#define CONFIG_SYS_GENERIC_GLOBAL_DATA
+
 #define CONFIG_LMB
 #define CONFIG_SYS_BOOT_RAMDISK_HIGH
 
diff --git a/arch/sandbox/include/asm/config.h b/arch/sandbox/include/asm/config.h
index ec7729e..6c1bff9 100644
--- a/arch/sandbox/include/asm/config.h
+++ b/arch/sandbox/include/asm/config.h
@@ -7,6 +7,7 @@
 #ifndef _ASM_CONFIG_H_
 #define _ASM_CONFIG_H_
 
+#define CONFIG_SYS_GENERIC_GLOBAL_DATA
 #define CONFIG_SANDBOX_ARCH
 
 /* Used by drivers/spi/sandbox_spi.c and arch/sandbox/include/asm/state.h */
diff --git a/common/board_f.c b/common/board_f.c
index cbdf06f..7601a98 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -970,20 +970,22 @@ static init_fnc_t init_sequence_f[] = {
 
 void board_init_f(ulong boot_flags)
 {
-#ifndef CONFIG_X86
+#ifdef CONFIG_SYS_GENERIC_GLOBAL_DATA
+	/*
+	 * For some archtectures, global data is initialized and used before
+	 * calling this function. The data should be preserved. For others,
+	 * CONFIG_SYS_GENERIC_GLOBAL_DATA should be defined and use the stack
+	 * here to host global data until relocation.
+	 */
 	gd_t data;
 
 	gd = &data;
-#endif
 
 	/*
 	 * Clear global data before it is accessed at debug print
 	 * in initcall_run_list. Otherwise the debug print probably
 	 * get the wrong vaule of gd->have_console.
 	 */
-#if !defined(CONFIG_CPM2) && !defined(CONFIG_MPC512X) && \
-		!defined(CONFIG_MPC83xx) && !defined(CONFIG_MPC85xx) && \
-		!defined(CONFIG_MPC86xx) && !defined(CONFIG_X86)
 	zero_global_data();
 #endif
 
-- 
1.7.9.5

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

* [U-Boot] [Patch v5 2/2] common/board_f: Fix size variable
  2014-05-03  0:28 [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board York Sun
@ 2014-05-03  0:28 ` York Sun
  2014-05-05 16:56   ` Simon Glass
  2014-05-13  1:54   ` [U-Boot] [U-Boot,v5,2/2] " Tom Rini
  2014-05-05 16:56 ` [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board Simon Glass
  2014-05-13  1:53 ` [U-Boot] [U-Boot, v5, " Tom Rini
  2 siblings, 2 replies; 6+ messages in thread
From: York Sun @ 2014-05-03  0:28 UTC (permalink / raw)
  To: u-boot

DRAM size should use 64-bit variable when the size could be more than 4GB.
Caught and verified on P4080DS with 4GB DDR.

Signed-off-by: York Sun <yorksun@freescale.com>
---
Change log
 v5: no change since v1

 common/board_f.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/board_f.c b/common/board_f.c
index 7601a98..c268cf9 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -194,7 +194,7 @@ static int init_func_ram(void)
 
 static int show_dram_config(void)
 {
-	ulong size;
+	unsigned long long size;
 
 #ifdef CONFIG_NR_DRAM_BANKS
 	int i;
-- 
1.7.9.5

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

* [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board
  2014-05-03  0:28 [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board York Sun
  2014-05-03  0:28 ` [U-Boot] [Patch v5 2/2] common/board_f: Fix size variable York Sun
@ 2014-05-05 16:56 ` Simon Glass
  2014-05-13  1:53 ` [U-Boot] [U-Boot, v5, " Tom Rini
  2 siblings, 0 replies; 6+ messages in thread
From: Simon Glass @ 2014-05-05 16:56 UTC (permalink / raw)
  To: u-boot

On 2 May 2014 18:28, York Sun <yorksun@freescale.com> wrote:
> Some platforms (tested on mpc85xx, mpc86xx) use global data before calling
> function baord_inti_f(). The data should not be cleared later. Any arch

nit: board_init_f

> which uses global data in generic board board_init_f() should define
> CONFIG_SYS_GENERIC_GLOBAL_DATA.
>
> Signed-off-by: York Sun <yorksun@freescale.com>
> CC: Scott Wood <scottwood@freescale.com>
> CC: Simon Glass <sjg@chromium.org>
> CC: Albert ARIBAUD <albert.u.boot@aribaud.net>

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

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

* [U-Boot] [Patch v5 2/2] common/board_f: Fix size variable
  2014-05-03  0:28 ` [U-Boot] [Patch v5 2/2] common/board_f: Fix size variable York Sun
@ 2014-05-05 16:56   ` Simon Glass
  2014-05-13  1:54   ` [U-Boot] [U-Boot,v5,2/2] " Tom Rini
  1 sibling, 0 replies; 6+ messages in thread
From: Simon Glass @ 2014-05-05 16:56 UTC (permalink / raw)
  To: u-boot

On 2 May 2014 18:28, York Sun <yorksun@freescale.com> wrote:
> DRAM size should use 64-bit variable when the size could be more than 4GB.
> Caught and verified on P4080DS with 4GB DDR.
>
> Signed-off-by: York Sun <yorksun@freescale.com>

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

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

* [U-Boot] [U-Boot, v5, 1/2] common/board_f: Initialized global data for generic board
  2014-05-03  0:28 [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board York Sun
  2014-05-03  0:28 ` [U-Boot] [Patch v5 2/2] common/board_f: Fix size variable York Sun
  2014-05-05 16:56 ` [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board Simon Glass
@ 2014-05-13  1:53 ` Tom Rini
  2 siblings, 0 replies; 6+ messages in thread
From: Tom Rini @ 2014-05-13  1:53 UTC (permalink / raw)
  To: u-boot

On Fri, May 02, 2014 at 05:28:04PM -0700, York Sun wrote:

> Some platforms (tested on mpc85xx, mpc86xx) use global data before calling
> function baord_inti_f(). The data should not be cleared later. Any arch
> which uses global data in generic board board_init_f() should define
> CONFIG_SYS_GENERIC_GLOBAL_DATA.
> 
> Signed-off-by: York Sun <yorksun@freescale.com>
> CC: Scott Wood <scottwood@freescale.com>
> CC: Simon Glass <sjg@chromium.org>
> CC: Albert ARIBAUD <albert.u.boot@aribaud.net>
> Acked-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140512/842a7220/attachment.pgp>

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

* [U-Boot] [U-Boot,v5,2/2] common/board_f: Fix size variable
  2014-05-03  0:28 ` [U-Boot] [Patch v5 2/2] common/board_f: Fix size variable York Sun
  2014-05-05 16:56   ` Simon Glass
@ 2014-05-13  1:54   ` Tom Rini
  1 sibling, 0 replies; 6+ messages in thread
From: Tom Rini @ 2014-05-13  1:54 UTC (permalink / raw)
  To: u-boot

On Fri, May 02, 2014 at 05:28:05PM -0700, York Sun wrote:

> DRAM size should use 64-bit variable when the size could be more than 4GB.
> Caught and verified on P4080DS with 4GB DDR.
> 
> Signed-off-by: York Sun <yorksun@freescale.com>
> Acked-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140512/b16528b5/attachment.pgp>

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

end of thread, other threads:[~2014-05-13  1:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-03  0:28 [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board York Sun
2014-05-03  0:28 ` [U-Boot] [Patch v5 2/2] common/board_f: Fix size variable York Sun
2014-05-05 16:56   ` Simon Glass
2014-05-13  1:54   ` [U-Boot] [U-Boot,v5,2/2] " Tom Rini
2014-05-05 16:56 ` [U-Boot] [Patch v5 1/2] common/board_f: Initialized global data for generic board Simon Glass
2014-05-13  1:53 ` [U-Boot] [U-Boot, v5, " Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.