aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Lewontin <alex.c.lewontin@gmail.com>2020-02-21 15:56:44 -0500
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>2020-06-27 00:29:45 +0200
commitbd49f2c9848ec10c7c7b41eaa14ac6c26e2bc977 (patch)
treec4997a13f078f3a920815413a67ee1807c7a7e61
parentcaf09f2b842d31b70815e1281098bf895b067714 (diff)
downloadupstream-bd49f2c9848ec10c7c7b41eaa14ac6c26e2bc977.tar.gz
upstream-bd49f2c9848ec10c7c7b41eaa14ac6c26e2bc977.tar.bz2
upstream-bd49f2c9848ec10c7c7b41eaa14ac6c26e2bc977.zip
ramips: add support for Netgear R6080
This adds support for the Netgear R6080, aka Netgear AC1000. The R6080 has almost the same hardware as the Netgear R6120, aka Netgear AC1200, but it lacks the USB port, has only 8 MiB flash and uses a different SERCOMM_HWID. Specification: SoC: MediaTek MT7628 (580 MHz) Flash: 8 MiB RAM: 64 MiB Wireless: 2.4Ghz (builtin) and 5Ghz (MT7612E) LAN speed: 10/100 LAN ports: 4 WAN speed: 10/100 WAN ports: 1 UART (57600 8N1) on PCB Installation: Flashing OpenWRT from stock firmware requires nmrpflash. Use an ethernet cable to connect to LAN port 1 of the R6080, and power the R6080 off. From the connected workstation, run `nmrpflash -i eth0 -f openwrt-ramips-mt76x8-netgear_r6080-squashfs-factory.img`, replacing eth0 with the appropriate interface (can be identified by running `nmrpflash -L`). Then power on the R6080. After flashing has finished, power cycle the R6080, and it will boot into OpenWRT. Once OpenWRT has been installed, subsequent flashes can use the web interface and sysupgrade files. Signed-off-by: Alex Lewontin <alex.c.lewontin@gmail.com> [rebase and adjust for 5.4] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
-rw-r--r--target/linux/ramips/dts/mt7628an_netgear_r6080.dts148
-rw-r--r--target/linux/ramips/image/mt76x8.mk19
-rwxr-xr-xtarget/linux/ramips/mt76x8/base-files/etc/board.d/01_leds1
-rwxr-xr-xtarget/linux/ramips/mt76x8/base-files/etc/board.d/02_network2
4 files changed, 170 insertions, 0 deletions
diff --git a/target/linux/ramips/dts/mt7628an_netgear_r6080.dts b/target/linux/ramips/dts/mt7628an_netgear_r6080.dts
new file mode 100644
index 0000000000..5bca023c71
--- /dev/null
+++ b/target/linux/ramips/dts/mt7628an_netgear_r6080.dts
@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7628an.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "netgear,r6080", "mediatek,mt7628an-soc";
+ model = "Netgear R6080";
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ label-mac-device = &ethernet;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ lan {
+ label = "r6080:green:lan";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ };
+
+ led_power: power {
+ label = "r6080:green:power";
+ gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g_green {
+ label = "r6080:green:wlan2g";
+ gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+
+ wlan2g_orange {
+ label = "r6080:orange:wlan2g";
+ gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+ };
+
+ wan_green {
+ label = "r6080:green:wan";
+ gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+ };
+
+ wan_orange {
+ label = "r6080:orange:wan";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&state_default {
+ gpio {
+ groups = "p0led_an", "p1led_an", "p2led_an", "p3led_an",
+ "p4led_an", "wdt", "wled_an";
+ function = "gpio";
+ };
+};
+
+&spi0 {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <86000000>;
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "nvram";
+ reg = <0x60000 0x30000>;
+ read-only;
+ };
+
+ partition@90000 {
+ compatible = "denx,uimage";
+ label = "firmware";
+ reg = <0x90000 0x760000>;
+ };
+
+ partition@7f0000 {
+ label = "reserved";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&wmac {
+ status = "okay";
+};
+
+&ethernet {
+ mtd-mac-address = <&factory 0x4>;
+};
+
+&pcie {
+ status = "okay";
+};
+
+&pcie0 {
+ wifi@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ ieee80211-freq-limit = <5000000 6000000>;
+ };
+};
+
+&ehci {
+ status = "disabled";
+};
+
+&ohci {
+ status = "disabled";
+};
diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk
index f3ae384a23..a18afefd74 100644
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -189,6 +189,25 @@ define Device/mercury_mac1200r-v2
endef
TARGET_DEVICES += mercury_mac1200r-v2
+define Device/netgear_r6080
+ BLOCKSIZE := 64k
+ IMAGE_SIZE := 7552k
+ DEVICE_VENDOR := NETGEAR
+ DEVICE_MODEL := R6080
+ DEVICE_PACKAGES := kmod-mt76x2
+ SERCOMM_HWID := CFR
+ SERCOMM_HWVER := A001
+ SERCOMM_SWVER := 0x0040
+ IMAGES += factory.img
+ IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \
+ pad-rootfs
+ IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size
+ IMAGE/factory.img := pad-extra 576k | $$(IMAGE/default) | \
+ pad-to $$$$(BLOCKSIZE) | sercom-footer | pad-to 128 | zip R6080.bin | \
+ sercom-seal
+endef
+TARGET_DEVICES += netgear_r6080
+
define Device/netgear_r6120
BLOCKSIZE := 64k
IMAGE_SIZE := 15744k
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
index 0837f9d003..fc582becb9 100755
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
@@ -23,6 +23,7 @@ alfa-network,awusfree1)
asus,rt-n10p-v3|\
asus,rt-n11p-b1|\
asus,rt-n12-vp-b1|\
+netgear,r6080|\
netgear,r6120)
ucidef_set_led_switch "lan" "lan" "$boardname:green:lan" "switch0" "0xf"
ucidef_set_led_switch "wan" "wan" "$boardname:green:wan" "switch0" "0x10"
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
index 398b5e88c7..2b4ca0926f 100755
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -92,6 +92,7 @@ ramips_setup_interfaces()
ucidef_add_switch "switch0" \
"1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
;;
+ netgear,r6080|\
netgear,r6120)
ucidef_add_switch "switch0" \
"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
@@ -146,6 +147,7 @@ ramips_setup_macs()
label_mac=$(mtd_get_mac_binary factory 0x4)
;;
duzun,dm06|\
+ netgear,r6080|\
netgear,r6120|\
wrtnode,wrtnode2p|\
wrtnode,wrtnode2r|\