# under Linux.
#
--obj-y := gpio.o irq.o nvram.o prom.o serial.o setup.o time.o
-+obj-y := gpio.o irq.o nvram.o prom.o serial.o setup.o time.o cfe_env.o
+-obj-y += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o bus.o
++obj-y += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o bus.o cfe_env.o
--- /dev/null
+++ b/arch/mips/bcm47xx/cfe_env.c
@@ -0,0 +1,229 @@
+
--- a/arch/mips/bcm47xx/nvram.c
+++ b/arch/mips/bcm47xx/nvram.c
-@@ -22,6 +22,8 @@
- #include <asm/mach-bcm47xx/bcm47xx.h>
+@@ -23,6 +23,8 @@
+ #include <asm/mach-bcm47xx/bus.h>
static char nvram_buf[NVRAM_SPACE];
+static int cfe_env;
+extern char *cfe_env_get(char *nv_buf, const char *name);
/* Probe for NVRAM header */
- static void early_nvram_init(void)
-@@ -34,6 +36,25 @@ static void early_nvram_init(void)
-
- base = mcore->flash_window;
- lim = mcore->flash_window_size;
+ static void early_nvram_init_pflash(void)
+@@ -59,6 +61,25 @@ static void early_nvram_init_pflash(void
+ break;
+ #endif
+ }
+ cfe_env = 0;
+
+ /* XXX: hack for supporting the CFE environment stuff on WGT634U */
off = FLASH_MIN;
while (off <= lim) {
-@@ -75,6 +96,12 @@ int nvram_getenv(char *name, char *val,
+@@ -181,6 +202,12 @@ int nvram_getenv(char *name, char *val,
if (!nvram_buf[0])
early_nvram_init();
/* Look for name=value and return value */
var = &nvram_buf[sizeof(struct nvram_header)];
end = nvram_buf + sizeof(nvram_buf) - 2;
-@@ -104,6 +131,9 @@ char *nvram_get(const char *name)
+@@ -210,6 +237,9 @@ char *nvram_get(const char *name)
if (!nvram_buf[0])
early_nvram_init();