1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-04-21 12:27:27 +03:00

[adm5120]: from now on, the kernel parses parameters passed by our lzma-loader

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7730 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
juhosg
2007-06-25 11:12:51 +00:00
parent 90dc237655
commit bc03d2d184
4 changed files with 218 additions and 66 deletions

View File

@@ -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 */