This patch adds support for the Netgear EX2700 and builds an approriate sysupgrade image.
What's missing is the option to build a factory image flashable via the router's stock web interface, but this approach is hindered by the fact that u-boot operforms an additional integrity check, which expects a uImage header in the last 64 bytes of the "kernel" partition, which the bootloader expects to be 960k, a size exceeded by the standard OpenWrt kernel. Signed-off-by: Joseph C. Lehner <joseph.c.leh...@gmail.com> --- diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index c3a81a4..62478f0 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -121,6 +121,10 @@ dir-615-h1) dir-620-d1) set_wifi_led "$board:green:wifi" ;; +ex2700) + ucidef_set_led_default "power_r" "POWER (red)" "$board:red:power" "0" + set_wifi_led "$board:router:green" + ;; dir-810l|\ mzk-dp150n) ucidef_set_led_default "power" "power" "$board:green:power" "1" diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index dafa3e9..9853729 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -141,7 +141,8 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0" ;; - cf-wr800n) + cf-wr800n|\ + ex2700) ucidef_add_switch "switch0" \ "4:lan" "6t@eth0" ;; diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index acc500b..59c5965 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -34,6 +34,7 @@ get_status_led() { a5-v11|\ d105|\ dcs-930l-b1|\ + ex2700|\ hlk-rm04|\ mpr-a1|\ mpr-a2) diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 8025a40..aed8350 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -154,6 +154,9 @@ ramips_board_detect() { *"ESR-9753") name="esr-9753" ;; + *"EX2700") + name="ex2700"; + ;; *"F5D8235 v1") name="f5d8235-v1" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 39b5f94..78edd22 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -51,6 +51,7 @@ platform_check_image() { dir-810l|\ e1700|\ esr-9753|\ + ex2700|\ f7c027|\ firewrt|\ fonera20n|\ diff --git a/target/linux/ramips/dts/EX2700.dts b/target/linux/ramips/dts/EX2700.dts new file mode 100644 index 0000000..b63949a --- /dev/null +++ b/target/linux/ramips/dts/EX2700.dts @@ -0,0 +1,153 @@ +/* + * Device Tree file for the Netgear EX2700 + * + * Copyright (C) 2016 Joseph C. Lehner <joseph.c.leh...@gmail.com> + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +/include/ "mt7620a.dtsi" + +/ { + compatible = "ralink,mt7620a-soc"; + model = "Netgear EX2700"; + + chosen { + bootargs = "console=ttyS0,57600"; + }; + + palmbus@10000000 { + + gpio0: gpio@600 { + status = "okay"; + }; + + gpio1: gpio@638 { + status = "okay"; + }; + + spi@b00 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0 0>; + linux,modalias = "m25p80", "mx25l3205d"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + partition@40000 { + label = "firmware"; + reg = <0x40000 0x3b0000>; + }; + + art: partition@3f0000 { + label = "art"; + reg = <0x3f0000 0x10000>; + read-only; + }; + }; + }; + }; + + ethernet@10100000 { + mtd-mac-address = <&art 0x0>; + }; + + esw@10110000 { + mediatek,portmap = <0x10>; + mediatek,portdisable = <0x2f>; + }; + + wmac@10180000 { + ralink,mtd-eeprom = <&art 0x1000>; + }; + + pinctrl { + state_default: pinctrl0 { + default { + // spi refclk: pins 37, 38, 39 + // uartf: pins 8, 9, 10, 11, 12, 13, 14 + // i2c: pins 1, 2 + ralink,group = "i2c", "uartf", "spi refclk"; + ralink,function = "gpio"; + }; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_g { + label = "ex2700:green:power"; + gpios = <&gpio0 9 1>; + default-state = "on"; + }; + + power_r { + label = "ex2700:red:power"; + gpios = <&gpio0 11 1>; + }; + + device_g { + label = "ex2700:green:device"; + gpios = <&gpio0 13 1>; + }; + + device_r { + label = "ex2700:red:device"; + gpios = <&gpio0 10 1>; + }; + + router_g { + label = "ex2700:green:router"; + gpios = <&gpio0 12 1>; + }; + + router_r { + label = "ex2700:red:router"; + gpios = <&gpio0 14 1>; + }; + + wps { + label = "ex2700:green:wps"; + gpios = <&gpio1 15 1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&gpio0 1 1>; + linux,code = <0x198>; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 1>; + linux,code = <0x211>; + }; + }; +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 55b9cf4..543ff67 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -953,6 +953,7 @@ Image/Build/Profile/ArcherC20i=$(call BuildFirmware/Tplink/$(1),$(1),ArcherC20i, microwrt_mtd_size=16515072 Image/Build/Profile/MicroWRT=$(call BuildFirmware/CustomFlash/$(1),$(1),microwrt,MicroWRT,$(microwrt_mtd_size)) Image/Build/Profile/TINY-AC=$(call BuildFirmware/Default8M/$(1),$(1),tiny-ac,TINY-AC) +Image/Build/Profile/EX2700=$(call BuildFirmware/Default4M/$(1),$(1),ex2700,EX2700) ifeq ($(SUBTARGET),mt7620) @@ -992,6 +993,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/ArcherC20i,$(1)) $(call Image/Build/Profile/MicroWRT,$(1)) $(call Image/Build/Profile/TINY-AC,$(1)) + $(call Image/Build/Profile/EX2700,$(1)) endef endif diff --git a/target/linux/ramips/mt7620/profiles/netgear.mk b/target/linux/ramips/mt7620/profiles/netgear.mk new file mode 100644 index 0000000..590756a --- /dev/null +++ b/target/linux/ramips/mt7620/profiles/netgear.mk @@ -0,0 +1,16 @@ +# +# Copyright (C) 2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/EX2700 + NAME:=Netgear EX2700 + PACKAGES:=-kmod-usb-core -kmod-usb2 -kmod-usb-ohci -kmod-ledtrig-usbdev +endef + +define Profile/EX2700/Description + Support for Netgear EX2700 +endef +$(eval $(call Profile,EX2700)) _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel