path: root/arch/blackfin/include
diff options
authorWolfgang Denk <wd@denx.de>2010-07-24 20:22:02 +0200
committerWolfgang Denk <wd@denx.de>2010-09-19 19:29:48 +0200
commit91a76751a090bf43c166fda0815c9b5b2bfccbe9 (patch)
tree08a984591270e574bcda8c2cd28bd4c6351c7b46 /arch/blackfin/include
parent6d014adfa2ac4b1151d2b80a6943f59c3e254239 (diff)
Make getenv() work before relocation.
So far, getenv() would work before relocation is most cases, even though it was not intended to be used that way. When switching to a hash table based implementation, this would break a number of boards. For convenience, we make getenv() check if it's running before relocation and, if so, use getenv_f() internally. Note that this is limited to simple cases, as we use a small static buffer (32 bytes) in the global data for this purpose. For this reason, it is also not a good idea to convert all current uses of getenv_f() into getenv() - some of the existing use cases need to be able to deal with longer variable values, so getenv_f() is still needed and recommended for use before relocation. Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'arch/blackfin/include')
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/blackfin/include/asm/global_data.h b/arch/blackfin/include/asm/global_data.h
index c7099e6da..3cfd00e66 100644
--- a/arch/blackfin/include/asm/global_data.h
+++ b/arch/blackfin/include/asm/global_data.h
@@ -3,7 +3,7 @@
* Copyright (c) 2005-2007 Analog Devices Inc.
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
* See file CREDITS for list of people who contributed to this
@@ -53,7 +53,8 @@ typedef struct global_data {
unsigned long post_init_f_time; /* When post_init_f started */
- void **jt; /* jump table */
+ void **jt; /* jump table */
+ char env_buf[32]; /* buffer for getenv() before reloc. */
} gd_t;
@@ -65,7 +66,7 @@ typedef struct global_data {
#define GD_FLG_POSTFAIL 0x00008 /* Critical POST test failed */
#define GD_FLG_POSTSTOP 0x00010 /* POST seqeunce aborted */
#define GD_FLG_LOGINIT 0x00020 /* Log Buf has been initialized */
-#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in & out) */
+#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in & out) */
#define DECLARE_GLOBAL_DATA_PTR register gd_t * volatile gd asm ("P3")