On Sun, 2010-12-05 at 15:47 +0100, Hauke Mehrtens wrote:

> Hi Steve,
> 
> with your change the kernel do not try to access the cfe storage to get
> the configuration values, which are not stored there any way. Please try
> kernel 2.6.37-rc4, it contains some more fixes and do not try to access
> cfe. If this boots without any extra modifications I will backport the
> changes done in kernel 2.6.37.
> 
> Hauke

After a few printk's, the traceback became a little more helpful.

The problem was some cfe_getenv's tucked away in
target/linux/brcm47xx/files-2.6.37/drivers/mtd/maps/bcm47xx-flash.c

After I removed them, 2.6.37-rc4 boots.

Steve

--- 
build_dir/linux-brcm47xx/linux-2.6.37-rc4/drivers/mtd/maps/bcm47xx-flash.c.orig 
    2010-12-05 12:43:53.907895337 -0500
+++ build_dir/linux-brcm47xx/linux-2.6.37-rc4/drivers/mtd/maps/bcm47xx-flash.c  
2010-12-05 13:30:53.500900861 -0500
@@ -340,7 +340,7 @@
        return -1;
 
  found:
-       printk(KERN_NOTICE"TRX offset : %lx\n", trxoff);
+       printk(KERN_NOTICE"TRX offset : %x\n", trxoff);
        if (part->size == 0)
                return 0;
        
@@ -398,23 +398,17 @@
        u16 sdram_init = 0;
        u16 cardbus = 0;
 
-       if (nvram_getenv("boardnum", buf, sizeof(buf)) >= 0 ||
-           cfe_getenv("boardnum", buf, sizeof(buf)) >= 0)
+       if (nvram_getenv("boardnum", buf, sizeof(buf)) >= 0)
                boardnum = simple_strtoul(buf, NULL, 0);
-       if (nvram_getenv("boardtype", buf, sizeof(buf)) >= 0 ||
-           cfe_getenv("boardtype", buf, sizeof(buf)) >= 0)
+       if (nvram_getenv("boardtype", buf, sizeof(buf)) >= 0)
                boardtype = simple_strtoul(buf, NULL, 0);
-       if (nvram_getenv("boardrev", buf, sizeof(buf)) >= 0 ||
-           cfe_getenv("boardrev", buf, sizeof(buf)) >= 0)
+       if (nvram_getenv("boardrev", buf, sizeof(buf)) >= 0)
                boardrev = simple_strtoul(buf, NULL, 0);
-       if (nvram_getenv("boardflags", buf, sizeof(buf)) >= 0 ||
-           cfe_getenv("boardflags", buf, sizeof(buf)) >= 0)
+       if (nvram_getenv("boardflags", buf, sizeof(buf)) >= 0)
                boardflags = simple_strtoul(buf, NULL, 0);
-       if (nvram_getenv("sdram_init", buf, sizeof(buf)) >= 0 ||
-           cfe_getenv("sdram_init", buf, sizeof(buf)) >= 0)
+       if (nvram_getenv("sdram_init", buf, sizeof(buf)) >= 0)
                sdram_init = simple_strtoul(buf, NULL, 0);
-       if (nvram_getenv("cardbus", buf, sizeof(buf)) >= 0 ||
-           cfe_getenv("cardbus", buf, sizeof(buf)) >= 0)
+       if (nvram_getenv("cardbus", buf, sizeof(buf)) >= 0)
                cardbus = simple_strtoul(buf, NULL, 0);
 
        if ((boardnum == 8 || boardnum == 01)


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to