From 43869ba1b27ba99da612e6afc0a7c7a3f30fec1a Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 26 Feb 2016 07:46:18 +0000 Subject: [PATCH] ramips: Backport support for Netgear EX2700 This patch adds support for the Netgear EX2700 in Chaos Calmer and builds approriate -sysupgrade and -factory images. Signed-off-by: Joseph C. Lehner git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@48792 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ramips/base-files/etc/board.d/01_leds | 4 + .../linux/ramips/base-files/etc/board.d/02_network | 3 +- target/linux/ramips/base-files/etc/diag.sh | 3 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/EX2700.dts | 148 +++++++++++++++++++++ target/linux/ramips/image/Makefile | 28 ++++ target/linux/ramips/image/ex2700-fakeroot.uImage | Bin 0 -> 64 bytes target/linux/ramips/mt7620/profiles/netgear.mk | 16 +++ 9 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 target/linux/ramips/dts/EX2700.dts create mode 100644 target/linux/ramips/image/ex2700-fakeroot.uImage create mode 100644 target/linux/ramips/mt7620/profiles/netgear.mk 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 5946f98bdb..5327d00629 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -114,6 +114,10 @@ case $board in esr-9753) set_wifi_led "rt2800pci-phy0::radio" ;; + ex2700) + ucidef_set_led_default "power_r" "POWER (red)" "ex2700:red:power" "0" + set_wifi_led "ex2700:green:router" + ;; f5d8235-v1) set_usb_led "f5d8235-v1:blue:storage" ;; 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 d7d016befe..a78912dbc9 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -113,7 +113,8 @@ ramips_setup_interfaces() ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t" ;; - cf-wr800n) + cf-wr800n|\ + ex2700) ucidef_set_interface_lan "eth0.1" ucidef_add_switch "switch0" "1" "1" ucidef_add_switch_vlan "switch0" "1" "4 6t" diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index a7e2501e09..6474ebdde3 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -63,6 +63,9 @@ get_status_led() { esr-9753) status_led="esr-9753:orange:power" ;; + ex2700) + status_led="ex2700:red:power" + ;; f5d8235-v2) status_led="f5d8235v2:blue:router" ;; diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 4141ddd68b..8dc05b060c 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -223,6 +223,9 @@ ramips_board_detect() { *"Netgear WNCE2001") name="wnce2001" ;; + *"Netgear EX2700") + name="ex2700" + ;; *"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 2f64d8c0c4..a3d0175dcf 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -49,6 +49,7 @@ platform_check_image() { dir-620-d1 | \ dir-810l | \ e1700 | \ + ex2700 |\ esr-9753 | \ f7c027 | \ fonera20n | \ diff --git a/target/linux/ramips/dts/EX2700.dts b/target/linux/ramips/dts/EX2700.dts new file mode 100644 index 0000000000..da98bd8ef1 --- /dev/null +++ b/target/linux/ramips/dts/EX2700.dts @@ -0,0 +1,148 @@ +/* + * Device Tree file for the Netgear EX2700 + * + * Copyright (C) 2016 Joseph C. Lehner + * + * 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 = "mx25l3205d"; + 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>; + }; + + 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 0d762baad2..c4f4028cb9 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -854,7 +854,34 @@ endif # MT7620A Profiles # +# $(1): (ignored) +# $(2): lowercase board name +# $(3): uppercase board name (must match DTS filename w/o extension) +# $(4): erase block size +# $(5): hardware id for mkdniimg +# $(6): maximum image size +define BuildFirmware/Netgear/squashfs + $(call PatchKernelLzmaDtb,$(2),$(3)) + # Pad kernel to eraseblock boundary, minus 2 uImage headers (=128 bytes): + # bs = (eraseblock * (1 + (128 + kernelsize)/eraseblock)) - 128 + dd if=$(KDIR)/vmlinux-$(2).bin.lzma \ + of=$(KDIR)/vmlinux-$(2).bin.lzma.tmp \ + bs=`expr \( $(4) \* \( 1 + \( 128 + \`wc -c < $(KDIR)/vmlinux-$(2).bin.lzma\` \) / $(4) \) \) - 128` \ + count=1 conv=sync + + $(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma.tmp,$(KDIR)/vmlinux-$(2).uImage) + cat ex2700-fakeroot.uImage >> $(KDIR)/vmlinux-$(2).uImage + $(call MkImageSysupgrade/squashfs,squashfs,$(2),$(6)) + + $(STAGING_DIR_HOST)/bin/mkdniimg \ + -B $(3) -H $(5) -v OpenWrt \ + -i $(call imgname,squashfs,$(2))-sysupgrade.bin \ + -o $(call imgname,squashfs,$(2))-factory.bin +endef + Image/Build/Profile/E1700=$(call BuildFirmware/UMedia/$(1),$(1),e1700,E1700,0x013326) +ex2700_mtd_size=3866624 +Image/Build/Profile/EX2700=$(call BuildFirmware/Netgear/$(1),$(1),ex2700,EX2700,65536,29764623+4+0+32+2x2+0,$(ex2700_mtd_size)) Image/Build/Profile/MT7620a=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a,MT7620a) Image/Build/Profile/MT7620a_MT7610e=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_mt7610e,MT7620a_MT7610e) Image/Build/Profile/MT7620a_MT7530=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_mt7530,MT7620a_MT7530) @@ -893,6 +920,7 @@ Image/Build/Profile/MicroWRT=$(call BuildFirmware/CustomFlash/$(1),$(1),microwrt ifeq ($(SUBTARGET),mt7620) define Image/Build/Profile/Default $(call Image/Build/Profile/E1700,$(1)) + $(call Image/Build/Profile/EX2700,$(1)) $(call Image/Build/Profile/MT7620a,$(1)) $(call Image/Build/Profile/MT7620a_MT7610e,$(1)) $(call Image/Build/Profile/MT7620a_MT7530,$(1)) diff --git a/target/linux/ramips/image/ex2700-fakeroot.uImage b/target/linux/ramips/image/ex2700-fakeroot.uImage new file mode 100644 index 0000000000000000000000000000000000000000..340f736141e84e425fe66b372eef80b217146df5 GIT binary patch literal 64 ocmY#ql?+qLV?W4%1+cQRGx!&z=7krPD5NE3rxxYsm!K;H01lrBPXGV_ literal 0 HcmV?d00001 diff --git a/target/linux/ramips/mt7620/profiles/netgear.mk b/target/linux/ramips/mt7620/profiles/netgear.mk new file mode 100644 index 0000000000..d1b073abc2 --- /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)) -- 2.11.0