diff options
Diffstat (limited to 'target')
10 files changed, 214 insertions, 2 deletions
| diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 866003c28..fe925c0f0 100755 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -111,6 +111,9 @@ get_status_led() {  	wr512-3gn)  		status_led="wr512:green:wps"  		;; +	wnce2001) +		status_led="netgear:green:power" +		;;  	mzk-w300nh2)  		status_led="mzkw300nh2:green:power"  		;; diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom index b6490b5b5..5915a02ef 100644 --- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom +++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -93,6 +93,7 @@ case "$FIRMWARE" in  	wl-330n3g | \  	wl-351 | \  	wli-tx4-ag300n | \ +	wnce2001 | \  	wr512-3gn | \  	wr6202 | \  	mzk-w300nh2 | \ diff --git a/target/linux/ramips/base-files/etc/uci-defaults/01_leds b/target/linux/ramips/base-files/etc/uci-defaults/01_leds index bb8a5dcbd..cd17d7fa3 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/01_leds +++ b/target/linux/ramips/base-files/etc/uci-defaults/01_leds @@ -112,6 +112,9 @@ case $board in  	wcr-150gn)  		set_usb_led "wcr150gn:amber:user"  		;; +	wnce2001) +		set_wifi_led "netgear:green:wlan" +		;;  esac  ucidef_commit_leds diff --git a/target/linux/ramips/base-files/etc/uci-defaults/02_network b/target/linux/ramips/base-files/etc/uci-defaults/02_network index 9c1936e57..e28f2b546 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/02_network +++ b/target/linux/ramips/base-files/etc/uci-defaults/02_network @@ -41,7 +41,8 @@ ramips_setup_interfaces()  	w150m | \  	all0256n | \  	all5002 | \ -	broadway) +	broadway | \ +	wnce2001)  		ucidef_add_switch "switch0" "1" "0"  		ucidef_set_interface_lan "eth0"  		;; @@ -242,7 +243,8 @@ ramips_setup_macs()  	all0239-3g | \  	carambola | \ -	w502u) +	w502u | \ +	wnce2001)  		lan_mac=$(mtd_get_mac_binary factory 40)  		wan_mac=$(mtd_get_mac_binary factory 46)  		;; diff --git a/target/linux/ramips/base-files/lib/preinit/04_disable_wnce2001_flash_checksumming b/target/linux/ramips/base-files/lib/preinit/04_disable_wnce2001_flash_checksumming new file mode 100644 index 000000000..67a1746f1 --- /dev/null +++ b/target/linux/ramips/base-files/lib/preinit/04_disable_wnce2001_flash_checksumming @@ -0,0 +1,43 @@ +#!/bin/sh + +# Netgear WNCE2001 has does a checksum check on boot and goes into recovery +# tftp mode when the check fails.  Initializing the JFFS2 partition triggers +# this, so we make sure to zero checksum and size to be checksummed before +# that happens, so this needs to run very early during boot. + +do_wnce2001_checksumming_disable() { +	. /lib/ramips.sh + +	local board=$(ramips_board_name) + +	case "$board" in +	wnce2001) +		echo "Board is WNCE2001, updating checksum partition..." +		local zeroes=/dev/zero +		local tmpfile=/tmp/wnce2001_checksum +		local partname=checksum +		local mtd=$(find_mtd_part $partname) +		dd if=$mtd of=$tmpfile bs=80 count=1 2>/dev/null +		signature=$(dd if=$tmpfile bs=1 skip=24 count=20 2>/dev/null) +		checksum=$(dd if=$tmpfile bs=1 count=4 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"') +		if [ "$signature" != "RT3052-AP-WNCE2001-3" ]; then +			echo "Signature of checksum partition is wrong, bailing." +			return 0 +		fi +		if [ "$checksum" != "00000000" ]; then +			echo "Checksum is set, zeroing." +			# zero out checksum +			dd if=$zeroes of=$tmpfile conv=notrunc bs=1 seek=0 count=4 2>/dev/null +			# zero out bytecount to be checksummed +			dd if=$zeroes of=$tmpfile conv=notrunc bs=1 seek=60 count=4 2>/dev/null +			mtd write $tmpfile $partname +		else +			echo "Checksum is already zero, nothing to do." +		fi +	;; +	esac + +	return 0 +} + +boot_hook_add preinit_main do_wnce2001_checksumming_disable diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac index 7824e2b25..52bf115cc 100644 --- a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac +++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac @@ -64,6 +64,7 @@ preinit_set_mac_address() {  	w306r-v20 |\  	w502u    |\  	wr6202 |\ +	wnce2001 |\  	xdxrn502j)  		mac=$(mtd_get_mac_binary factory 40)  		ifconfig eth0 hw ether $mac 2>/dev/null diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index c89dd469a..37b477a06 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -120,6 +120,9 @@ ramips_board_detect() {  	*"NBG-419N")  		name="nbg-419n"  		;; +	*"Netgear WNCE2001") +		name="wnce2001" +		;;  	*"NexAira BC2")  		name="bc2"  		;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 34d2c54c8..ef150445b 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -59,6 +59,7 @@ platform_check_image() {  	wl341v3 | \  	wl-330n | \  	wl-351 | \ +	wnce2001 | \  	wli-tx4-ag300n | \  	whr-g300n |\  	ur-326n4g |\ diff --git a/target/linux/ramips/dts/WNCE2001.dts b/target/linux/ramips/dts/WNCE2001.dts new file mode 100644 index 000000000..1aa1e2cc0 --- /dev/null +++ b/target/linux/ramips/dts/WNCE2001.dts @@ -0,0 +1,142 @@ +/dts-v1/; + +/include/ "rt3050.dtsi" + +/ { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "WNCE2001", "ralink,rt3052-soc"; +	model = "Netgear WNCE2001"; + +	memorydetect { +		ralink,memory = <0x0 0x200000 0x4000000>; +	}; + +	chosen { +		bootargs = "console=ttyS0,115200"; +	}; + +	palmbus@10000000 { +		sysc@0 { +			ralink,pinmux = "spi", "uartlite", "jtag", "sdram"; +			ralink,gpiomux = "i2c", "mdio", "rgmii"; +			ralink,uartmux = "gpio"; +			ralink,wdtmux = <1>; +		}; + +		gpio0: gpio@600 { +			status = "okay"; +		}; + +		spi@b00 { +			status = "okay"; +			m25p80@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "mx25l3205d"; +				reg = <0 0>; +				linux,modalias = "m25p80", "mx25l3205d"; +				spi-max-frequency = <10000000>; + +				partition@0 { +					label = "u-boot"; +					reg = <0x0 0x30000>; +					read-only; +				}; + +				factory: partition@30000 { +					label = "factory"; +					reg = <0x30000 0x10000>; +					read-only; +				}; + +				partition@40000 { +					label = "config"; +					reg = <0x40000 0x20000>; +					read-only; +				}; + +				partition@60000 { +					label = "language"; +					reg = <0x60000 0x30000>; +					read-only; +				}; + +				partition@90000 { +					label = "pot"; +					reg = <0x90000 0x10000>; +					read-only; +				}; + +				partition@a0000 { +					label = "checksum"; +					reg = <0xa0000 0x10000>; +				}; + +				partition@b0000 { +					label = "firmware"; +					reg = <0xb0000 0x350000>; +				}; +			}; +		}; +	}; + +	ethernet@10100000 { +		status = "okay"; +	}; + +	esw@10110000 { +		status = "okay"; +	}; + +	wmac@10180000 { +		status = "okay"; +	}; + +	gpio-leds { +		compatible = "gpio-leds"; +		power-green { +			label = "netgear:green:power"; +			gpios = <&gpio0 8 1>; +		}; +		power-red { +			label = "netgear:red:power"; +			gpios = <&gpio0 9 1>; +		}; +		wlan-green { +			label = "netgear:green:wlan"; +			gpios = <&gpio0 12 0>; +		}; +		wlan-red { +			label = "netgear:red:wlan"; +			gpios = <&gpio0 13 0>; +		}; +	}; + +	gpio-keys-polled { +		compatible = "gpio-keys-polled"; +		#address-cells = <1>; +		#size-cells = <0>; +		poll-interval = <20>; +		reset { +			label = "reset"; +			gpios = <&gpio0 10 1>; +			linux,code = <0x198>; +		}; +		wps { +			label = "wps"; +			gpios = <&gpio0 0 1>; +			linux,code = <0x211>; +		}; +		rt { +			label = "rt"; +			gpios = <&gpio0 11 1>; +			linux,code = <0x100>; +		}; +		ap { +			label = "ap"; +			gpios = <&gpio0 7 1>; +			linux,code = <0x101>; +		}; +	}; +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 0002eb497..eaa1fcfb9 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -392,6 +392,18 @@ Image/Build/Profile/WL341V3=$(call BuildFirmware/WL341V3/$(1),$(1))  Image/Build/Profile/WL-351=$(call BuildFirmware/Default4M/$(1),$(1),wl-351,WL-351) +define BuildFirmware/WNCE2001/squashfs +	$(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3)) +	-mkdapimg -s RT3052-AP-WNCE2001-3 -r WW -v 1.0.0.99 \ +		-i $(call sysupname,$(1),$(2)) \ +		-o $(call imgname,$(1),$(2))-factory-worldwide.bin +	-mkdapimg -s RT3052-AP-WNCE2001-3 -r NA -v 1.0.0.99 \ +		-i $(call sysupname,$(1),$(2)) \ +		-o $(call imgname,$(1),$(2))-factory-northamerica.bin +endef +BuildFirmware/WNCE2001/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3)) +Image/Build/Profile/WNCE2001=$(call BuildFirmware/WNCE2001/$(1),$(1),wnce2001,WNCE2001) +  Image/Build/Profile/WR512-3GN=$(call BuildFirmware/DefaultDualSize/$(1),$(1),wr512-3ng,WR512-3GN)  Image/Build/Profile/UR-326N4G=$(call BuildFirmware/Default4M/$(1),$(1),ur-326n4g,UR-326N4G) @@ -451,6 +463,7 @@ define Image/Build/Profile/Default  	$(call Image/Build/Profile/WL_330N3G,$(1))  	$(call Image/Build/Profile/WL341V3,$(1))  	$(call Image/Build/Profile/WL-351,$(1)) +	$(call Image/Build/Profile/WNCE2001,$(1))  	$(call Image/Build/Profile/WR512-3GN,$(1))  	$(call Image/Build/Profile/WR6202,$(1))  	$(call Image/Build/Profile/XDXRN502J,$(1)) | 
