n810: Add firmware generator hotplug scripts
[openwrt.git] / package / nvram / files / nvram.init
index fcfa7f6..467ab28 100755 (executable)
@@ -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
 }
This page took 0.026036 seconds and 4 git commands to generate.