diff options
| -rw-r--r-- | api/api.c | 1 | ||||
| -rw-r--r-- | common/cmd_nvedit.c | 3 | ||||
| -rw-r--r-- | common/env_common.c | 19 | ||||
| -rw-r--r-- | common/env_eeprom.c | 1 | ||||
| -rw-r--r-- | common/env_nvram.c | 1 | ||||
| -rw-r--r-- | common/ft_build.c | 2 | ||||
| -rw-r--r-- | include/common.h | 1 | 
7 files changed, 14 insertions, 14 deletions
| @@ -40,6 +40,7 @@  /* U-Boot routines needed */  extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); +extern uchar (*env_get_char)(int);  extern uchar *env_get_addr(int);  /***************************************************************************** diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index dc05f68bf..cab727f76 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -68,6 +68,9 @@ DECLARE_GLOBAL_DATA_PTR;  /************************************************************************  ************************************************************************/ +/* Function that returns a character from the environment */ +extern uchar (*env_get_char)(int); +  /* Function that returns a pointer to a value from the environment */  /* (Only memory version supported / needed). */  extern uchar *env_get_addr(int); diff --git a/common/env_common.c b/common/env_common.c index f366fdbeb..a49481244 100644 --- a/common/env_common.c +++ b/common/env_common.c @@ -50,6 +50,7 @@ extern void env_relocate_spec (void);  extern uchar env_get_char_spec(int);  static uchar env_get_char_init (int index); +uchar (*env_get_char)(int) = env_get_char_init;  /************************************************************************   * Default settings to be used when no valid environment is found @@ -181,19 +182,6 @@ uchar env_get_char_memory (int index)  }  #endif -uchar env_get_char (int index) -{ -	uchar c; - -	/* if relocated to RAM */ -	if (gd->flags & GD_FLG_RELOC) -		c = env_get_char_memory(index); -	else -		c = env_get_char_init(index); - -	return (c); -} -  uchar *env_get_addr (int index)  {  	if (gd->env_valid) { @@ -227,6 +215,11 @@ void env_relocate (void)  	DEBUGF ("%s[%d] malloced ENV at %p\n", __FUNCTION__,__LINE__,env_ptr);  #endif +	/* +	 * After relocation to RAM, we can always use the "memory" functions +	 */ +	env_get_char = env_get_char_memory; +  	if (gd->env_valid == 0) {  #if defined(CONFIG_GTH)	|| defined(CFG_ENV_IS_NOWHERE)	/* Environment not changable */  		puts ("Using default environment\n\n"); diff --git a/common/env_eeprom.c b/common/env_eeprom.c index fae87ca33..2adc129c6 100644 --- a/common/env_eeprom.c +++ b/common/env_eeprom.c @@ -38,6 +38,7 @@ env_t *env_ptr = NULL;  char * env_name_spec = "EEPROM"; +extern uchar (*env_get_char)(int);  extern uchar env_get_char_memory (int index); diff --git a/common/env_nvram.c b/common/env_nvram.c index bfc8d02f8..7c18896cb 100644 --- a/common/env_nvram.c +++ b/common/env_nvram.c @@ -63,6 +63,7 @@ char * env_name_spec = "NVRAM";  extern uchar default_environment[];  extern int default_environment_size; +extern uchar (*env_get_char)(int);  extern uchar env_get_char_memory (int index);  #ifdef CONFIG_AMIGAONEG3SE diff --git a/common/ft_build.c b/common/ft_build.c index 0b6c2b733..0e5699a95 100644 --- a/common/ft_build.c +++ b/common/ft_build.c @@ -396,6 +396,8 @@ void *ft_get_prop(void *bphp, const char *propname, int *szp)  /********************************************************************/ +/* Function that returns a character from the environment */ +extern uchar(*env_get_char) (int);  void ft_setup(void *blob, bd_t * bd, ulong initrd_start, ulong initrd_end)  { diff --git a/include/common.h b/include/common.h index a6c966cde..d0f57040e 100644 --- a/include/common.h +++ b/include/common.h @@ -227,7 +227,6 @@ extern ulong load_addr;		/* Default Load Address */  /* common/cmd_nvedit.c */  int	env_init     (void);  void	env_relocate (void); -uchar	env_get_char (int);  int	envmatch     (uchar *, int);  char	*getenv	     (char *);  int	getenv_r     (char *name, char *buf, unsigned len); |