X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fnvram%2Ffiles%2Fnvram.init;h=467ab28195f9ede0909211ecab4c32fb6f53008a;hb=a1264431fe478faee913768b582ae148a8a077e6;hp=fcfa7f65e9c4516ef9900abdd2272ccb48d0d7cb;hpb=69decd27e2c8d7e71bf8124274f788cd518c36d4;p=openwrt%2Fopenwrt.git diff --git a/package/nvram/files/nvram.init b/package/nvram/files/nvram.init index fcfa7f65e9..467ab28195 100755 --- a/package/nvram/files/nvram.init +++ b/package/nvram/files/nvram.init @@ -52,15 +52,29 @@ fixup_linksys() { } ;; "1071") #0x042f - nvram_set sdram_init "$(printf 0x%04x $(( $(/usr/sbin/nvram get sdram_init) | 0x0009 )))" + # do sanity check first! max 0x0011 = 128mb + SDRAM_INIT=$(printf %d $(/usr/sbin/nvram get sdram_init)) + [ "$SDRAM_INIT" -lt "9" -o "$SDRAM_INIT" -gt "17" ] && { + # set this to default: 0x09 only if value is invaild like 16MB on Asus WL-500GP + 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 } esac - [ "$COMMIT" = "1" ] && nvram commit } start() { + # Don't do any fixups on the WGT634U + [ "$(cat /proc/diag/model)" = "Netgear WGT634U" ] && return + fixup_linksys # OFDM Power Offset is set incorrectly on many boards. @@ -72,4 +86,13 @@ start() { nvram set il0macaddr=$(nvram get et0macaddr| awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}') } + + [ "$(nvram get et0macaddr)" = "00:90:4c:c0:00:08" ] && { + # OvisLink WL-1600GL mac workaround + nvram set et0macaddr=$(hexdump -n 6 -s 130976 -e '5/1 "%02x:" "%02x" ' /dev/mtd/0) + nvram set il0macaddr=$(nvram get et0macaddr| + awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}') + } + + [ "$COMMIT" = "1" ] && nvram commit }