nvvram: no checksum error recording on WRT54G3GV2(-VF)
authorFlorian Fainelli <florian@openwrt.org>
Sat, 11 Sep 2010 18:37:09 +0000 (18:37 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sat, 11 Sep 2010 18:37:09 +0000 (18:37 +0000)
The CFE of the WRT54G3GV2 expects two firmware images, if one of them
produces a CRC error (which is the case after you installed OpenWrt, as
there is no second image), it writes one of three consecutive bytes to
the flash. (Look for "Image Status : IMG2_BAD" during boot.)

After the third boot with a CRC error, it stops and waits for a new
firmware image. To prevent this 'noset_try_flag' must be set to 1 on boot.

Tested with my own box.

Signed-off-by: Niclas Koeser <nks at informatik.uni-kiel.de>
SVN-Revision: 23007

package/nvram/Makefile
package/nvram/files/nvram.init

index 7fc9cc8a41b8ec9b1d8f9a105a4825e48953190b..5ff3791c5ee69c048765fb55c6131fe962959113 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nvram
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nvram
-PKG_RELEASE:=8
+PKG_RELEASE:=9
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index 0267a80c5ac894b794986b00d725514f9b849ef2..467ab28195f9ede0909211ecab4c32fb6f53008a 100755 (executable)
@@ -59,6 +59,12 @@ fixup_linksys() {
                                echo "sdram_init is invaild: $(printf 0x%04x $SDRAM_INIT), force to default!"
                                nvram_set sdram_init 0x0009
                        }
                                echo "sdram_init is invaild: $(printf 0x%04x $SDRAM_INIT), force to default!"
                                nvram_set sdram_init 0x0009
                        }
+                       # on WRT54G3GV2 set flag, so checksum errors of firmware image 2 don't stop the boot process
+                       noset_try_flag=$(nvram get noset_try_flag)
+                       [ "$noset_try_flag" = 0 ] && {
+                               echo "setting noset_try_flag to 1."
+                               nvram_set noset_try_flag 1
+                       }
                        [ "$COMMIT" = 1 ] && {
                                nvram_set sdram_ncdl 0x0
                        }
                        [ "$COMMIT" = 1 ] && {
                                nvram_set sdram_ncdl 0x0
                        }