Re: [U-Boot] [PATCH v2] global_data: unify global flag defines
Dear Mike Frysinger, In message 1331010031-11171-1-git-send-email-vap...@gentoo.org you wrote: All the global flag defines are the same across all arches. So unify them in one place, and add a simple way for arches to extend for their needs. Signed-off-by: Mike Frysinger vap...@gentoo.org --- v2 - rebase onto mainline - include openrisc arch/arm/include/asm/global_data.h| 14 +- arch/avr32/include/asm/global_data.h | 14 +- arch/blackfin/include/asm/global_data.h | 14 +- arch/m68k/include/asm/global_data.h | 14 +- arch/microblaze/include/asm/global_data.h | 14 +- arch/mips/include/asm/global_data.h | 14 +- arch/nds32/include/asm/global_data.h | 14 +- arch/nios2/include/asm/global_data.h | 10 +- arch/openrisc/include/asm/global_data.h | 22 +- arch/powerpc/include/asm/global_data.h| 14 +- arch/sandbox/include/asm/global_data.h| 14 +- arch/sh/include/asm/global_data.h |9 + arch/sparc/include/asm/global_data.h | 14 +- arch/x86/include/asm/global_data.h| 14 +- include/asm-generic/global_data_flags.h | 28 15 files changed, 42 insertions(+), 181 deletions(-) create mode 100644 include/asm-generic/global_data_flags.h This does not apply any more. Can you please rebase and resend? Thanks. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de The combination of a number of things to make existence worthwhile. Yes, the philosophy of 'none,' meaning 'all.' -- Spock and Lincoln, The Savage Curtain, stardate 5906.4 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH v2] global_data: unify global flag defines
All the global flag defines are the same across all arches. So unify them in one place, and add a simple way for arches to extend for their needs. Signed-off-by: Mike Frysinger vap...@gentoo.org --- v2 - rebase onto mainline - include openrisc arch/arm/include/asm/global_data.h| 14 +- arch/avr32/include/asm/global_data.h | 14 +- arch/blackfin/include/asm/global_data.h | 14 +- arch/m68k/include/asm/global_data.h | 14 +- arch/microblaze/include/asm/global_data.h | 14 +- arch/mips/include/asm/global_data.h | 14 +- arch/nds32/include/asm/global_data.h | 14 +- arch/nios2/include/asm/global_data.h | 10 +- arch/openrisc/include/asm/global_data.h | 22 +- arch/powerpc/include/asm/global_data.h| 14 +- arch/sandbox/include/asm/global_data.h| 14 +- arch/sh/include/asm/global_data.h |9 + arch/sparc/include/asm/global_data.h | 14 +- arch/x86/include/asm/global_data.h| 14 +- include/asm-generic/global_data_flags.h | 28 15 files changed, 42 insertions(+), 181 deletions(-) create mode 100644 include/asm-generic/global_data_flags.h diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h index c3ff789..f8088fe 100644 --- a/arch/arm/include/asm/global_data.h +++ b/arch/arm/include/asm/global_data.h @@ -29,8 +29,6 @@ * some locked parts of the data cache) to allow for a minimum set of * global variables during system initialization (until we have set * up the memory controller so that we can use RAM). - * - * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE sizeof(gd_t) */ typedefstruct global_data { @@ -86,17 +84,7 @@ typedef struct global_data { #endif } gd_t; -/* - * Global Data Flags - */ -#defineGD_FLG_RELOC0x1 /* Code was relocated to RAM */ -#defineGD_FLG_DEVINIT 0x2 /* Devices have been initialized*/ -#defineGD_FLG_SILENT 0x4 /* Silent mode */ -#defineGD_FLG_POSTFAIL 0x8 /* Critical POST test failed */ -#defineGD_FLG_POSTSTOP 0x00010 /* POST seqeunce aborted */ -#defineGD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */ -#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in out) */ -#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */ +#include asm-generic/global_data_flags.h #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm (r8) diff --git a/arch/avr32/include/asm/global_data.h b/arch/avr32/include/asm/global_data.h index 5c654bd..7878bb1 100644 --- a/arch/avr32/include/asm/global_data.h +++ b/arch/avr32/include/asm/global_data.h @@ -28,8 +28,6 @@ * some locked parts of the data cache) to allow for a minimum set of * global variables during system initialization (until we have set * up the memory controller so that we can use RAM). - * - * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE sizeof(gd_t) */ typedefstruct global_data { @@ -52,17 +50,7 @@ typedef struct global_data { charenv_buf[32];/* buffer for getenv() before reloc. */ } gd_t; -/* - * Global Data Flags - */ -#defineGD_FLG_RELOC0x1 /* Code was relocated to RAM */ -#defineGD_FLG_DEVINIT 0x2 /* Devices have been initialized*/ -#defineGD_FLG_SILENT 0x4 /* Silent mode */ -#defineGD_FLG_POSTFAIL 0x8 /* Critical POST test failed */ -#defineGD_FLG_POSTSTOP 0x00010 /* POST seqeunce aborted */ -#defineGD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */ -#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in out) */ -#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */ +#include asm-generic/global_data_flags.h #define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm(r5) diff --git a/arch/blackfin/include/asm/global_data.h b/arch/blackfin/include/asm/global_data.h index 973ea29..290a9e7 100644 --- a/arch/blackfin/include/asm/global_data.h +++ b/arch/blackfin/include/asm/global_data.h @@ -36,8 +36,6 @@ * some locked parts of the data cache) to allow for a minimum set of * global variables during system initialization (until we have set * up the memory controller so that we can use RAM). - * - * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE sizeof(gd_t) */ typedef struct global_data { bd_t *bd; @@ -61,17 +59,7 @@ typedef struct
Re: [U-Boot] [PATCH v2] global_data: unify global flag defines
On Monday 05 December 2011 00:47:12 Graeme Russ wrote: Hi Mike, On Mon, Dec 5, 2011 at 5:39 PM, Mike Frysinger vap...@gentoo.org wrote: On Sunday 04 December 2011 22:47:59 Graeme Russ wrote: On Mon, Dec 5, 2011 at 2:43 PM, Mike Frysinger wrote: +/* + * Base for arches to start adding their own: + * #define GD_FLG_FOO (GD_FLG_ARCH_BASE 0) + * #define GD_FLG_BAR (GD_FLG_ARCH_BASE 1) + * #define GD_FLG_COW (GD_FLG_ARCH_BASE 2) + */ +#define GD_FLG_ARCH_BASE 0x00100 + +#endif This doesn't leave any room for new standard flags - flags is a u32, so why not define the low 16 bits as standard and the high 16 bit as arch specific - Maybe even split the high 16 bits into low 8 bits for arch specific, high 8 bits for board specific? when we add a new common flag, we simply update GD_FLG_ARCH_BASE. i don't see the need for this complexity. So the flags can change depending on the build - What is the implication for stand-alone apps (we have gone over the impact of changing gd before without a 100% concrete conclusion) i did go through the research effort and posted all the details: http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/114029 but no one responded And you must rember to update GD_FLG_ARCH_BASE if anyone adds a new flag - Not immediately obvious (no comments to that effect) i can add a comment I don't see any complexity in: #define GD_FLG_ARCH_BASE 0x0001 #define GD_FLG_BOARD_BASE 0x0100 Gives us 16 common flags (we have only used 8 so far) 8 arch flags and 8 board flags i'm fine with simply adding defines and leaving the rest up to people. but adding any additional macro code is overkill imo. -mike signature.asc Description: This is a digitally signed message part. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v2] global_data: unify global flag defines
Hi Mike, On Dec 6, 2011 3:44 AM, Mike Frysinger vap...@gentoo.org wrote: On Monday 05 December 2011 00:47:12 Graeme Russ wrote: Hi Mike, On Mon, Dec 5, 2011 at 5:39 PM, Mike Frysinger vap...@gentoo.org wrote: On Sunday 04 December 2011 22:47:59 Graeme Russ wrote: On Mon, Dec 5, 2011 at 2:43 PM, Mike Frysinger wrote: +/* + * Base for arches to start adding their own: + * #define GD_FLG_FOO (GD_FLG_ARCH_BASE 0) + * #define GD_FLG_BAR (GD_FLG_ARCH_BASE 1) + * #define GD_FLG_COW (GD_FLG_ARCH_BASE 2) + */ +#define GD_FLG_ARCH_BASE 0x00100 + +#endif This doesn't leave any room for new standard flags - flags is a u32, so why not define the low 16 bits as standard and the high 16 bit as arch specific - Maybe even split the high 16 bits into low 8 bits for arch specific, high 8 bits for board specific? when we add a new common flag, we simply update GD_FLG_ARCH_BASE. i don't see the need for this complexity. So the flags can change depending on the build - What is the implication for stand-alone apps (we have gone over the impact of changing gd before without a 100% concrete conclusion) i did go through the research effort and posted all the details: http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/114029 but no one responded And you must rember to update GD_FLG_ARCH_BASE if anyone adds a new flag - Not immediately obvious (no comments to that effect) i can add a comment I don't see any complexity in: #define GD_FLG_ARCH_BASE 0x0001 #define GD_FLG_BOARD_BASE 0x0100 Gives us 16 common flags (we have only used 8 so far) 8 arch flags and 8 board flags i'm fine with simply adding defines and leaving the rest up to people. but adding any additional macro code is overkill imo. To be honest, I would not even bother with the macro or #define. I would just comment that the low 16 bits are reserved at let arch maintainters manage the upper 16 bits Regards, Graeme ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH v2] global_data: unify global flag defines
All the global flag defines are the same across all arches. So unify them in one place, and add a simple way for arches to extend for their needs. Signed-off-by: Mike Frysinger vap...@gentoo.org --- v2 - rebased onto head after x86 patch has been merged arch/arm/include/asm/global_data.h| 14 +--- arch/avr32/include/asm/global_data.h | 14 +--- arch/blackfin/include/asm/global_data.h | 14 +--- arch/m68k/include/asm/global_data.h | 14 +--- arch/microblaze/include/asm/global_data.h | 14 +--- arch/mips/include/asm/global_data.h | 14 +--- arch/nds32/include/asm/global_data.h | 14 +--- arch/nios2/include/asm/global_data.h | 10 + arch/powerpc/include/asm/global_data.h| 14 +--- arch/sandbox/include/asm/global_data.h| 14 +--- arch/sh/include/asm/global_data.h |9 +--- arch/sparc/include/asm/global_data.h | 14 +--- arch/x86/include/asm/global_data.h| 14 include/asm-generic/global_data_flags.h | 33 + 14 files changed, 45 insertions(+), 161 deletions(-) create mode 100644 include/asm-generic/global_data_flags.h diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h index c3ff789..f8088fe 100644 --- a/arch/arm/include/asm/global_data.h +++ b/arch/arm/include/asm/global_data.h @@ -29,8 +29,6 @@ * some locked parts of the data cache) to allow for a minimum set of * global variables during system initialization (until we have set * up the memory controller so that we can use RAM). - * - * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE sizeof(gd_t) */ typedefstruct global_data { @@ -86,17 +84,7 @@ typedef struct global_data { #endif } gd_t; -/* - * Global Data Flags - */ -#defineGD_FLG_RELOC0x1 /* Code was relocated to RAM */ -#defineGD_FLG_DEVINIT 0x2 /* Devices have been initialized*/ -#defineGD_FLG_SILENT 0x4 /* Silent mode */ -#defineGD_FLG_POSTFAIL 0x8 /* Critical POST test failed */ -#defineGD_FLG_POSTSTOP 0x00010 /* POST seqeunce aborted */ -#defineGD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */ -#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in out) */ -#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */ +#include asm-generic/global_data_flags.h #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm (r8) diff --git a/arch/avr32/include/asm/global_data.h b/arch/avr32/include/asm/global_data.h index 5c654bd..7878bb1 100644 --- a/arch/avr32/include/asm/global_data.h +++ b/arch/avr32/include/asm/global_data.h @@ -28,8 +28,6 @@ * some locked parts of the data cache) to allow for a minimum set of * global variables during system initialization (until we have set * up the memory controller so that we can use RAM). - * - * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE sizeof(gd_t) */ typedefstruct global_data { @@ -52,17 +50,7 @@ typedef struct global_data { charenv_buf[32];/* buffer for getenv() before reloc. */ } gd_t; -/* - * Global Data Flags - */ -#defineGD_FLG_RELOC0x1 /* Code was relocated to RAM */ -#defineGD_FLG_DEVINIT 0x2 /* Devices have been initialized*/ -#defineGD_FLG_SILENT 0x4 /* Silent mode */ -#defineGD_FLG_POSTFAIL 0x8 /* Critical POST test failed */ -#defineGD_FLG_POSTSTOP 0x00010 /* POST seqeunce aborted */ -#defineGD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */ -#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in out) */ -#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */ +#include asm-generic/global_data_flags.h #define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm(r5) diff --git a/arch/blackfin/include/asm/global_data.h b/arch/blackfin/include/asm/global_data.h index 67aa30f..ad42e91 100644 --- a/arch/blackfin/include/asm/global_data.h +++ b/arch/blackfin/include/asm/global_data.h @@ -36,8 +36,6 @@ * some locked parts of the data cache) to allow for a minimum set of * global variables during system initialization (until we have set * up the memory controller so that we can use RAM). - * - * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE sizeof(gd_t) */ typedef struct global_data { bd_t *bd; @@ -61,17 +59,7 @@ typedef struct global_data { charenv_buf[32];/* buffer for getenv() before reloc. */ } gd_t;
Re: [U-Boot] [PATCH v2] global_data: unify global flag defines
Hi Mike, On Mon, Dec 5, 2011 at 2:43 PM, Mike Frysinger vap...@gentoo.org wrote: All the global flag defines are the same across all arches. So unify them in one place, and add a simple way for arches to extend for their needs. Signed-off-by: Mike Frysinger vap...@gentoo.org --- v2 - rebased onto head after x86 patch has been merged arch/arm/include/asm/global_data.h | 14 +--- arch/avr32/include/asm/global_data.h | 14 +--- arch/blackfin/include/asm/global_data.h | 14 +--- arch/m68k/include/asm/global_data.h | 14 +--- arch/microblaze/include/asm/global_data.h | 14 +--- arch/mips/include/asm/global_data.h | 14 +--- arch/nds32/include/asm/global_data.h | 14 +--- arch/nios2/include/asm/global_data.h | 10 + arch/powerpc/include/asm/global_data.h | 14 +--- arch/sandbox/include/asm/global_data.h | 14 +--- arch/sh/include/asm/global_data.h | 9 +--- arch/sparc/include/asm/global_data.h | 14 +--- arch/x86/include/asm/global_data.h | 14 include/asm-generic/global_data_flags.h | 33 + 14 files changed, 45 insertions(+), 161 deletions(-) create mode 100644 include/asm-generic/global_data_flags.h [snip] diff --git a/include/asm-generic/global_data_flags.h b/include/asm-generic/global_data_flags.h new file mode 100644 index 000..7003221 --- /dev/null +++ b/include/asm-generic/global_data_flags.h @@ -0,0 +1,33 @@ +/* + * transitional header until we merge global_data.h + * + * (C) Copyright 2000-2010 + * Wolfgang Denk, DENX Software Engineering, w...@denx.de. + * + * Licensed under the GPL-2 or later. + */ + +#ifndef __ASM_GENERIC_GLOBAL_DATA_FLAGS_H +#define __ASM_GENERIC_GLOBAL_DATA_FLAGS_H + +/* + * Global Data Flags + */ +#define GD_FLG_RELOC 0x1 /* Code was relocated to RAM */ +#define GD_FLG_DEVINIT 0x2 /* Devices have been initialized */ +#define GD_FLG_SILENT 0x4 /* Silent mode */ +#define GD_FLG_POSTFAIL 0x8 /* Critical POST test failed */ +#define GD_FLG_POSTSTOP 0x00010 /* POST seqeunce aborted */ +#define GD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */ +#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in out) */ +#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */ + +/* + * Base for arches to start adding their own: + * #define GD_FLG_FOO (GD_FLG_ARCH_BASE 0) + * #define GD_FLG_BAR (GD_FLG_ARCH_BASE 1) + * #define GD_FLG_COW (GD_FLG_ARCH_BASE 2) + */ +#define GD_FLG_ARCH_BASE 0x00100 + +#endif This doesn't leave any room for new standard flags - flags is a u32, so why not define the low 16 bits as standard and the high 16 bit as arch specific - Maybe even split the high 16 bits into low 8 bits for arch specific, high 8 bits for board specific? Would make mask / shift / test a lot cleaner Regards, Graeme ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v2] global_data: unify global flag defines
Hi Mike, On Mon, Dec 5, 2011 at 5:39 PM, Mike Frysinger vap...@gentoo.org wrote: On Sunday 04 December 2011 22:47:59 Graeme Russ wrote: On Mon, Dec 5, 2011 at 2:43 PM, Mike Frysinger wrote: +/* + * Base for arches to start adding their own: + * #define GD_FLG_FOO (GD_FLG_ARCH_BASE 0) + * #define GD_FLG_BAR (GD_FLG_ARCH_BASE 1) + * #define GD_FLG_COW (GD_FLG_ARCH_BASE 2) + */ +#define GD_FLG_ARCH_BASE 0x00100 + +#endif This doesn't leave any room for new standard flags - flags is a u32, so why not define the low 16 bits as standard and the high 16 bit as arch specific - Maybe even split the high 16 bits into low 8 bits for arch specific, high 8 bits for board specific? when we add a new common flag, we simply update GD_FLG_ARCH_BASE. i don't see the need for this complexity. So the flags can change depending on the build - What is the implication for stand-alone apps (we have gone over the impact of changing gd before without a 100% concrete conclusion) And you must rember to update GD_FLG_ARCH_BASE if anyone adds a new flag - Not immediately obvious (no comments to that effect) I don't see any complexity in: #define GD_FLG_ARCH_BASE 0x0001 #define GD_FLG_BOARD_BASE 0x0100 Gives us 16 common flags (we have only used 8 so far) 8 arch flags and 8 board flags Regards, Graeme ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot