[U-Boot] [PATCH/RFC] global_data: unify global flag defines

All the global flag defines are the same across all arches (ignoring two unique x86 ones). So unify them in one place, and add a simple way for arches to extend for their needs.
Signed-off-by: Mike Frysinger vapier@gentoo.org --- note: this depends on Graeme's x86 boot flag clean up
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 | 16 +------------- include/asm-generic/global_data_flags.h | 33 +++++++++++++++++++++++++++++ 14 files changed, 46 insertions(+), 162 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) */
typedef struct global_data { @@ -86,17 +84,7 @@ typedef struct global_data { #endif } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#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) */
typedef struct global_data { @@ -52,17 +50,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#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 { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t * volatile gd asm ("P3")
diff --git a/arch/m68k/include/asm/global_data.h b/arch/m68k/include/asm/global_data.h index 0ba2b43..cd55b83 100644 --- a/arch/m68k/include/asm/global_data.h +++ b/arch/m68k/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) */
typedef struct global_data { @@ -70,17 +68,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#if 0 extern gd_t *global_data; diff --git a/arch/microblaze/include/asm/global_data.h b/arch/microblaze/include/asm/global_data.h index 6e8537c..0dc4ce9 100644 --- a/arch/microblaze/include/asm/global_data.h +++ b/arch/microblaze/include/asm/global_data.h @@ -30,8 +30,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 { @@ -49,17 +47,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r31")
diff --git a/arch/mips/include/asm/global_data.h b/arch/mips/include/asm/global_data.h index f6cf9fe..6e2cdc7 100644 --- a/arch/mips/include/asm/global_data.h +++ b/arch/mips/include/asm/global_data.h @@ -32,8 +32,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 { @@ -63,17 +61,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("k0")
diff --git a/arch/nds32/include/asm/global_data.h b/arch/nds32/include/asm/global_data.h index de20a0a..94bd4c2 100644 --- a/arch/nds32/include/asm/global_data.h +++ b/arch/nds32/include/asm/global_data.h @@ -39,8 +39,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 CONFIG_GBL_DATA_SIZE > sizeof(gd_t) */
typedef struct global_data { @@ -67,17 +65,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 /* Envs imported into hash table */ +#include <asm-generic/global_data_flags.h>
#ifdef CONFIG_GLOBAL_DATA_NOT_REG10 extern volatile gd_t g_gd; diff --git a/arch/nios2/include/asm/global_data.h b/arch/nios2/include/asm/global_data.h index 4b86fbd..3b0d9e6 100644 --- a/arch/nios2/include/asm/global_data.h +++ b/arch/nios2/include/asm/global_data.h @@ -44,15 +44,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* flags */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("gp")
diff --git a/arch/powerpc/include/asm/global_data.h b/arch/powerpc/include/asm/global_data.h index 01f1d4a..5a5877f 100644 --- a/arch/powerpc/include/asm/global_data.h +++ b/arch/powerpc/include/asm/global_data.h @@ -33,8 +33,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 { @@ -186,17 +184,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#if 1 #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r2") diff --git a/arch/sandbox/include/asm/global_data.h b/arch/sandbox/include/asm/global_data.h index 8d47191..64d6ddc 100644 --- a/arch/sandbox/include/asm/global_data.h +++ b/arch/sandbox/include/asm/global_data.h @@ -31,8 +31,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 { @@ -49,17 +47,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 /* Env. imported into hash table */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR extern gd_t *gd
diff --git a/arch/sh/include/asm/global_data.h b/arch/sh/include/asm/global_data.h index 1b782fc..6e534ad 100644 --- a/arch/sh/include/asm/global_data.h +++ b/arch/sh/include/asm/global_data.h @@ -44,14 +44,7 @@ typedef struct global_data char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("r13")
diff --git a/arch/sparc/include/asm/global_data.h b/arch/sparc/include/asm/global_data.h index 613e2d8..93d3cc0 100644 --- a/arch/sparc/include/asm/global_data.h +++ b/arch/sparc/include/asm/global_data.h @@ -35,8 +35,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 { @@ -78,17 +76,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("%g7")
diff --git a/arch/x86/include/asm/global_data.h b/arch/x86/include/asm/global_data.h index f177a4f..2b8a2ed 100644 --- a/arch/x86/include/asm/global_data.h +++ b/arch/x86/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) */
#ifndef __ASSEMBLY__ @@ -80,19 +78,7 @@ extern gd_t *gd;
#define GD_SIZE 15
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ -#define GD_FLG_COLD_BOOT 0x00100 /* Cold Boot */ -#define GD_FLG_WARM_BOOT 0x00200 /* Warm Boot */ +#include <asm-generic/global_data_flags.h>
#if 0 #define DECLARE_GLOBAL_DATA_PTR diff --git a/include/asm-generic/global_data_flags.h b/include/asm-generic/global_data_flags.h new file mode 100644 index 0000000..ee4ddb7 --- /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, wd@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 0x00001 /* Code was relocated to RAM */ +#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ +#define GD_FLG_SILENT 0x00004 /* Silent mode */ +#define GD_FLG_POSTFAIL 0x00008 /* 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

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 vapier@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) */
typedef struct global_data { @@ -86,17 +84,7 @@ typedef struct global_data { #endif } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#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) */
typedef struct global_data { @@ -52,17 +50,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#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 { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t * volatile gd asm ("P3")
diff --git a/arch/m68k/include/asm/global_data.h b/arch/m68k/include/asm/global_data.h index 0ba2b43..cd55b83 100644 --- a/arch/m68k/include/asm/global_data.h +++ b/arch/m68k/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) */
typedef struct global_data { @@ -70,17 +68,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#if 0 extern gd_t *global_data; diff --git a/arch/microblaze/include/asm/global_data.h b/arch/microblaze/include/asm/global_data.h index 6e8537c..0dc4ce9 100644 --- a/arch/microblaze/include/asm/global_data.h +++ b/arch/microblaze/include/asm/global_data.h @@ -30,8 +30,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 { @@ -49,17 +47,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r31")
diff --git a/arch/mips/include/asm/global_data.h b/arch/mips/include/asm/global_data.h index f6cf9fe..6e2cdc7 100644 --- a/arch/mips/include/asm/global_data.h +++ b/arch/mips/include/asm/global_data.h @@ -32,8 +32,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 { @@ -63,17 +61,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("k0")
diff --git a/arch/nds32/include/asm/global_data.h b/arch/nds32/include/asm/global_data.h index de20a0a..94bd4c2 100644 --- a/arch/nds32/include/asm/global_data.h +++ b/arch/nds32/include/asm/global_data.h @@ -39,8 +39,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 CONFIG_GBL_DATA_SIZE > sizeof(gd_t) */
typedef struct global_data { @@ -67,17 +65,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 /* Envs imported into hash table */ +#include <asm-generic/global_data_flags.h>
#ifdef CONFIG_GLOBAL_DATA_NOT_REG10 extern volatile gd_t g_gd; diff --git a/arch/nios2/include/asm/global_data.h b/arch/nios2/include/asm/global_data.h index 4b86fbd..3b0d9e6 100644 --- a/arch/nios2/include/asm/global_data.h +++ b/arch/nios2/include/asm/global_data.h @@ -44,15 +44,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* flags */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("gp")
diff --git a/arch/powerpc/include/asm/global_data.h b/arch/powerpc/include/asm/global_data.h index 01f1d4a..5a5877f 100644 --- a/arch/powerpc/include/asm/global_data.h +++ b/arch/powerpc/include/asm/global_data.h @@ -33,8 +33,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 { @@ -186,17 +184,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#if 1 #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r2") diff --git a/arch/sandbox/include/asm/global_data.h b/arch/sandbox/include/asm/global_data.h index 8d47191..64d6ddc 100644 --- a/arch/sandbox/include/asm/global_data.h +++ b/arch/sandbox/include/asm/global_data.h @@ -31,8 +31,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 { @@ -49,17 +47,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 /* Env. imported into hash table */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR extern gd_t *gd
diff --git a/arch/sh/include/asm/global_data.h b/arch/sh/include/asm/global_data.h index 1b782fc..6e534ad 100644 --- a/arch/sh/include/asm/global_data.h +++ b/arch/sh/include/asm/global_data.h @@ -44,14 +44,7 @@ typedef struct global_data char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("r13")
diff --git a/arch/sparc/include/asm/global_data.h b/arch/sparc/include/asm/global_data.h index 613e2d8..93d3cc0 100644 --- a/arch/sparc/include/asm/global_data.h +++ b/arch/sparc/include/asm/global_data.h @@ -35,8 +35,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 { @@ -78,17 +76,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("%g7")
diff --git a/arch/x86/include/asm/global_data.h b/arch/x86/include/asm/global_data.h index 05a2139..6a61297 100644 --- a/arch/x86/include/asm/global_data.h +++ b/arch/x86/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) */
#ifndef __ASSEMBLY__ @@ -61,18 +59,6 @@ extern gd_t *gd;
#endif
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ - #if 0 #define DECLARE_GLOBAL_DATA_PTR #else diff --git a/include/asm-generic/global_data_flags.h b/include/asm-generic/global_data_flags.h new file mode 100644 index 0000000..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, wd@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 0x00001 /* Code was relocated to RAM */ +#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ +#define GD_FLG_SILENT 0x00004 /* Silent mode */ +#define GD_FLG_POSTFAIL 0x00008 /* 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

Hi Mike,
On Mon, Dec 5, 2011 at 2:43 PM, Mike Frysinger vapier@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 vapier@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 0000000..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, wd@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 0x00001 /* Code was relocated to RAM */ +#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ +#define GD_FLG_SILENT 0x00004 /* Silent mode */ +#define GD_FLG_POSTFAIL 0x00008 /* 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

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. -mike

Hi Mike,
On Mon, Dec 5, 2011 at 5:39 PM, Mike Frysinger vapier@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 0x00010000 #define GD_FLG_BOARD_BASE 0x01000000
Gives us 16 common flags (we have only used 8 so far) 8 arch flags and 8 board flags
Regards,
Graeme

On Monday 05 December 2011 00:47:12 Graeme Russ wrote:
Hi Mike,
On Mon, Dec 5, 2011 at 5:39 PM, Mike Frysinger vapier@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 0x00010000 #define GD_FLG_BOARD_BASE 0x01000000
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

Hi Mike,
On Dec 6, 2011 3:44 AM, "Mike Frysinger" vapier@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 vapier@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 0x00010000 #define GD_FLG_BOARD_BASE 0x01000000
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

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 vapier@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) */
typedef struct global_data { @@ -86,17 +84,7 @@ typedef struct global_data { #endif } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#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) */
typedef struct global_data { @@ -52,17 +50,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#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 global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("P3")
diff --git a/arch/m68k/include/asm/global_data.h b/arch/m68k/include/asm/global_data.h index 0ba2b43..cd55b83 100644 --- a/arch/m68k/include/asm/global_data.h +++ b/arch/m68k/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) */
typedef struct global_data { @@ -70,17 +68,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#if 0 extern gd_t *global_data; diff --git a/arch/microblaze/include/asm/global_data.h b/arch/microblaze/include/asm/global_data.h index 6e8537c..0dc4ce9 100644 --- a/arch/microblaze/include/asm/global_data.h +++ b/arch/microblaze/include/asm/global_data.h @@ -30,8 +30,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 { @@ -49,17 +47,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r31")
diff --git a/arch/mips/include/asm/global_data.h b/arch/mips/include/asm/global_data.h index f6cf9fe..6e2cdc7 100644 --- a/arch/mips/include/asm/global_data.h +++ b/arch/mips/include/asm/global_data.h @@ -32,8 +32,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 { @@ -63,17 +61,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("k0")
diff --git a/arch/nds32/include/asm/global_data.h b/arch/nds32/include/asm/global_data.h index de20a0a..94bd4c2 100644 --- a/arch/nds32/include/asm/global_data.h +++ b/arch/nds32/include/asm/global_data.h @@ -39,8 +39,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 CONFIG_GBL_DATA_SIZE > sizeof(gd_t) */
typedef struct global_data { @@ -67,17 +65,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 /* Envs imported into hash table */ +#include <asm-generic/global_data_flags.h>
#ifdef CONFIG_GLOBAL_DATA_NOT_REG10 extern volatile gd_t g_gd; diff --git a/arch/nios2/include/asm/global_data.h b/arch/nios2/include/asm/global_data.h index 4b86fbd..3b0d9e6 100644 --- a/arch/nios2/include/asm/global_data.h +++ b/arch/nios2/include/asm/global_data.h @@ -44,15 +44,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* flags */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("gp")
diff --git a/arch/openrisc/include/asm/global_data.h b/arch/openrisc/include/asm/global_data.h index 36de9d0..6a0c0cc 100644 --- a/arch/openrisc/include/asm/global_data.h +++ b/arch/openrisc/include/asm/global_data.h @@ -30,8 +30,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 { @@ -48,25 +46,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -/* Code was relocated to RAM */ -#define GD_FLG_RELOC 0x00001 -/* Devices have been initialized */ -#define GD_FLG_DEVINIT 0x00002 -/* Silent mode */ -#define GD_FLG_SILENT 0x00004 -/* Critical POST test failed */ -#define GD_FLG_POSTFAIL 0x00008 -/* POST seqeunce aborted */ -#define GD_FLG_POSTSTOP 0x00010 -/* Log Buffer has been initialized */ -#define GD_FLG_LOGINIT 0x00020 -/* Disable console (in & out) */ -#define GD_FLG_DISABLE_CONSOLE 0x00040 -/* Environment imported into hash table */ -#define GD_FLG_ENV_READY 0x00080 +#include <asm-generic/global_data_flags.h>
/* OR32 GCC already has r10 set as fixed-use */ #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r10") diff --git a/arch/powerpc/include/asm/global_data.h b/arch/powerpc/include/asm/global_data.h index 01f1d4a..5a5877f 100644 --- a/arch/powerpc/include/asm/global_data.h +++ b/arch/powerpc/include/asm/global_data.h @@ -33,8 +33,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 { @@ -186,17 +184,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#if 1 #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r2") diff --git a/arch/sandbox/include/asm/global_data.h b/arch/sandbox/include/asm/global_data.h index 8d47191..64d6ddc 100644 --- a/arch/sandbox/include/asm/global_data.h +++ b/arch/sandbox/include/asm/global_data.h @@ -31,8 +31,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 { @@ -49,17 +47,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 /* Env. imported into hash table */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR extern gd_t *gd
diff --git a/arch/sh/include/asm/global_data.h b/arch/sh/include/asm/global_data.h index 1b782fc..6e534ad 100644 --- a/arch/sh/include/asm/global_data.h +++ b/arch/sh/include/asm/global_data.h @@ -44,14 +44,7 @@ typedef struct global_data char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("r13")
diff --git a/arch/sparc/include/asm/global_data.h b/arch/sparc/include/asm/global_data.h index 613e2d8..93d3cc0 100644 --- a/arch/sparc/include/asm/global_data.h +++ b/arch/sparc/include/asm/global_data.h @@ -35,8 +35,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 { @@ -78,17 +76,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("%g7")
diff --git a/arch/x86/include/asm/global_data.h b/arch/x86/include/asm/global_data.h index 908a02c..6d29c0b 100644 --- a/arch/x86/include/asm/global_data.h +++ b/arch/x86/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) */
#ifndef __ASSEMBLY__ @@ -74,17 +72,7 @@ static inline gd_t *get_fs_gd_ptr(void)
#endif
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR
diff --git a/include/asm-generic/global_data_flags.h b/include/asm-generic/global_data_flags.h new file mode 100644 index 0000000..bb57fb6 --- /dev/null +++ b/include/asm-generic/global_data_flags.h @@ -0,0 +1,28 @@ +/* + * transitional header until we merge global_data.h + * + * (C) Copyright 2000-2010 + * Wolfgang Denk, DENX Software Engineering, wd@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 + * + * Note: The low 16 bits are expected for common code. If your arch + * really needs to add your own, use the high 16bits. + */ +#define GD_FLG_RELOC 0x0001 /* Code was relocated to RAM */ +#define GD_FLG_DEVINIT 0x0002 /* Devices have been initialized */ +#define GD_FLG_SILENT 0x0004 /* Silent mode */ +#define GD_FLG_POSTFAIL 0x0008 /* Critical POST test failed */ +#define GD_FLG_POSTSTOP 0x0010 /* POST seqeunce aborted */ +#define GD_FLG_LOGINIT 0x0020 /* Log Buffer has been initialized */ +#define GD_FLG_DISABLE_CONSOLE 0x0040 /* Disable console (in & out) */ +#define GD_FLG_ENV_READY 0x0080 /* Environment imported into hash table */ + +#endif

Dear Mike Frysinger,
In message 1331010031-11171-1-git-send-email-vapier@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 vapier@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

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 vapier@gentoo.org --- v3 - rebase onto mainline
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) */
typedef struct global_data { @@ -86,17 +84,7 @@ typedef struct global_data { #endif } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#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) */
typedef struct global_data { @@ -52,17 +50,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#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 { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t * volatile gd asm ("P3")
diff --git a/arch/m68k/include/asm/global_data.h b/arch/m68k/include/asm/global_data.h index 0ba2b43..cd55b83 100644 --- a/arch/m68k/include/asm/global_data.h +++ b/arch/m68k/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) */
typedef struct global_data { @@ -70,17 +68,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#if 0 extern gd_t *global_data; diff --git a/arch/microblaze/include/asm/global_data.h b/arch/microblaze/include/asm/global_data.h index 6e8537c..0dc4ce9 100644 --- a/arch/microblaze/include/asm/global_data.h +++ b/arch/microblaze/include/asm/global_data.h @@ -30,8 +30,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 { @@ -49,17 +47,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r31")
diff --git a/arch/mips/include/asm/global_data.h b/arch/mips/include/asm/global_data.h index f6cf9fe..6e2cdc7 100644 --- a/arch/mips/include/asm/global_data.h +++ b/arch/mips/include/asm/global_data.h @@ -32,8 +32,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 { @@ -63,17 +61,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("k0")
diff --git a/arch/nds32/include/asm/global_data.h b/arch/nds32/include/asm/global_data.h index de20a0a..94bd4c2 100644 --- a/arch/nds32/include/asm/global_data.h +++ b/arch/nds32/include/asm/global_data.h @@ -39,8 +39,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 CONFIG_GBL_DATA_SIZE > sizeof(gd_t) */
typedef struct global_data { @@ -67,17 +65,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 /* Envs imported into hash table */ +#include <asm-generic/global_data_flags.h>
#ifdef CONFIG_GLOBAL_DATA_NOT_REG10 extern volatile gd_t g_gd; diff --git a/arch/nios2/include/asm/global_data.h b/arch/nios2/include/asm/global_data.h index 4b86fbd..3b0d9e6 100644 --- a/arch/nios2/include/asm/global_data.h +++ b/arch/nios2/include/asm/global_data.h @@ -44,15 +44,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* flags */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("gp")
diff --git a/arch/openrisc/include/asm/global_data.h b/arch/openrisc/include/asm/global_data.h index 36de9d0..6a0c0cc 100644 --- a/arch/openrisc/include/asm/global_data.h +++ b/arch/openrisc/include/asm/global_data.h @@ -30,8 +30,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 { @@ -48,25 +46,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -/* Code was relocated to RAM */ -#define GD_FLG_RELOC 0x00001 -/* Devices have been initialized */ -#define GD_FLG_DEVINIT 0x00002 -/* Silent mode */ -#define GD_FLG_SILENT 0x00004 -/* Critical POST test failed */ -#define GD_FLG_POSTFAIL 0x00008 -/* POST seqeunce aborted */ -#define GD_FLG_POSTSTOP 0x00010 -/* Log Buffer has been initialized */ -#define GD_FLG_LOGINIT 0x00020 -/* Disable console (in & out) */ -#define GD_FLG_DISABLE_CONSOLE 0x00040 -/* Environment imported into hash table */ -#define GD_FLG_ENV_READY 0x00080 +#include <asm-generic/global_data_flags.h>
/* OR32 GCC already has r10 set as fixed-use */ #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r10") diff --git a/arch/powerpc/include/asm/global_data.h b/arch/powerpc/include/asm/global_data.h index 01f1d4a..5a5877f 100644 --- a/arch/powerpc/include/asm/global_data.h +++ b/arch/powerpc/include/asm/global_data.h @@ -33,8 +33,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 { @@ -186,17 +184,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#if 1 #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r2") diff --git a/arch/sandbox/include/asm/global_data.h b/arch/sandbox/include/asm/global_data.h index 01a7063..581fd2f 100644 --- a/arch/sandbox/include/asm/global_data.h +++ b/arch/sandbox/include/asm/global_data.h @@ -31,8 +31,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 { @@ -50,17 +48,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 /* Env. imported into hash table */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR extern gd_t *gd
diff --git a/arch/sh/include/asm/global_data.h b/arch/sh/include/asm/global_data.h index 1b782fc..6e534ad 100644 --- a/arch/sh/include/asm/global_data.h +++ b/arch/sh/include/asm/global_data.h @@ -44,14 +44,7 @@ typedef struct global_data char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("r13")
diff --git a/arch/sparc/include/asm/global_data.h b/arch/sparc/include/asm/global_data.h index 613e2d8..93d3cc0 100644 --- a/arch/sparc/include/asm/global_data.h +++ b/arch/sparc/include/asm/global_data.h @@ -35,8 +35,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 { @@ -78,17 +76,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t;
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("%g7")
diff --git a/arch/x86/include/asm/global_data.h b/arch/x86/include/asm/global_data.h index 908a02c..6d29c0b 100644 --- a/arch/x86/include/asm/global_data.h +++ b/arch/x86/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) */
#ifndef __ASSEMBLY__ @@ -74,17 +72,7 @@ static inline gd_t *get_fs_gd_ptr(void)
#endif
-/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* 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 */ +#include <asm-generic/global_data_flags.h>
#define DECLARE_GLOBAL_DATA_PTR
diff --git a/include/asm-generic/global_data_flags.h b/include/asm-generic/global_data_flags.h new file mode 100644 index 0000000..bb57fb6 --- /dev/null +++ b/include/asm-generic/global_data_flags.h @@ -0,0 +1,28 @@ +/* + * transitional header until we merge global_data.h + * + * (C) Copyright 2000-2010 + * Wolfgang Denk, DENX Software Engineering, wd@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 + * + * Note: The low 16 bits are expected for common code. If your arch + * really needs to add your own, use the high 16bits. + */ +#define GD_FLG_RELOC 0x0001 /* Code was relocated to RAM */ +#define GD_FLG_DEVINIT 0x0002 /* Devices have been initialized */ +#define GD_FLG_SILENT 0x0004 /* Silent mode */ +#define GD_FLG_POSTFAIL 0x0008 /* Critical POST test failed */ +#define GD_FLG_POSTSTOP 0x0010 /* POST seqeunce aborted */ +#define GD_FLG_LOGINIT 0x0020 /* Log Buffer has been initialized */ +#define GD_FLG_DISABLE_CONSOLE 0x0040 /* Disable console (in & out) */ +#define GD_FLG_ENV_READY 0x0080 /* Environment imported into hash table */ + +#endif

On Sunday 18 March 2012 20:31:24 Mike Frysinger 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.
this one seems to still apply with `git am -3` to mainline ... -mike

Dear Mike Frysinger,
In message 1332117084-25486-1-git-send-email-vapier@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 vapier@gentoo.org
v3
- rebase onto mainline
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
Applied, thanks.
Best regards,
Wolfgang Denk
participants (3)
-
Graeme Russ
-
Mike Frysinger
-
Wolfgang Denk