[MIPS] Au1xx0: fix prom_getenv() to handle YAMON style environment
Alchemy boards use YAMON which passes the environment variables as the tuples of strings (the name followed by the value) unlike PMON which passes "name=<val>" strings. Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>hifive-unleashed-5.1
parent
6ebba0e2f5
commit
fef6d6a73a
|
@ -1,10 +1,9 @@
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* BRIEF MODULE DESCRIPTION
|
* BRIEF MODULE DESCRIPTION
|
||||||
* PROM library initialisation code, assuming a version of
|
* PROM library initialisation code, assuming YAMON is the boot loader.
|
||||||
* pmon is the boot code.
|
|
||||||
*
|
*
|
||||||
* Copyright 2000,2001 MontaVista Software Inc.
|
* Copyright 2000, 2001, 2006 MontaVista Software Inc.
|
||||||
* Author: MontaVista Software, Inc.
|
* Author: MontaVista Software, Inc.
|
||||||
* ppopov@mvista.com or source@mvista.com
|
* ppopov@mvista.com or source@mvista.com
|
||||||
*
|
*
|
||||||
|
@ -49,9 +48,9 @@ extern char **prom_argv, **prom_envp;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
char *name;
|
char *name;
|
||||||
/* char *val; */
|
char *val;
|
||||||
}t_env_var;
|
} t_env_var;
|
||||||
|
|
||||||
|
|
||||||
char * prom_getcmdline(void)
|
char * prom_getcmdline(void)
|
||||||
|
@ -85,21 +84,16 @@ char *prom_getenv(char *envname)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Return a pointer to the given environment variable.
|
* Return a pointer to the given environment variable.
|
||||||
* Environment variables are stored in the form of "memsize=64".
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
t_env_var *env = (t_env_var *)prom_envp;
|
t_env_var *env = (t_env_var *)prom_envp;
|
||||||
int i;
|
|
||||||
|
|
||||||
i = strlen(envname);
|
while (env->name) {
|
||||||
|
if (strcmp(envname, env->name) == 0)
|
||||||
while(env->name) {
|
return env->val;
|
||||||
if(strncmp(envname, env->name, i) == 0) {
|
|
||||||
return(env->name + strlen(envname) + 1);
|
|
||||||
}
|
|
||||||
env++;
|
env++;
|
||||||
}
|
}
|
||||||
return(NULL);
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline unsigned char str2hexnum(unsigned char c)
|
inline unsigned char str2hexnum(unsigned char c)
|
||||||
|
|
Loading…
Reference in New Issue