ramips: add support for ASUS RT-AC54U
authorZhijun You <hujy652@gmail.com>
Thu, 14 May 2020 11:37:40 +0000 (19:37 +0800)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Sun, 17 May 2020 16:40:56 +0000 (18:40 +0200)
Specification:

- CPU: MTK MT7620A
- RAM: 64MB
- ROM: 16MB SPI Flash Macronix MX25L12835E
- WiFi1: MediaTek MT7620A
- WiFi2: MediaTek MT7612E
- Button: reset, wps
- LED: 9 LEDs:Power, WiFi 2.4G,WiFi 5G, USB, LAN1, LAN2, LAN3, LAN4, WAN
- Ethernet: 5 ports, 4 LAN + 1 WAN
- Other: 1x UART 1x USB2.0

Installation:

   Update using ASUS Firmware Restoration Tool:

1. Download the ASUS Firmware Restoration Tool but don't open it yet
2. Unplug your computer from the router
3. Put the router into Rescue Mode by: turning the power off, using a pin
   to press and hold the reset button, then turning the router back on while
   keeping the reset button pressed for ~5 secs until the power LED starts
   flashing slowly (which indicates the router has entered Rescue Mode)
4. Important (if you don't do this next step the Asus Firmware
   Restoration Tool will wrongly assume that the router is not in Rescue Mode
   and will refuse to flash it): go to the Windows Control Panel and
   temporarily disable ALL other network adapters except the one you will use
   to connect your computer to the router
5. For the single adapter you left enabled, temporarily give it the
   static IP 192.168.1.10 and the subnet mask 255.255.255.0
6. Connect a LAN cable between your computer (make sure to use the
   Ethernet port of the adapter you've just set up) and port 1 of the router
   (not the router's WAN port)
7. Rename sysupgrade.bin to factory.trx
8. Open the Asus Firmware Restoration Tool, locate factory.trx and click
   upload (if Windows shows a compatibility prompt, confirm that the tool worked fine)
9. Flashing and reboot is finished when the power LED stops blinking and
   stays on

MAC assignment based on vendor firmware:

2g    0x4 label
5g    0x8004 label +4
lan   0x22 label +4
wan   0x28 label

Signed-off-by: Zhijun You <hujy652@gmail.com>
[rebased due to DTSI patch, minor commit message adjustments, fix
label MAC address (lan->wan), do spi frequency increase separately]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ramips/dts/mt7620a_asus_rt-ac54u.dts [new file with mode: 0644]
target/linux/ramips/image/mt7620.mk
target/linux/ramips/mt7620/base-files/etc/board.d/02_network

diff --git a/target/linux/ramips/dts/mt7620a_asus_rt-ac54u.dts b/target/linux/ramips/dts/mt7620a_asus_rt-ac54u.dts
new file mode 100644 (file)
index 0000000..09e9b78
--- /dev/null
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7620a_asus_rt-ac5x.dtsi"
+
+/ {
+       compatible = "asus,rt-ac54u", "ralink,mt7620a-soc";
+       model = "Asus RT-AC54U";
+
+       aliases {
+               led-boot = &led_power;
+               led-failsafe = &led_power;
+               led-running = &led_power;
+               led-upgrade = &led_power;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_power: power {
+                       label = "rt-ac54u:blue:power";
+                       gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
+               };
+
+               usb {
+                       label = "rt-ac54u:blue:usb";
+                       gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>;
+                       linux,default-trigger = "usbport";
+               };
+
+               wifi2g {
+                       label = "rt-ac54u:blue:wifi2g";
+                       gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy1tpt";
+               };
+       };
+};
+
+&ethernet {
+       mtd-mac-address = <&factory 0x22>;
+};
+
+&state_default {
+       gpio {
+               groups = "i2c", "wled", "uartf";
+               function = "gpio";
+       };
+};
+
+&pcie0 {
+       wifi@0,0 {
+               reg = <0x0000 0 0 0 0>;
+               mediatek,mtd-eeprom = <&factory 0x8000>;
+               ieee80211-freq-limit = <5000000 6000000>;
+
+               led {
+                       led-sources = <2>;
+               };
+       };
+};
index 4f5341f..4fa8c68 100644 (file)
@@ -86,6 +86,16 @@ define Device/asus_rt-ac51u
 endef
 TARGET_DEVICES += asus_rt-ac51u
 
+define Device/asus_rt-ac54u
+  SOC := mt7620a
+  IMAGE_SIZE := 16064k
+  DEVICE_VENDOR := Asus
+  DEVICE_MODEL := RT-AC54U
+  DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci \
+       kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += asus_rt-ac54u
+
 define Device/asus_rt-n12p
   SOC := mt7620n
   IMAGE_SIZE := 16064k
index 3f306d8..20932f6 100755 (executable)
@@ -70,7 +70,8 @@ ramips_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
                ;;
-       asus,rt-ac51u)
+       asus,rt-ac51u|\
+       asus,rt-ac54u)
                ucidef_add_switch "switch0" \
                        "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
                ;;
@@ -270,6 +271,10 @@ ramips_setup_macs()
                wan_mac=$(mtd_get_mac_binary factory 0x2e)
                label_mac=$(mtd_get_mac_binary factory 0x4)
                ;;
+       asus,rt-ac54u)
+               wan_mac=$(mtd_get_mac_binary factory 0x28)
+               label_mac=$wan_mac
+               ;;
        dlink,dch-m225)
                lan_mac=$(mtd_get_mac_ascii factory lanmac)
                ;;