[openwrt/openwrt] ramips: add support for ASUS RT-AC1200-V2

LEDE Commits lede-commits at lists.infradead.org
Tue Apr 19 14:51:23 PDT 2022


hauke pushed a commit to openwrt/openwrt.git, branch openwrt-22.03:
https://git.openwrt.org/5d91b5a6368f14f559a283d757e4cda57261ab20

commit 5d91b5a6368f14f559a283d757e4cda57261ab20
Author: Tamas Balogh <tamasbalogh at hotmail.com>
AuthorDate: Fri Apr 15 11:11:01 2022 +0200

    ramips: add support for ASUS RT-AC1200-V2
    
    Hardware specifications:
    SoC: MT7628DAN MIPS_24KEc at 580MHz 2.4G-n 2x2
    WiFi: MT7613BEN 5G-ac 160MHz 2x2
    Switch: 4x100M built-in SoC
    Flash: 16MB W25Q128JVSQ SPI-NOR
    DRAM: 64MB built-in SoC
    
    MAC addresses as verified by OEM firmware:
    use address source
    Lan/Wan/2G *:60 factory 0x4 (label)
    5G *:64 factory 0x8000
    
    Serial console: 57600,8n1
    
    Installation:
    
    Asus windows recovery tool:
    
    install the Asus firmware restoration utility
    unplug the router, hold the reset button while powering it on
    release when the power LED flashes slowly
    specify a static IP on your computer:
    IP address: 192.168.1.75
    Subnet mask 255.255.255.0
    start the Asus firmware restoration utility, specify the factory image
    and press upload
    do NOT power off the device after OpenWrt has booted until the LED flashing
    after flashing OpenWrt, there will be first no 5GHz Wifi available probably,
    wait until blinking finishes and do a reboot
    TFTP Recovery method:
    
    set computer to a static ip, 192.168.1.75
    connect computer to the LAN 1 port of the router
    hold the reset button while powering on the router for a few seconds
    send firmware image using a tftp client; i.e from linux:
    $ tftp
    tftp> binary
    tftp> connect 192.168.1.1
    tftp> put factory.bin
    tftp> quit
    do NOT power off the device after OpenWrt has booted until the LED flashing
    after flashing OpenWrt, there will be first no 5GHz Wifi available probably,
    wait until blinking finishes and do a reboot
    
    Signed-off-by: Tamas Balogh <tamasbalogh at hotmail.com>
    (cherry picked from commit a4bf562aa71ad1e3dcffa392b79110d803a93f11)
---
 .../ramips/dts/mt7628an_asus_rt-ac1200-v2.dts      |  32 +++++
 .../linux/ramips/dts/mt7628an_asus_rt-ac1200.dts   | 131 +--------------------
 ..._rt-ac1200.dts => mt7628an_asus_rt-ac1200.dtsi} |  69 ++++-------
 target/linux/ramips/image/mt76x8.mk                |  13 ++
 .../mt76x8/base-files/etc/board.d/02_network       |   5 +-
 5 files changed, 75 insertions(+), 175 deletions(-)

diff --git a/target/linux/ramips/dts/mt7628an_asus_rt-ac1200-v2.dts b/target/linux/ramips/dts/mt7628an_asus_rt-ac1200-v2.dts
new file mode 100644
index 0000000000..2dd38fba4b
--- /dev/null
+++ b/target/linux/ramips/dts/mt7628an_asus_rt-ac1200-v2.dts
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7628an_asus_rt-ac1200.dtsi"
+
+/ {
+	compatible = "asus,rt-ac1200-v2", "mediatek,mt7628an-soc";
+	model = "ASUS RT-AC1200 V2";
+};
+
+&state_default {
+	spis {
+		groups = "spis";
+		function = "spis";
+	};
+
+	gpio {
+		groups = "refclk", "i2c", "wled_an";
+		function = "gpio";
+	};
+};
+
+&usbphy {
+	status = "disabled";
+};
+
+&ehci {
+	status = "disabled";
+};
+
+&ohci {
+	status = "disabled";
+};
diff --git a/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dts b/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dts
index dbb8302b85..abb86456da 100644
--- a/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dts
+++ b/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dts
@@ -2,52 +2,15 @@
 // Copyright (c) 2022 Ray Wang
 // Copyright (c) 2022 Ivan Pavlov
 
-#include "mt7628an.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
+#include "mt7628an_asus_rt-ac1200.dtsi"
 
 / {
 	compatible = "asus,rt-ac1200", "mediatek,mt7628an-soc";
 	model = "Asus RT-AC1200";
 
-	aliases {
-		led-boot = &led_power;
-		led-failsafe = &led_power;
-		led-running = &led_power;
-		led-upgrade = &led_power;
-	};
-
-	keys {
-		compatible = "gpio-keys";
-
-		reset {
-			label = "reset";
-			gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RESTART>;
-		};
-
-		wps {
-			label = "wps";
-			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_WPS_BUTTON>;
-		};
-	};
-
 	leds {
 		compatible = "gpio-leds";
 
-		led_power: power {
-			label = "blue:power";
-			gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
-		};
-
-		wlan2g {
-			label = "blue:wlan2g";
-			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy0tpt";
-		};
-
 		usb {
 			label = "blue:usb";
 			gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
@@ -55,98 +18,6 @@
 			linux,default-trigger = "usbport";
 		};
 	};
-
-	gpio-export {
-		compatible = "gpio-export";
-		#size-cells = <0>;
-
-		led-all {
-			gpio-export,name = "led_all";
-			gpio-export,output = <0>;
-			gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
-		};
-	};
-};
-
-&spi0 {
-	status = "okay";
-
-	flash at 0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <40000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "bootloader";
-				reg = <0x0 0x30000>;
-				read-only;
-			};
-
-			partition at 30000 {
-				label = "nvram";
-				reg = <0x30000 0x10000>;
-				read-only;
-			};
-
-			factory: partition at 40000 {
-				label = "factory";
-				reg = <0x40000 0x10000>;
-				read-only;
-
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
-
-				macaddr_factory_28: macaddr at 28 {
-					reg = <0x28 0x6>;
-				};
-			};
-
-			partition at 50000 {
-				compatible = "denx,uimage";
-				label = "firmware";
-				reg = <0x50000 0xfb0000>;
-			};
-		};
-	};
-};
-
-&ethernet {
-	nvmem-cells = <&macaddr_factory_28>;
-	nvmem-cell-names = "mac-address";
-};
-
-&esw {
-	mediatek,portmap = <0x3e>;
-};
-
-&wmac {
-	status = "okay";
-
-	mediatek,mtd-eeprom = <&factory 0x0>;
-};
-
-&pcie {
-	status = "okay";
-};
-
-&pcie0 {
-	wifi at 0,0 {
-		compatible = "mediatek,mt76";
-		reg = <0x0000 0 0 0 0>;
-		mediatek,mtd-eeprom = <&factory 0x8000>;
-		ieee80211-freq-limit = <5000000 6000000>;
-
-		led {
-			led-sources = <2>;
-			led-active-low;
-		};
-	};
 };
 
 &state_default {
diff --git a/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dts b/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dtsi
similarity index 63%
copy from target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dts
copy to target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dtsi
index dbb8302b85..d8d4245447 100644
--- a/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dts
+++ b/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dtsi
@@ -1,6 +1,4 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-// Copyright (c) 2022 Ray Wang
-// Copyright (c) 2022 Ivan Pavlov
 
 #include "mt7628an.dtsi"
 
@@ -8,14 +6,12 @@
 #include <dt-bindings/input/input.h>
 
 / {
-	compatible = "asus,rt-ac1200", "mediatek,mt7628an-soc";
-	model = "Asus RT-AC1200";
-
 	aliases {
-		led-boot = &led_power;
-		led-failsafe = &led_power;
-		led-running = &led_power;
-		led-upgrade = &led_power;
+		led-boot = &led_wps;
+		led-failsafe = &led_wps;
+		led-running = &led_wps;
+		led-upgrade = &led_wps;
+		label-mac-device = ðernet;
 	};
 
 	keys {
@@ -37,8 +33,8 @@
 	leds {
 		compatible = "gpio-leds";
 
-		led_power: power {
-			label = "blue:power";
+		led_wps: wps {
+			label = "blue:wps";
 			gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
 		};
 
@@ -47,24 +43,6 @@
 			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
 			linux,default-trigger = "phy0tpt";
 		};
-
-		usb {
-			label = "blue:usb";
-			gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
-			trigger-sources = <&ohci_port1>, <&ehci_port1>;
-			linux,default-trigger = "usbport";
-		};
-	};
-
-	gpio-export {
-		compatible = "gpio-export";
-		#size-cells = <0>;
-
-		led-all {
-			gpio-export,name = "led_all";
-			gpio-export,output = <0>;
-			gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
-		};
 	};
 };
 
@@ -74,21 +52,22 @@
 	flash at 0 {
 		compatible = "jedec,spi-nor";
 		reg = <0>;
-		spi-max-frequency = <40000000>;
+		spi-max-frequency = <58000000>;
+		m25p,fast-read;
 
-		partitions {
+		partitions: partitions {
 			compatible = "fixed-partitions";
 			#address-cells = <1>;
 			#size-cells = <1>;
 
 			partition at 0 {
-				label = "bootloader";
+				label = "u-boot";
 				reg = <0x0 0x30000>;
 				read-only;
 			};
 
 			partition at 30000 {
-				label = "nvram";
+				label = "u-boot-env";
 				reg = <0x30000 0x10000>;
 				read-only;
 			};
@@ -102,8 +81,8 @@
 				#address-cells = <1>;
 				#size-cells = <1>;
 
-				macaddr_factory_28: macaddr at 28 {
-					reg = <0x28 0x6>;
+				macaddr_factory_4: macaddr at 4 {
+					reg = <0x4 0x6>;
 				};
 			};
 
@@ -116,8 +95,17 @@
 	};
 };
 
+&gpio {
+	enable-leds {
+		gpio-hog;
+		line-name = "enable-leds";
+		output-low;
+		gpios = <4 GPIO_ACTIVE_HIGH>;
+	};
+};
+
 &ethernet {
-	nvmem-cells = <&macaddr_factory_28>;
+	nvmem-cells = <&macaddr_factory_4>;
 	nvmem-cell-names = "mac-address";
 };
 
@@ -136,7 +124,7 @@
 };
 
 &pcie0 {
-	wifi at 0,0 {
+	mt76 at 0,0 {
 		compatible = "mediatek,mt76";
 		reg = <0x0000 0 0 0 0>;
 		mediatek,mtd-eeprom = <&factory 0x8000>;
@@ -148,10 +136,3 @@
 		};
 	};
 };
-
-&state_default {
-	gpio {
-		groups = "i2c", "spi cs1", "refclk", "wled_an";
-		function = "gpio";
-	};
-};
diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk
index bd91bd9340..81b68f6354 100644
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -47,6 +47,19 @@ define Device/asus_rt-ac1200
 endef
 TARGET_DEVICES += asus_rt-ac1200
 
+define Device/asus_rt-ac1200-v2
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 16064k
+  DEVICE_VENDOR := Asus
+  DEVICE_MODEL := RT-AC1200
+  DEVICE_VARIANT := V2
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+	append-rootfs | pad-rootfs
+  DEVICE_PACKAGES := kmod-mt7615e kmod-mt7663-firmware-ap
+endef
+TARGET_DEVICES += asus_rt-ac1200-v2
+
 define Device/asus_rt-n10p-v3
   IMAGE_SIZE := 7872k
   DEVICE_VENDOR := Asus
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 1f833c1820..408f5f5e01 100644
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -35,6 +35,7 @@ ramips_setup_interfaces()
 		ucidef_set_interface_lan "eth0"
 		;;
 	asus,rt-ac1200|\
+	asus,rt-ac1200-v2|\
 	hilink,hlk-7628n|\
 	hilink,hlk-7688a|\
 	hiwifi,hc5861b|\
@@ -178,7 +179,9 @@ ramips_setup_macs()
 	local label_mac=""
 
 	case $board in
-	asus,rt-ac1200|\
+	asus,rt-ac1200)
+		wan_mac=$(mtd_get_mac_binary factory 0x22)
+		;;
 	elecom,wrc-1167fs)
 		wan_mac=$(mtd_get_mac_binary factory 0x22)
 		label_mac=$wan_mac




More information about the lede-commits mailing list