[brcm-2.4] add support for OvisLink WL-1600GL
[openwrt-10.03/.git] / package / nvram / files / nvram.init
index fcfa7f65e9c4516ef9900abdd2272ccb48d0d7cb..9eae17fd8a805b1e6a152c84c9a3643eb7093733 100755 (executable)
@@ -57,10 +57,12 @@ fixup_linksys() {
                                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 +74,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
 }