From 7dcb6b3cfd3a41891bf17d42c467cb1fce6b3ffb Mon Sep 17 00:00:00 2001 From: juhosg Date: Tue, 3 Feb 2009 08:44:50 +0000 Subject: [ar71xx] parse RedBoot environments as well (patch by Jonas ) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14384 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ar71xx/files/arch/mips/ar71xx/prom.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c b/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c index 5402e0a54..29c6c97cc 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c @@ -115,10 +115,16 @@ static __init char *ar71xx_prom_getenv(const char *envname) if (!is_valid_ram_addr(ar71xx_prom_envp)) return NULL; - for (env = ar71xx_prom_envp; is_valid_ram_addr(*env); env++) + for (env = ar71xx_prom_envp; is_valid_ram_addr(*env); env++) { if (strncmp(envname, *env, len) == 0 && (*env)[len] == '=') return *env + len + 1; + /* RedBoot env comes in pointer pairs - key, value */ + if (strncmp(envname, *env, len) == 0 && (*env)[len] == 0) + if (is_valid_ram_addr(*(++env))) + return *env; + } + return NULL; } -- cgit v1.2.3