Browse Source

brcm47xx: fix destroying of 128MB modded ASUS WL-500GP

This fixup was introduced in r11812 to correct settings for devices only showing 16MB RAM instead of 128MB.
That killed devices with 128MB RAM.
Now value is *set* 0x0009 and not ored.
The value is only corrected if it has less than 32 MB Ram.

This should fix the last problem in #3177
Thank you b.sander for the patch.

SVN-Revision: 21497
Hauke Mehrtens 15 years ago
parent
commit
0745a63313
1 changed files with 7 additions and 1 deletions
  1. 7 1
      package/nvram/files/nvram.init

+ 7 - 1
package/nvram/files/nvram.init

@@ -52,7 +52,13 @@ 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!"
+				$(/usr/sbin/nvram_set sdram_init "0x0009")
+			}
 			[ "$COMMIT" = 1 ] && {
 				nvram_set sdram_ncdl 0x0
 			}