summaryrefslogtreecommitdiffstats
path: root/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2007-06-25 11:12:51 +0000
committerGabor Juhos <juhosg@openwrt.org>2007-06-25 11:12:51 +0000
commit90f3db27b159237b0597cd6275a1f111cc4bf065 (patch)
treed9de062df7b9ad2ced65f82edb80871ebcd81339 /target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c
parentc1366bb46d9b37f1565a67ee83d6080974542f9b (diff)
downloadmaster-31e0f0ae-90f3db27b159237b0597cd6275a1f111cc4bf065.tar.gz
master-31e0f0ae-90f3db27b159237b0597cd6275a1f111cc4bf065.tar.bz2
master-31e0f0ae-90f3db27b159237b0597cd6275a1f111cc4bf065.zip
from now on, the kernel parses parameters passed by our lzma-loader
SVN-Revision: 7730
Diffstat (limited to 'target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c')
-rw-r--r--target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c b/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c
index 1cbbbc2de5..a288b073ca 100644
--- a/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c
+++ b/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c
@@ -32,13 +32,12 @@
#include <asm/mach-adm5120/adm5120_info.h>
+static char **prom_envp;
+
void setup_prom_printf(int);
void prom_printf(char *, ...);
void prom_meminit(void);
-#define ADM5120_ENVC 1
-
-char *adm5120_envp[2*ADM5120_ENVC] = {"memsize","0x001000000"};
#define READCSR(r) *(volatile unsigned long *)(0xB2600000+(r))
#define WRITECSR(r,v) *(volatile unsigned long *)(0xB2600000+(r)) = v
@@ -81,25 +80,24 @@ void prom_printf(char *fmt, ...)
char *prom_getenv(char *envname)
{
- int i, index=0;
+ char **env;
+ char *ret;
- i = strlen(envname);
+ ret = NULL;
- printk(KERN_INFO "GETENV: envname is %s\n", envname);
+ if (prom_envp== NULL)
+ return NULL;
- while(index < (2*ADM5120_ENVC)) {
- if(strncmp(envname, adm5120_envp[index], i) == 0) {
- printk(KERN_INFO "GETENV: returning %s\n", adm5120_envp[index+1]);
- return(adm5120_envp[index+1]);
+ for (env = prom_envp; *env != NULL; env++) {
+ if (strcmp(envname, *env++) == 0) {
+ ret = *env;
+ break;
}
- index += 2;
}
- printk(KERN_INFO "GETENV: not found.\n");
- return(NULL);
+ return ret;
}
-
extern char _image_cmdline;
/*
* initialize the prom module.
@@ -108,6 +106,8 @@ void __init prom_init(void)
{
char *cmd;
+ prom_envp = (char **)fw_arg2;
+
adm5120_info_init();
/* you should these macros defined in include/asm/bootinfo.h */