ramips: add support for Asus RT-AC85P
authorBirger Koblitz <mail@birger-koblitz.de>
Sun, 15 Sep 2019 14:20:11 +0000 (16:20 +0200)
committerPetr Štetiar <ynezz@true.cz>
Fri, 20 Sep 2019 09:36:27 +0000 (11:36 +0200)
SoC: MediaTek MT7621AT dual-core @ 880MHz
RAM: 256M (Winbond W632GG6KB-1)
FLASH: 128MB (Macronix MX30LF1G18AC-TI)
WiFi: - 2.4GHz MediaTek MT7615N bgn
- 5GHz MediaTek MT7615N nac
Switch: SoC integrated Gigabit Switch (4 x LAN, 1 x WAN)
USB: 1 x USB 3.1 (Gen 1)
BTN: Reset, WPS
LED: - Power (blue)
- 5Ghz (blue)
- 2.4GHz (blue)
- Internet (blue)
- 4x LAN (blue)
(LAN/WAN leds are not controllable by GPIOs)
UART:  UART is present as Pads marked J4 on the PCB.
3.3V - TX - RX - GND / 57600-8N1
3.3V is the square pad
MAC: The MAC address on the router-label matches the MAC of
the 2.4 GHz WiFi.
LAN and WAN MAC are identical: MAC_LABEL+4
5 GHz WiFi MAC: also MAC_LABEL+4

Installation
------------
Via U-Boot tftpd:
Switch on device, within 2s press reset button and keep pressed
until power LED starts blinking slowly.
Upload factory image via tftp put, the router's ip is 192.168.1.1
and expects the client on 192.168.1.75.

The images also work on the Asus RT-AC65P models as tested by Gabor.

Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
Tested-by: Gabor Varga <vargagab@gmail.com>
[fixed Asus -> ASUS in DTS]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
target/linux/ramips/base-files/etc/board.d/02_network
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/mt7621_asus_rt-ac85p.dts [new file with mode: 0644]
target/linux/ramips/image/mt7621.mk
target/linux/ramips/patches-4.14/0039-mtd-add-mt7621-nand-support.patch

index 5668c1816d724513d8d856a56c4270e2c7014185..7fc7717ba4af731fd04aaaf050a6876836176b85 100755 (executable)
@@ -230,6 +230,18 @@ ramips_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0:lan" "1:wan" "6@eth0"
                ;;
+       asus,rt-ac85p|\
+       dlink,dir-860l-b1|\
+       elecom,wrc-1167ghbk2-s|\
+       elecom,wrc-1900gst|\
+       elecom,wrc-2533gst|\
+       huawei,hg255d|\
+       iodata,wn-ax1167gr|\
+       iodata,wn-gx300gr|\
+       iptime,a604m)
+               ucidef_add_switch "switch0" \
+                       "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
+               ;;
        asus,rt-n15|\
        belkin,f9k1109v1|\
        sitecom,wl-351)
@@ -297,17 +309,6 @@ ramips_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
                ;;
-       dlink,dir-860l-b1|\
-       elecom,wrc-1167ghbk2-s|\
-       elecom,wrc-1900gst|\
-       elecom,wrc-2533gst|\
-       huawei,hg255d|\
-       iodata,wn-ax1167gr|\
-       iodata,wn-gx300gr|\
-       iptime,a604m)
-               ucidef_add_switch "switch0" \
-                       "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
-               ;;
        dlink,dwr-118-a1)
                ucidef_add_switch "switch0" \
                        "1:lan:2" "2:lan:3" "3:lan:1" "4:lan:0" "5:wan" "6@eth0"
@@ -553,6 +554,9 @@ ramips_setup_macs()
        zbtlink,zbt-we3526)
                wan_mac=$(mtd_get_mac_binary factory 0xe006)
                ;;
+       asus,rt-ac85p)
+               wan_mac=$(mtd_get_mac_ascii u-boot-env et1macaddr)
+               ;;
        asus,rt-n56u)
                lan_mac=$(macaddr_setbit_la "$(cat /sys/class/net/eth0/address)")
                wan_mac=$(mtd_get_mac_binary factory 0x8004)
index 9889079db90c3354bcfba9b361c7866071d82d96..a62ded4b9de4b45d88abf913871ad5cb9193c245 100755 (executable)
@@ -18,9 +18,16 @@ platform_do_upgrade() {
        mikrotik,rbm33g)
                [ -z "$(rootfs_type)" ] && mtd erase firmware
                ;;
+       asus,rt-ac85p)
+               echo "Backing up firmware"
+               dd if=/dev/mtd4 bs=1024 count=4096  > /tmp/backup_firmware.bin
+               dd if=/dev/mtd5 bs=1024 count=52224 >> /tmp/backup_firmware.bin
+               mtd -e firmware2 write /tmp/backup_firmware.bin firmware2
+               ;;
        esac
 
        case "$board" in
+       asus,rt-ac85p|\
        hiwifi,hc5962|\
        netgear,r6220|\
        netgear,r6260|\
diff --git a/target/linux/ramips/dts/mt7621_asus_rt-ac85p.dts b/target/linux/ramips/dts/mt7621_asus_rt-ac85p.dts
new file mode 100644 (file)
index 0000000..3ddbfcf
--- /dev/null
@@ -0,0 +1,162 @@
+// 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>
+
+/ {
+       compatible = "asus,rt-ac85p", "mediatek,mt7621-soc";
+       model = "ASUS RT-AC85P";
+
+       aliases {
+               led-boot = &led_power;
+               led-failsafe = &led_power;
+               led-running = &led_power;
+               led-upgrade = &led_power;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,57600";
+       };
+
+       palmbus: palmbus@1E000000 {
+               i2c@900 {
+                       status = "okay";
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+
+               wps {
+                       label = "wps";
+                       gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WPS_BUTTON>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_power: power {
+                       label = "rt-ac85p:blue:power";
+                       gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+               wlan2g {
+                       label = "rt-ac85p:blue:wlan2g";
+                       gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0radio";
+               };
+
+               wlan5g {
+                       label = "rt-ac85p:blue:wlan5g";
+                       gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy1radio";
+               };
+       };
+};
+
+&sdhci {
+       status = "okay";
+};
+
+&nand {
+       status = "okay";
+
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "u-boot";
+                       reg = <0x0 0xe0000>;
+                       read-only;
+               };
+
+               partition@e0000 {
+                       label = "u-boot-env";
+                       reg = <0xe0000 0x100000>;
+                       read-only;
+               };
+
+               factory: partition@1e0000 {
+                       label = "factory";
+                       reg = <0x1e0000 0x100000>;
+                       read-only;
+               };
+
+               factory2: partition@2e0000 {
+                       label = "factory2";
+                       reg = <0x2e0000 0x100000>;
+                       read-only;
+               };
+
+               partition@3e0000 {
+                       label = "kernel";
+                       reg = <0x3e0000 0x400000>;
+               };
+
+               partition@7e0000 {
+                       label = "ubi";
+                       reg = <0x7e0000 0x2e00000>;
+               };
+
+               partition@35e0000 {
+                       label = "firmware2";
+                       reg = <0x35e0000 0x3200000>;
+               };
+       };
+};
+
+&pcie {
+       status = "okay";
+};
+
+&pcie0 {
+       wifi0: wifi@0,0 {
+               compatible = "pci14c3,7615";
+               reg = <0x0000 0 0 0 0>;
+               mediatek,mtd-eeprom = <&factory 0x0000>;
+               ieee80211-freq-limit = <2400000 2500000>;
+       };
+};
+
+&pcie1 {
+       wifi1: wifi@0,0 {
+               compatible = "pci14c3,7615";
+               reg = <0x0000 0 0 0 0>;
+               mediatek,mtd-eeprom = <&factory 0x8000>;
+               ieee80211-freq-limit = <5000000 6000000>;
+       };
+};
+
+&ethernet {
+       mtd-mac-address = <&factory 0xe000>;
+       mediatek,portmap = "wllll";
+       port@5 {
+               status = "disabled";
+       };
+};
+
+&i2c {
+       status = "disabled";
+};
+
+&pinctrl {
+       state_default: pinctrl0 {
+               gpio {
+                       ralink,group = "uart2", "uart3", "i2c";
+                       ralink,function = "gpio";
+               };
+       };
+};
index 623d5c94dd1ec6810dbcbb96b3ce9fe7cdb2c3c3..1727f998c89ae308a5910a09dfa8a3dd99ef1373 100644 (file)
@@ -134,6 +134,22 @@ define Device/asus_rt-ac57u
 endef
 TARGET_DEVICES += asus_rt-ac57u
 
+define Device/asus_rt-ac85p
+  MTK_SOC := mt7621
+  DEVICE_VENDOR := ASUS
+  DEVICE_MODEL := RT-AC85P
+  IMAGE_SIZE := 51200k
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  KERNEL_SIZE := 4096k
+  IMAGES += factory.bin
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+  IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size $$$$(IMAGE_SIZE)
+  DEVICE_PACKAGES := kmod-usb3 kmod-mt7615e wpad-basic uboot-envtools
+endef
+TARGET_DEVICES += asus_rt-ac85p
+
 define Device/buffalo_wsr-1166dhp
   MTK_SOC := mt7621
   IMAGE/sysupgrade.bin := trx | pad-rootfs | append-metadata
index 03b2b36db95a9decdfddbcd845101a98319d59b8..3c6a59b8639cd0179047c0704369caea87ee8029 100644 (file)
@@ -4256,7 +4256,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +#endif /* __NAND_DEF_H__ */
 --- /dev/null
 +++ b/drivers/mtd/nand/nand_device_list.h
-@@ -0,0 +1,59 @@
+@@ -0,0 +1,60 @@
 +/* Copyright Statement:
 + *
 + * This software/firmware and related documentation ("MediaTek Software") are
@@ -4308,6 +4308,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +      {0xC8DC, 0x909554, 5, 8, 512, 128, 2048, 64, 0x30C77fff, "F59L4G81A", 0},
 +      {0xECD3, 0x519558, 5, 8, 1024, 128, 2048, 64, 0x44333, "K9K8G8000", 0},
 +    {0xC2F1, 0x801DC2, 4, 8, 128, 128, 2048, 64, 0x30C77fff, "MX30LF1G08AA", 0},
++    {0xC2F1, 0x809502, 4, 8, 128, 128, 2048, 64, 0x30C77fff, "MX30LF1G18AC", 0},
 +    {0x98D3, 0x902676, 5, 8, 1024, 256, 4096, 224, 0x00C25332, "TC58NVG3S0F", 0},
 +    {0x01DA, 0x909546, 5, 8, 256, 128, 2048, 128, 0x30C77fff, "S34ML02G200TF", 0},
 +    {0x01DC, 0x909556, 5, 8, 512, 128, 2048, 128, 0x30C77fff, "S34ML04G200TF", 0},