+nvram_set() { # for the linksys fixup part
+ [ "$(nvram get "$1")" = "$2" ] || {
+ COMMIT=1
+ nvram set "$1=$2"
+ }
+}
+
+# work around braindead CFE defaults in linksys routers
+boardtype=$(nvram get boardtype)
+boardflags=$(($(nvram get boardflags)))
+[ "$boardtype" = "bcm4710dev" ] && boardtype="0xdeadbeef"
+adm_switch="$(( ($boardflags & 0x80) >> 7 ))"
+case "$(( $boardtype ))" in
+ "$((0x708))")
+ if [ "$adm_switch" = 0 ]; then
+ nvram_set sdram_init "$(printf 0x%04x $(( $(nvram get sdram_init) | 0x0100 )))"
+ [ "$COMMIT" = 1 ] && {
+ nvram_set sdram_config 0x0062
+ nvram_set clkfreq 216
+ nvram_set sdram_ncdl 0x0
+ nvram_set pa0itssit 62
+ nvram_set pa0b0 0x15eb
+ nvram_set pa0b1 0xfa82
+ nvram_set pa0b2 0xfe66
+ nvram_set pa0maxpwr 0x4e
+ }
+ fi
+ ;;
+ "$((0x467))")
+ nvram_set sdram_init "$(printf 0x%04x $(( $(nvram get sdram_init) | 0x0100 )))"
+ [ "$COMMIT" = 1 ] && {
+ nvram_set sdram_config 0x0062
+ nvram_set sdram_ncdl 0x0
+ nvram_set pa0itssit 62
+ nvram_set pa0b0 0x168b
+ nvram_set pa0b1 0xfabf
+ nvram_set pa0b2 0xfeaf
+ nvram_set pa0maxpwr 0x4e
+ }
+ ;;
+esac
+[ "$COMMIT" = "1" ] && nvram commit
+
+