nvvram: no checksum error recording on WRT54G3GV2(-VF)

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
This commit is contained in:
Florian Fainelli 2010-09-11 18:37:09 +00:00
parent 4b7536d3c7
commit a1264431fe
2 changed files with 7 additions and 1 deletions

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=nvram PKG_NAME:=nvram
PKG_RELEASE:=8 PKG_RELEASE:=9
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

View File

@ -59,6 +59,12 @@ fixup_linksys() {
echo "sdram_init is invaild: $(printf 0x%04x $SDRAM_INIT), force to default!" echo "sdram_init is invaild: $(printf 0x%04x $SDRAM_INIT), force to default!"
nvram_set sdram_init 0x0009 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 ] && { [ "$COMMIT" = 1 ] && {
nvram_set sdram_ncdl 0x0 nvram_set sdram_ncdl 0x0
} }