[openwrt/openwrt] ramips: add support for Linksys EA7300 v1
LEDE Commits
lede-commits at lists.infradead.org
Thu Jul 16 07:40:09 EDT 2020
adrian pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/ed087cba8a8e41f76f9487caa34eff926ea8a065
commit ed087cba8a8e41f76f9487caa34eff926ea8a065
Author: Santiago Rodriguez-Papa <contact at rodsan.dev>
AuthorDate: Wed Jul 15 20:24:43 2020 -0400
ramips: add support for Linksys EA7300 v1
Specifications:
* SoC: MediaTek MT7621A (880 MHz 2c/4t)
* RAM: Nanya NT5CC128M16IP-DIT (256M DDR3-1600)
* Flash: Macronix MX30LF1G18AC-TI (128M NAND)
* Eth: MediaTek MT7621A (10/100/1000 Mbps x5)
* Radio: 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)
Everything works! Been running it for a couple weeks now and haven't had
any problems. Please let me know if you run into any.
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: Santiago Rodriguez-Papa <contact at rodsan.dev>
[use v1 only, minor DTS adjustments, use LINKSYS_HWNAME and add it to
DEVICE_VARS, wrap DEVICE_PACKAGES, adjust commit message/title]
Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
package/boot/uboot-envtools/files/ramips | 1 +
.../linux/ramips/dts/mt7621_linksys_ea7300-v1.dts | 55 ++++++++
.../linux/ramips/dts/mt7621_linksys_ea7500-v2.dts | 154 +--------------------
...ys_ea7500-v2.dts => mt7621_linksys_ea7xxx.dtsi} | 50 -------
target/linux/ramips/image/mt7621.mk | 26 +++-
.../ramips/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 +
.../ramips/mt7621/base-files/etc/init.d/bootcount | 1 +
.../mt7621/base-files/lib/upgrade/platform.sh | 1 +
10 files changed, 82 insertions(+), 209 deletions(-)
diff --git a/package/boot/uboot-envtools/files/ramips b/package/boot/uboot-envtools/files/ramips
index 701f051f77..80a91f0f45 100644
--- a/package/boot/uboot-envtools/files/ramips
+++ b/package/boot/uboot-envtools/files/ramips
@@ -33,6 +33,7 @@ xiaomi,miwifi-nano|\
zbtlink,zbt-wg2626)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x10000"
;;
+linksys,ea7300-v1|\
linksys,ea7500-v2|\
xiaomi,mi-router-ac2100|\
xiaomi,mir3p|\
diff --git a/target/linux/ramips/dts/mt7621_linksys_ea7300-v1.dts b/target/linux/ramips/dts/mt7621_linksys_ea7300-v1.dts
new file mode 100644
index 0000000000..67eb31768f
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_linksys_ea7300-v1.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-v1", "mediatek,mt7621-soc";
+ model = "Linksys EA7300 v1";
+
+ 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-v1:green:wan";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+
+ lan1_green {
+ label = "ea7300-v1:green:lan1";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+
+ lan2_green {
+ label = "ea7300-v1:green:lan2";
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+ };
+
+ lan3_green {
+ label = "ea7300-v1:green:lan3";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ };
+
+ lan4_green {
+ label = "ea7300-v1:green:lan4";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+
+ led_power: power {
+ label = "ea7300-v1:white:power";
+ gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
+ };
+
+ wps {
+ label = "ea7300-v1:green:wps";
+ gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
diff --git a/target/linux/ramips/dts/mt7621_linksys_ea7500-v2.dts b/target/linux/ramips/dts/mt7621_linksys_ea7500-v2.dts
index ac13bdd369..bc454f3910 100644
--- a/target/linux/ramips/dts/mt7621_linksys_ea7500-v2.dts
+++ b/target/linux/ramips/dts/mt7621_linksys_ea7500-v2.dts
@@ -1,10 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
-#include "mt7621.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
+#include "mt7621_linksys_ea7xxx.dtsi"
/ {
compatible = "linksys,ea7500-v2", "mediatek,mt7621-soc";
@@ -17,10 +14,6 @@
led-upgrade = &led_power;
};
- chosen {
- bootargs = "console=ttyS0,115200";
- };
-
leds {
compatible = "gpio-leds";
@@ -59,149 +52,4 @@
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
};
};
-
- keys {
- compatible = "gpio-keys";
-
- wps {
- label = "wps";
- gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
- linux,code = <KEY_WPS_BUTTON>;
- };
-
- reset {
- label = "reset";
- gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
- linux,code = <KEY_RESTART>;
- };
- };
-};
-
-&nand {
- status = "okay";
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition at 0 {
- label = "boot";
- reg = <0x0 0x80000>;
- read-only;
- };
-
- partition at 80000 {
- label = "u_env";
- reg = <0x80000 0x40000>;
- read-only;
- };
-
- factory: partition at c0000 {
- label = "factory";
- reg = <0xc0000 0x40000>;
- read-only;
- };
-
- partition at 100000 {
- label = "s_env";
- reg = <0x100000 0x40000>;
- };
-
- partition at 140000 {
- label = "devinfo";
- reg = <0x140000 0x40000>;
- read-only;
- };
-
- partition at 180000 {
- label = "kernel";
- reg = <0x180000 0x400000>;
- };
-
- partition at 580000 {
- label = "ubi";
- reg = <0x580000 0x2400000>;
- };
-
- partition at 2980000 {
- label = "alt_kernel";
- reg = <0x2980000 0x400000>;
- read-only;
- };
-
- partition at 2d80000 {
- label = "alt_rootfs";
- reg = <0x2d80000 0x2400000>;
- read-only;
- };
-
- partition at 5180000 {
- label = "sysdiag";
- reg = <0x5180000 0x100000>;
- read-only;
- };
-
- partition at 5280000 {
- label = "syscfg";
- reg = <0x5280000 0x2d00000>;
- read-only;
- };
- };
-};
-
-&state_default {
- gpio {
- groups = "i2c", "uart2", "uart3", "jtag", "wdt";
- function = "gpio";
- };
-};
-
-&pcie {
- status = "okay";
-};
-
-&pcie0 {
- mt76 at 0,0 {
- compatible = "mediatek,mt76";
- reg = <0x0000 0 0 0 0>;
- mediatek,mtd-eeprom = <&factory 0x0000>;
- };
-};
-
-&pcie1 {
- mt76 at 0,0 {
- compatible = "mediatek,mt76";
- reg = <0x0000 0 0 0 0>;
- mediatek,mtd-eeprom = <&factory 0x8000>;
- };
-};
-
-&switch0 {
- ports {
- port at 0 {
- status = "okay";
- label = "wan";
- };
-
- port at 1 {
- status = "okay";
- label = "lan1";
- };
-
- port at 2 {
- status = "okay";
- label = "lan2";
- };
-
- port at 3 {
- status = "okay";
- label = "lan3";
- };
-
- port at 4 {
- status = "okay";
- label = "lan4";
- };
- };
};
diff --git a/target/linux/ramips/dts/mt7621_linksys_ea7500-v2.dts b/target/linux/ramips/dts/mt7621_linksys_ea7xxx.dtsi
similarity index 70%
copy from target/linux/ramips/dts/mt7621_linksys_ea7500-v2.dts
copy to target/linux/ramips/dts/mt7621_linksys_ea7xxx.dtsi
index ac13bdd369..46b1c9cdfc 100644
--- a/target/linux/ramips/dts/mt7621_linksys_ea7500-v2.dts
+++ b/target/linux/ramips/dts/mt7621_linksys_ea7xxx.dtsi
@@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-/dts-v1/;
#include "mt7621.dtsi"
@@ -7,59 +6,10 @@
#include <dt-bindings/input/input.h>
/ {
- compatible = "linksys,ea7500-v2", "mediatek,mt7621-soc";
- model = "Linksys EA7500 v2";
-
- aliases {
- led-boot = &led_power;
- led-failsafe = &led_power;
- led-running = &led_power;
- led-upgrade = &led_power;
- };
-
chosen {
bootargs = "console=ttyS0,115200";
};
- leds {
- compatible = "gpio-leds";
-
- wan_green {
- label = "ea7500-v2:green:wan";
- gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
- };
-
- lan1_green {
- label = "ea7500-v2:green:lan1";
- gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
- };
-
- lan2_green {
- label = "ea7500-v2:green:lan2";
- gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
- };
-
- lan3_green {
- label = "ea7500-v2:green:lan3";
- gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
- };
-
- lan4_green {
- label = "ea7500-v2:green:lan4";
- gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
- };
-
- led_power: power {
- label = "ea7500-v2:white:power";
- gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
- };
-
- wps {
- label = "ea7500-v2:green:wps";
- gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
- };
- };
-
keys {
compatible = "gpio-keys";
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 229897ffb5..e97d2315f1 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -7,7 +7,7 @@ include ./common-tp-link.mk
DEFAULT_SOC := mt7621
KERNEL_DTB += -d21
-DEVICE_VARS += UIMAGE_MAGIC ELECOM_HWNAME
+DEVICE_VARS += UIMAGE_MAGIC ELECOM_HWNAME LINKSYS_HWNAME
# The OEM webinterface expects an kernel with initramfs which has the uImage
# header field ih_name.
@@ -539,21 +539,35 @@ define Device/lenovo_newifi-d1
endef
TARGET_DEVICES += lenovo_newifi-d1
-define Device/linksys_ea7500-v2
+define Device/linksys_ea7xxx
$(Device/uimage-lzma-loader)
BLOCKSIZE := 128k
PAGESIZE := 2048
KERNEL_SIZE := 4096k
IMAGE_SIZE := 36864k
DEVICE_VENDOR := Linksys
- DEVICE_MODEL := EA7500
- DEVICE_VARIANT := v2
- DEVICE_PACKAGES := kmod-usb3 kmod-mt7615e kmod-mt7615-firmware wpad-basic uboot-envtools
+ DEVICE_PACKAGES := kmod-usb3 kmod-mt7615e kmod-mt7615-firmware wpad-basic \
+ uboot-envtools
UBINIZE_OPTS := -E 5
IMAGES := sysupgrade.bin factory.bin
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | check-size
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
- append-ubi | check-size | linksys-image type=EA7500v2
+ append-ubi | check-size | linksys-image type=$$$$(LINKSYS_HWNAME)
+endef
+
+define Device/linksys_ea7300-v1
+ $(Device/linksys_ea7xxx)
+ DEVICE_MODEL := EA7300
+ DEVICE_VARIANT := v1
+ LINKSYS_HWNAME := EA7300
+endef
+TARGET_DEVICES += linksys_ea7300-v1
+
+define Device/linksys_ea7500-v2
+ $(Device/linksys_ea7xxx)
+ DEVICE_MODEL := EA7500
+ DEVICE_VARIANT := v2
+ LINKSYS_HWNAME := EA7500v2
endef
TARGET_DEVICES += linksys_ea7500-v2
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 02f264fb42..a44b1a09d0 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
@@ -35,6 +35,7 @@ gnubee,gb-pc2)
ucidef_set_led_netdev "lan1" "lan1" "$boardname:green:lan1" "lan1"
ucidef_set_led_netdev "lan2" "lan2" "$boardname:green:lan2" "lan2"
;;
+linksys,ea7300-v1|\
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 ec05def88f..9c32f59ab8 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
@@ -100,6 +100,7 @@ ramips_setup_macs()
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
label_mac=$wan_mac
;;
+ linksys,ea7300-v1|\
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 e05078648b..3f7fdc1a79 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
@@ -10,6 +10,7 @@ PHYNBR=${DEVPATH##*/phy}
board=$(board_name)
case "$board" in
+ linksys,ea7300-v1|\
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 e92912bbcc..b17161a50a 100755
--- a/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount
+++ b/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount
@@ -8,6 +8,7 @@ boot() {
[ -n "$(fw_printenv bootcount bootchanged 2>/dev/null)" ] &&\
echo -e "bootcount\nbootchanged\n" | /usr/sbin/fw_setenv -s -
;;
+ linksys,ea7300-v1|\
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 a9a0bd40b9..01db733c98 100755
--- a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh
@@ -45,6 +45,7 @@ platform_do_upgrade() {
asus,rt-ac65p|\
asus,rt-ac85p|\
hiwifi,hc5962|\
+ linksys,ea7300-v1|\
linksys,ea7500-v2|\
netgear,r6220|\
netgear,r6260|\
More information about the lede-commits
mailing list