ipv6-support: Update iteration * Add support for blocking forwarding while address...
[openwrt/staging/chunkeey.git] / target / linux / brcm47xx / patches-3.3 / 820-wgt634u-nvram-fix.patch
index 457958a9d95e3dddbe0a003a196b97fc0ad3c0c4..c2da5e07708d2c30513e9a8c822c660fc01da89b 100644 (file)
@@ -9,8 +9,8 @@ out the configuration than the in kernel cfe config reader.
  # under Linux.
  #
  
--obj-y                                 += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o bus.o
-+obj-y                                 += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o bus.o cfe_env.o
+-obj-y                                 += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o
++obj-y                                 += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o cfe_env.o
 --- /dev/null
 +++ b/arch/mips/bcm47xx/cfe_env.c
 @@ -0,0 +1,229 @@
@@ -245,19 +245,19 @@ out the configuration than the in kernel cfe config reader.
 +
 --- a/arch/mips/bcm47xx/nvram.c
 +++ b/arch/mips/bcm47xx/nvram.c
-@@ -25,6 +25,8 @@
- #include <linux/mtd/bcm47xx_nand.h>
+@@ -22,6 +22,8 @@
+ #include <asm/mach-bcm47xx/bcm47xx.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_pflash(void)
-@@ -58,6 +60,25 @@ static void early_nvram_init_pflash(void
-               break;
- #endif
-       }
+ static u32 find_nvram_size(u32 end)
+ {
+@@ -47,6 +49,26 @@ static void early_nvram_init_fill(u32 ba
+       u32 *src, *dst;
+       u32 size;
 +      cfe_env = 0;
 +
 +      /* XXX: hack for supporting the CFE environment stuff on WGT634U */
@@ -277,10 +277,11 @@ out the configuration than the in kernel cfe config reader.
 +                      return;
 +              }
 +      }
++
+       /* TODO: when nvram is on nand flash check for bad blocks first. */
        off = FLASH_MIN;
        while (off <= lim) {
-@@ -257,6 +278,12 @@ int nvram_getenv(char *name, char *val,
+@@ -166,6 +188,12 @@ int nvram_getenv(char *name, char *val,
        if (!nvram_buf[0])
                early_nvram_init();
  
@@ -293,7 +294,7 @@ out the configuration than the in kernel cfe config reader.
        /* Look for name=value and return value */
        var = &nvram_buf[sizeof(struct nvram_header)];
        end = nvram_buf + sizeof(nvram_buf) - 2;
-@@ -285,6 +312,9 @@ char *nvram_get(const char *name)
+@@ -194,6 +222,9 @@ char *nvram_get(const char *name)
        if (!nvram_buf[0])
                early_nvram_init();