From 24b74fd3f9cd7191a42916b312353ce57c149eaa Mon Sep 17 00:00:00 2001 From: "J. Scott Heppler" Date: Tue, 22 Sep 2020 19:30:45 -0700 Subject: [PATCH] ramips: add support for Linksys EA7300 v2 This submission relied heavily on the work of Santiago Rodriguez-Papa Specifications: * SoC: MediaTek MT7621A (880 MHz 2c/4t) * RAM: Winbond W632GG6MB-12 (256M DDR3-1600) * Flash: Winbond W29N01HVSINA (128M NAND) * Eth: MediaTek MT7621A (10/100/1000 Mbps x5) * Radio: MT7603E/MT7615N (2.4 GHz & 5 GHz) 4 antennae: 1 internal and 3 non-deatachable * USB: 3.0 (x1) * LEDs: White (x1 logo) Green (x6 eth + wps) Orange (x5, hardware-bound) * Buttons: Reset (x1) WPS (x1) Installation: Flash factory image through GUI. This might fail due to the A/B nature of this device. When flashing, OEM firmware writes over the non-booted partition. If booted from 'A', flashing over 'B' won't work. To get around this, you should flash the OEM image over itself. This will then boot the router from 'B' and allow you to flash OpenWRT without problems. Reverting to factory firmware: Hard-reset the router three times to force it to boot from 'B.' This is where the stock firmware resides. To remove any traces of OpenWRT from your router simply flash the OEM image at this point. Signed-off-by: J. Scott Heppler Signed-off-by: maurerr --- package/boot/uboot-envtools/files/ramips | 1 + .../ramips/dts/mt7621_linksys_ea7300-v2.dts | 55 +++++++++++++++++++ target/linux/ramips/image/mt7621.mk | 9 +++ .../mt7621/base-files/etc/board.d/01_leds | 1 + .../mt7621/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 1 + .../mt7621/base-files/etc/init.d/bootcount | 1 + .../mt7621/base-files/lib/upgrade/platform.sh | 1 + 8 files changed, 70 insertions(+) create mode 100644 target/linux/ramips/dts/mt7621_linksys_ea7300-v2.dts diff --git a/package/boot/uboot-envtools/files/ramips b/package/boot/uboot-envtools/files/ramips index 6ff04b26e8f..14c12bbf093 100644 --- a/package/boot/uboot-envtools/files/ramips +++ b/package/boot/uboot-envtools/files/ramips @@ -40,6 +40,7 @@ ravpower,rp-wd03) ubootenv_add_uci_config "/dev/mtd$idx" "0x4000" "0x1000" "0x1000" ;; linksys,ea7300-v1|\ +linksys,ea7300-v2|\ linksys,ea7500-v2|\ xiaomi,mi-router-ac2100|\ xiaomi,mir3p|\ diff --git a/target/linux/ramips/dts/mt7621_linksys_ea7300-v2.dts b/target/linux/ramips/dts/mt7621_linksys_ea7300-v2.dts new file mode 100644 index 00000000000..f7330d1c86b --- /dev/null +++ b/target/linux/ramips/dts/mt7621_linksys_ea7300-v2.dts @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "mt7621_linksys_ea7xxx.dtsi" + +/ { + compatible = "linksys,ea7300-v2", "mediatek,mt7621-soc"; + model = "Linksys EA7300 v2"; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + leds { + compatible = "gpio-leds"; + + wan_green { + label = "ea7300-v2:green:wan"; + gpios = <&gpio 7 GPIO_ACTIVE_LOW>; + }; + + lan1_green { + label = "ea7300-v2:green:lan1"; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + lan2_green { + label = "ea7300-v2:green:lan2"; + gpios = <&gpio 18 GPIO_ACTIVE_LOW>; + }; + + lan3_green { + label = "ea7300-v2:green:lan3"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + }; + + lan4_green { + label = "ea7300-v2:green:lan4"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + + led_power: power { + label = "ea7300-v2:white:power"; + gpios = <&gpio 10 GPIO_ACTIVE_HIGH>; + }; + + wps { + label = "ea7300-v2:green:wps"; + gpios = <&gpio 5 GPIO_ACTIVE_HIGH>; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 78629563ee5..274d9f7158f 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -655,6 +655,15 @@ define Device/linksys_ea7300-v1 endef TARGET_DEVICES += linksys_ea7300-v1 +define Device/linksys_ea7300-v2 + $(Device/linksys_ea7xxx) + DEVICE_MODEL := EA7300 + DEVICE_VARIANT := v2 + LINKSYS_HWNAME := EA7300v2 + DEVICE_PACKAGES += kmod-mt7603 +endef +TARGET_DEVICES += linksys_ea7300-v2 + define Device/linksys_ea7500-v2 $(Device/linksys_ea7xxx) DEVICE_MODEL := EA7500 diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds index c5cd4468093..8c3be541b09 100755 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds @@ -42,6 +42,7 @@ gnubee,gb-pc2) ucidef_set_led_netdev "lan2" "lan2" "$boardname:green:lan2" "lan2" ;; linksys,ea7300-v1|\ +linksys,ea7300-v2|\ linksys,ea7500-v2) ucidef_set_led_netdev "lan1" "lan1 link" "$boardname:green:lan1" "lan1" "link" ucidef_set_led_netdev "lan2" "lan2 link" "$boardname:green:lan2" "lan2" "link" diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index 1c1d0e4ab7d..26063470e87 100755 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -105,6 +105,7 @@ ramips_setup_macs() label_mac=$wan_mac ;; linksys,ea7300-v1|\ + linksys,ea7300-v2|\ linksys,ea7500-v2) lan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr) wan_mac=$lan_mac diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac index 3f7fdc1a79a..b7a41f038c5 100644 --- a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -11,6 +11,7 @@ board=$(board_name) case "$board" in linksys,ea7300-v1|\ + linksys,ea7300-v2|\ linksys,ea7500-v2) hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr) [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress diff --git a/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount b/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount index b17161a50a5..7ef0053e679 100755 --- a/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount +++ b/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount @@ -9,6 +9,7 @@ boot() { echo -e "bootcount\nbootchanged\n" | /usr/sbin/fw_setenv -s - ;; linksys,ea7300-v1|\ + linksys,ea7300-v2|\ linksys,ea7500-v2) mtd resetbc s_env || true ;; diff --git a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh index b1feea7ae60..442e78df3ca 100755 --- a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh @@ -49,6 +49,7 @@ platform_do_upgrade() { dlink,dir-2660-a1|\ hiwifi,hc5962|\ linksys,ea7300-v1|\ + linksys,ea7300-v2|\ linksys,ea7500-v2|\ netgear,r6220|\ netgear,r6260|\