[MIPS] au1xxx: Support both YAMON and U-Boot
Signed-off-by: Domen Puncer <domen.puncer@ultra.si> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
c36cd4bab5
commit
6fe725c01c
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* BRIEF MODULE DESCRIPTION
|
* BRIEF MODULE DESCRIPTION
|
||||||
* PROM library initialisation code, assuming YAMON is the boot loader.
|
* PROM library initialisation code, supports YAMON and U-Boot.
|
||||||
*
|
*
|
||||||
* Copyright 2000, 2001, 2006 MontaVista Software Inc.
|
* Copyright 2000, 2001, 2006 MontaVista Software Inc.
|
||||||
* Author: MontaVista Software, Inc.
|
* Author: MontaVista Software, Inc.
|
||||||
@ -46,12 +46,6 @@
|
|||||||
extern int prom_argc;
|
extern int prom_argc;
|
||||||
extern char **prom_argv, **prom_envp;
|
extern char **prom_argv, **prom_envp;
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
char *name;
|
|
||||||
char *val;
|
|
||||||
} t_env_var;
|
|
||||||
|
|
||||||
|
|
||||||
char * prom_getcmdline(void)
|
char * prom_getcmdline(void)
|
||||||
{
|
{
|
||||||
@ -84,13 +78,21 @@ char *prom_getenv(char *envname)
|
|||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Return a pointer to the given environment variable.
|
* Return a pointer to the given environment variable.
|
||||||
|
* YAMON uses "name", "value" pairs, while U-Boot uses "name=value".
|
||||||
*/
|
*/
|
||||||
|
|
||||||
t_env_var *env = (t_env_var *)prom_envp;
|
char **env = prom_envp;
|
||||||
|
int i = strlen(envname);
|
||||||
|
int yamon = (*env && strchr(*env, '=') == NULL);
|
||||||
|
|
||||||
while (env->name) {
|
while (*env) {
|
||||||
if (strcmp(envname, env->name) == 0)
|
if (yamon) {
|
||||||
return env->val;
|
if (strcmp(envname, *env++) == 0)
|
||||||
|
return *env;
|
||||||
|
} else {
|
||||||
|
if (strncmp(envname, *env, i) == 0 && (*env)[i] == '=')
|
||||||
|
return *env + i + 1;
|
||||||
|
}
|
||||||
env++;
|
env++;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user